<?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">INFOR608</article-id>
<article-id pub-id-type="doi">10.15388/25-INFOR608</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>Implementation of an Enhanced MPF-Based Block Cipher to Encrypt Digital Images</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Zitkevicius</surname><given-names>Jokubas</given-names></name><email xlink:href="jokubas.zitkevicius@mif.stud.vu.lt">jokubas.zitkevicius@mif.stud.vu.lt</email><xref ref-type="aff" rid="j_infor608_aff_001">1</xref><bio>
<p><bold>J. Zitkevicius</bold> obtained a bachelor’s degree in applied mathematics at Kaunas University of Technology in 2025. He is a member of Identification and Cryptography Research Group and performs investigations in symmetric and asymmetric cryptography.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Mihalkovich</surname><given-names>Aleksejus</given-names></name><email xlink:href="aleksejus.michalkovic@ktu.lt">aleksejus.michalkovic@ktu.lt</email><xref ref-type="aff" rid="j_infor608_aff_002">2</xref><xref ref-type="aff" rid="j_infor608_aff_003">3</xref><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>A. Mihalkovich</bold> obtained his PhD in 2015 and is currently an associate professor at the Department of Applied Mathematics 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>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_infor608_aff_002">2</xref><bio>
<p><bold>E. Sakalauskas</bold> is currently a full professor at the Department of Applied Mathematics 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_infor608_aff_001"><label>1</label><institution>Vilnius University</institution>, Naugarduko str. 24, <country>Lithuania</country></aff>
<aff id="j_infor608_aff_002"><label>2</label><institution>Kaunas University of Technology</institution>, Studentu str. 50, <country>Lithuania</country></aff>
<aff id="j_infor608_aff_003"><label>3</label><institution>Vilnius University, Kaunas Faculty</institution>, Muitines str. 8, <country>Lithuania</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Corresponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2025</year></pub-date><pub-date pub-type="epub"><day>17</day><month>11</month><year>2025</year></pub-date><volume>36</volume><issue>4</issue><fpage>1013</fpage><lpage>1035</lpage><history><date date-type="received"><month>6</month><year>2025</year></date><date date-type="accepted"><month>10</month><year>2025</year></date></history>
<permissions><copyright-statement>© 2025 Vilnius University</copyright-statement><copyright-year>2025</copyright-year>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>Open access article under the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">CC BY</ext-link> license.</license-p></license></permissions>
<abstract>
<p>In this paper, we present an enhanced version of a previously published symmetric block cipher implemented for the encryption of digital images. We introduce an additional step of using Arnold’s cat map prior to encryption to improve its quality. After inspecting the statistical characteristics of the ciphertexts for the electronic codebook (ECB) and cipher block chaining (CBC) modes, we found that with this additional step, our schemes produce high entropy ciphertexts for both regular and monochromatic images. Therefore, the results obtained in this paper show that our schemes are indifferent to the Advanced Encryption Standard (AES) cipher. Moreover, due to an effective parallelization of matrix operations, we think that our proposal can be executed reasonably fast.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>non-commutative cryptography</kwd>
<kwd>symmetric encryption</kwd>
<kwd>statistical analysis</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_infor608_s_001">
<label>1</label>
<title>Introduction</title>
<p>The need to hide sensitive information has existed since ancient times. Nowadays, it has become even more important due to the rapid development of technology and multimedia. Transmissions of images and videos play an important role in medical systems, military image databases, and other areas (Li, <xref ref-type="bibr" rid="j_infor608_ref_013">2006</xref>). Furthermore, our everyday electronic devices are used to transmit images, video clips, or music over wireless networks. Therefore, various algorithms based on mathematical calculations were proposed to securely hide this information, which gave birth to modern cryptography.</p>
<p>One of the simplest ideas was introduced in 1919 by Vernam. In modern terms, his proposal can be formalized as follows: given the message bit string <italic>μ</italic>, the sender can use the key string <italic>k</italic> of the same length and add it to the original message bit-wise to obtain the ciphertext <inline-formula id="j_infor608_ineq_001"><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>. Here, we used ⊕ to denote the XOR operation. The receiver uses the ciphertext <italic>c</italic> to restore the original message by adding <italic>k</italic> to it bit-wise, i.e. we have <inline-formula id="j_infor608_ineq_002"><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>. The presented idea is now known as the Vernam cipher.</p>
<p>Modern cryptography has gone a long way since then. In this work, we focus on the symmetric cryptography branch, which covers block and stream ciphers to encrypt messages. For implementation purposes, block ciphers are usually converted into stream ciphers by applying them in various modes of encryption to obtain the ciphertext.</p>
<p>One of the most popular block ciphers was standardized in Dworkin <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_009">2001</xref>) and is now known as the Advanced Encryption Standard (AES). It uses a 128, 192, or 256-bit secret key to encrypt a <inline-formula id="j_infor608_ineq_003"><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> block of 16-bit entries. Depending on the size of the secret key, either 10, 12 or 14 rounds of four steps are performed.</p>
<p>Symmetric encryption is also a tool for hiding visual information. Over the years, many image encryption techniques have been proposed. One of the most popular ways to encrypt an image is by applying some chaotic mapping, e.g. the logistic map (Zia <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_025">2022</xref>; Zhang and Liu, <xref ref-type="bibr" rid="j_infor608_ref_024">2023</xref>). We use one of such maps, namely Arnold’s cat mapping, in our paper. These mappings can produce satisfactory results when used with statistically independent sampling and binary key derivation (Dinu and Frunzete, <xref ref-type="bibr" rid="j_infor608_ref_008">2025</xref>). Many researchers recommend chaos-based encryption techniques for images due to their computational efficiency (Zia <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_025">2022</xref>). However, generating large chaotic sequences is time-consuming, and, therefore, the real-time application of such schemes is problematic. For this reason, parallelization of computations is used in Daoui <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_005">2023</xref>) to speed up the running time. This is where the matrix computations can be helpful due to the natural parallelization of matrix operations. We view it as one of the advantages of our scheme over other schemes.</p>
<p>Other researchers incorporate elliptic curves into their work (Hernández-Díaz <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_011">2021</xref>; Chillali and Oughdir, <xref ref-type="bibr" rid="j_infor608_ref_004">2023</xref>; Nagaraj <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_018">2015</xref>; Singh <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_022">2024</xref>). For example, in Hernández-Díaz <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_011">2021</xref>), elliptic curves are used to generate encryption keys, while in Singh <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_022">2024</xref>), elliptic curve points combined with a hash function are utilized to create dynamic S-boxes. However, calculations in elliptic curves are more complex than the structures discussed in this paper. Additionally, our approach relies solely on a highly non-linear mapping called the matrix power function (MPF), rather than a combination of two different methods.</p>
<p>In our paper (Dindiene <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_007">2022</xref>), we presented a block cipher based on MPF. We have shown how to encrypt a single block of data using MPF as opposed to the multiple rounds approach used in AES. Later, in our papers (Levinskas and Mihalkovich, <xref ref-type="bibr" rid="j_infor608_ref_012">2021</xref>; Mihalkovich <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_015">2022a</xref>), we analysed the statistical properties and performance of our proposal implemented in various modes of encryption. The results obtained in Mihalkovich <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_015">2022a</xref>) have shown that by carefully choosing the parameters of the system, our proposal can be executed in time comparable to the AES cipher. Moreover, in Mihalkovich <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_017">2022c</xref>) and Mihalkovich <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_016">2022b</xref>), we have extended our research to non-commuting algebraic structures.</p>
<p>While the obtained results have shown some promise, in this paper, we make several changes as compared to the original idea. The most significant change comes from applying an extra mapping to the original data prior to encrypting it with our cipher. We demonstrate how this additional step affects the quality of encryption and compare our results to AES. The proposed changes can be summarized as follows:</p>
<list>
<list-item id="j_infor608_li_001">
<label>•</label>
<p>We apply Arnold’s cat mapping to the initial image, aiming to make it more chaotic prior to encrypting.</p>
</list-item>
<list-item id="j_infor608_li_002">
<label>•</label>
<p>We implement the Galois fields in our scheme, aiming to simplify the implementation of our cipher.</p>
</list-item>
<list-item id="j_infor608_li_003">
<label>•</label>
<p>We now use a different key matrix for each of the colour channels.</p>
</list-item>
</list>
<p>The rest of the paper is organized as follows: in Section <xref rid="j_infor608_s_002">2</xref> we present the key definitions of the algebraic structures and functions we use throughout the paper; in Section <xref rid="j_infor608_s_003">3</xref> we introduce the changes to the original idea; in Section <xref rid="j_infor608_s_004">4</xref> we investigate the quality of encryption in two modes, where the finite field of integers <inline-formula id="j_infor608_ineq_004"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{p}}$]]></tex-math></alternatives></inline-formula> is used as a platform group; in Section <xref rid="j_infor608_s_007">5</xref> we implement Galois Fields in our proposal and compare the quality of encryption to the results of the previous section. As mentioned previously, we also compare our results to analogous modes of AES in both sections. Conclusions are presented at the end of the paper.</p>
</sec>
<sec id="j_infor608_s_002">
<label>2</label>
<title>Mathematical Background</title>
<p>First, we consider the finite field of integers <inline-formula id="j_infor608_ineq_005"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{p}}$]]></tex-math></alternatives></inline-formula>, where <italic>p</italic> is a prime.</p><statement id="j_infor608_stat_001"><label>Definition 1</label>
<title>(Detomi <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_006">2025</xref>)<italic>.</italic></title>
<p>If <inline-formula id="j_infor608_ineq_006"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${q^{k}}$]]></tex-math></alternatives></inline-formula> is the highest power of a prime <italic>q</italic> dividing <inline-formula id="j_infor608_ineq_007"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$p-1$]]></tex-math></alternatives></inline-formula>, then a multiplicative subgroup <inline-formula id="j_infor608_ineq_008"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula> of order <inline-formula id="j_infor608_ineq_009"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${q^{k}}$]]></tex-math></alternatives></inline-formula> in <inline-formula id="j_infor608_ineq_010"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathbb{Z}_{p}^{\ast }}$]]></tex-math></alternatives></inline-formula> is called a <italic>Sylow q-subgroup</italic> of <inline-formula id="j_infor608_ineq_011"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathbb{Z}_{p}^{\ast }}$]]></tex-math></alternatives></inline-formula>.</p></statement>
<p>In this paper, we use a special case of Sylow <italic>q</italic>-subgroup, where <inline-formula id="j_infor608_ineq_012"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$k=1$]]></tex-math></alternatives></inline-formula> and two primes <italic>p</italic> and <italic>q</italic> are linked via a relation <inline-formula id="j_infor608_ineq_013"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$p=2q+1$]]></tex-math></alternatives></inline-formula>. Therefore, the Sylow subgroup has the following representation: 
<disp-formula id="j_infor608_eq_001">
<label>(1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="0.1667em"/>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</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:mi mathvariant="italic">q</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathbb{G}_{q}}=\big\langle {g^{2i}}\hspace{0.1667em}\big|\hspace{0.1667em}i=0,1,\dots ,q-1\big\rangle ,\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>g</italic> is a generator of the multiplicative group <inline-formula id="j_infor608_ineq_014"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathbb{Z}_{p}^{\ast }}$]]></tex-math></alternatives></inline-formula>. Notably, each non-identity element of <inline-formula id="j_infor608_ineq_015"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">G</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{G}$]]></tex-math></alternatives></inline-formula> generates the whole group. We also define a mapping <inline-formula id="j_infor608_ineq_016"><alternatives><mml:math>
<mml:mi mathvariant="italic">γ</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">↦</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\gamma :{\mathbb{Z}_{q}}\mapsto {\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula> as follows: 
<disp-formula id="j_infor608_eq_002">
<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:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \gamma (x)={g^{2x}}.\]]]></tex-math></alternatives>
</disp-formula> 
Clearly, <italic>γ</italic> is an invertible mapping. In this paper, we use this mapping to interchange between the elements of <inline-formula id="j_infor608_ineq_017"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{q}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor608_ineq_018"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula> to fit our needs.</p>
<p>Note that the Sylow subgroup can be defined in a more general case. However, our research does not require considering it.</p>
<p>Using the multiplicative group <inline-formula id="j_infor608_ineq_019"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula> and a ring of integers <inline-formula id="j_infor608_ineq_020"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{q}}$]]></tex-math></alternatives></inline-formula>, we can define the following mapping:</p><statement id="j_infor608_stat_002"><label>Definition 2</label>
<title>(Sakalauskas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_021">2008</xref>)<italic>.</italic></title>
<p>Assume that <inline-formula id="j_infor608_ineq_021"><alternatives><mml:math>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$\mathbf{W}\in {\mathbb{G}_{q}^{m\times m}}$]]></tex-math></alternatives></inline-formula> is an <inline-formula id="j_infor608_ineq_022"><alternatives><mml:math>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi></mml:math><tex-math><![CDATA[$m\times m$]]></tex-math></alternatives></inline-formula> matrix with entries in <inline-formula id="j_infor608_ineq_023"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula>, and <inline-formula id="j_infor608_ineq_024"><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:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$\mathbf{X},\mathbf{Y}\in {\mathbb{Z}_{q}^{m\times m}}$]]></tex-math></alternatives></inline-formula> are two matrices with entries in <inline-formula id="j_infor608_ineq_025"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{q}}$]]></tex-math></alternatives></inline-formula>. We define <italic>the two-sided matrix power function</italic> (MPF) as a mapping <inline-formula id="j_infor608_ineq_026"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>×</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>×</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">↦</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathbb{Z}_{q}^{m\times m}}\times {\mathbb{G}_{q}^{m\times m}}\times {\mathbb{Z}_{q}^{m\times m}}\mapsto {\mathbb{G}_{q}^{m\times m}}$]]></tex-math></alternatives></inline-formula> denoted by <inline-formula id="j_infor608_ineq_027"><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">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:math><tex-math><![CDATA[$\mathbf{E}{=^{\mathbf{X}}}{\mathbf{W}^{\mathbf{Y}}}$]]></tex-math></alternatives></inline-formula>, where the entries of the MPF value matrix <bold>E</bold> are calculated as follows: 
<disp-formula id="j_infor608_eq_003">
<label>(2)</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">m</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">m</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:mo>·</mml:mo>
<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}^{m}}{\prod \limits_{l=1}^{m}}{w_{kl}^{{x_{ik}}\cdot {y_{lj}}}}.\]]]></tex-math></alternatives>
</disp-formula>
</p></statement><statement id="j_infor608_stat_003"><label>Definition 3</label>
<title>(Sakalauskas and Mihalkovich, <xref ref-type="bibr" rid="j_infor608_ref_020">2014</xref>)<italic>.</italic></title>
<p>We refer to the group <inline-formula id="j_infor608_ineq_028"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula> in Definition <xref rid="j_infor608_stat_002">2</xref> as a <italic>platform group</italic>.</p></statement><statement id="j_infor608_stat_004"><label>Definition 4</label>
<title>(Sakalauskas and Mihalkovich, <xref ref-type="bibr" rid="j_infor608_ref_020">2014</xref>)<italic>.</italic></title>
<p>We refer to the group <inline-formula id="j_infor608_ineq_029"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{q}}$]]></tex-math></alternatives></inline-formula> in Definition <xref rid="j_infor608_stat_002">2</xref> as a <italic>power ring</italic>.</p></statement>
<p>In this paper, we compare two platform groups: the Sylow <italic>q</italic>-subgroup <inline-formula id="j_infor608_ineq_030"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula> and the Galois Field <inline-formula id="j_infor608_ineq_031"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({q^{k}})$]]></tex-math></alternatives></inline-formula>.</p>
<p>In our previous paper (Dindiene <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_007">2022</xref>), we considered a symmetric block cipher based on the MPF, where we used the Sylow <italic>q</italic>-subgroup <inline-formula id="j_infor608_ineq_032"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula> as a platform group along with an additional one-to-one mapping Γ (an entry-wise application of <italic>γ</italic>), which was used to map the initial values of the pixels to the elements of <inline-formula id="j_infor608_ineq_033"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula>. However, as we have shown in Levinskas and Mihalkovich (<xref ref-type="bibr" rid="j_infor608_ref_012">2021</xref>), the function Γ does not help to achieve good statistical properties of our cipher. Therefore, here we use a so-called Arnold’s cat map defined below:</p><statement id="j_infor608_stat_005"><label>Definition 5</label>
<title>(Pardede <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_019">2018</xref>)<italic>.</italic></title>
<p>The generalized form of <italic>Arnold’s cat map</italic> for digital <inline-formula id="j_infor608_ineq_034"><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> image applications is a chaotic discrete map: 
<disp-formula id="j_infor608_eq_004">
<label>(3)</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" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:mtable equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left(\begin{array}{c}{x^{\prime }}\\ {} {y^{\prime }}\end{array}\right)=\left(\begin{array}{c@{\hskip4.0pt}c}1& a\\ {} b& ab+1\end{array}\right)\left(\begin{array}{c}x\\ {} y\end{array}\right)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}N,\]]]></tex-math></alternatives>
</disp-formula> 
where each element of the set <inline-formula id="j_infor608_ineq_035"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">y</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[$\{x,{x^{\prime }},y,{y^{\prime }}\}$]]></tex-math></alternatives></inline-formula> comes from <inline-formula id="j_infor608_ineq_036"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{N}}$]]></tex-math></alternatives></inline-formula>, whereas <italic>a</italic> and <italic>b</italic> are two integers.</p></statement>
<p>In this paper, we use the parameter values <inline-formula id="j_infor608_ineq_037"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$a=1$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor608_ineq_038"><alternatives><mml:math>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$b=1$]]></tex-math></alternatives></inline-formula>. Note that Arnold’s cat map is invertible since the determinant of the transformation matrix is equal to 1.</p>
<p>Furthermore, in our research, we use the Hadamard product, otherwise known as the entry-wise multiplication of two matrices, and its inverse, denoted by an upper index <italic>H</italic>. In other words, we have:</p><statement id="j_infor608_stat_006"><label>Definition 6.</label>
<p>The matrix <inline-formula id="j_infor608_ineq_039"><alternatives><mml:math>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{V}={\mathbf{W}^{H}}$]]></tex-math></alternatives></inline-formula> is a Hadamard inverse of matrix <bold>W</bold>, if its entries are the multiplicative inverses of the corresponding entries of <bold>W</bold>, i.e. 
<disp-formula id="j_infor608_eq_005">
<label>(4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<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>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {v_{ij}}={w_{ij}^{-1}}.\]]]></tex-math></alternatives>
</disp-formula>
</p></statement>
<p>Also, we define the <inline-formula id="j_infor608_ineq_040"><alternatives><mml:math>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$3\times 3$]]></tex-math></alternatives></inline-formula> correlation matrix <inline-formula id="j_infor608_ineq_041"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>avg</mml:mtext>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Sigma _{\text{avg}}}$]]></tex-math></alternatives></inline-formula>, where each row corresponds to a distinct channel, and each column represents a different direction of a neighbouring pair: <italic>horizontal, vertical, or diagonal</italic>. Each entry in the matrix corresponds to the correlation coefficient between neighbouring pixel intensities for the respective pair type.</p><statement id="j_infor608_stat_007"><label>Definition 7</label>
<title>(Broumandnia, <xref ref-type="bibr" rid="j_infor608_ref_002">2020</xref>)<italic>.</italic></title>
<p>For an <inline-formula id="j_infor608_ineq_042"><alternatives><mml:math>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi></mml:math><tex-math><![CDATA[$m\times m$]]></tex-math></alternatives></inline-formula> matrix, the types of neighbouring pairs are defined as follows: 
<list>
<list-item id="j_infor608_li_004">
<label>•</label>
<p>For each row <italic>i</italic>, the horizontal neighbouring pair consists of pixels at positions <inline-formula id="j_infor608_ineq_043"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml: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" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\{(i,j),(i,j+1)\}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor608_ineq_044"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi></mml:math><tex-math><![CDATA[$1\leqslant j\lt m$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor608_li_005">
<label>•</label>
<p>For each column <italic>j</italic>, the vertical neighbouring pair consists of pixels at positions <inline-formula id="j_infor608_ineq_045"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</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[$\{(i,j),(i+1,j)\}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor608_ineq_046"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi></mml:math><tex-math><![CDATA[$1\leqslant i\lt m$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor608_li_006">
<label>•</label>
<p>For each pixel at position <inline-formula id="j_infor608_ineq_047"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(i,j)$]]></tex-math></alternatives></inline-formula>, the diagonal neighbouring pair consists of pixels at positions <inline-formula id="j_infor608_ineq_048"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<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" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\{(i,j),(i+1,j+1)\}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor608_ineq_049"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi></mml:math><tex-math><![CDATA[$1\leqslant i,j\lt m$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</p></statement>
<p>We use this correlation matrix as one of the tools to investigate relations between the entries of the encrypted blocks.</p>
</sec>
<sec id="j_infor608_s_003">
<label>3</label>
<title>MPF-Based Block Cipher with Arnold’s Cat Map</title>
<p>In this section, we revise the block cipher considered in Dindiene <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_007">2022</xref>). We present here a modified version of our cipher, since we implement Arnold’s cat map together with the previously used function Γ. Therefore, we introduce an additional step applied to the whole image to improve the quality of encryption.</p>
<p>Let <italic>μ</italic> be a string of bits representing the initial message. We cut this string into <inline-formula id="j_infor608_ineq_050"><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> 8-bit chunks and therefore obtain its representation in the following form: 
<disp-formula id="j_infor608_eq_006">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<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>11</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</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">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</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">μ</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">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:mo>…</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mu ={\mu _{11}}\| {\mu _{12}}\| \dots \| {\mu _{1m}}\| {\mu _{21}}\| {\mu _{22}}\| \dots \| {\mu _{2m}}\| \dots {\mu _{mm}},\]]]></tex-math></alternatives>
</disp-formula> 
where ‖ is the concatenation operation. Furthermore, if the message is too short, we append the appropriate amount of random bits at the end of the message. We can now construct the matrix representation <bold>M</bold> of the initial message, where the entries of <bold>M</bold> are integers <inline-formula id="j_infor608_ineq_051"><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:mn>255</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[${\mu _{ij}}\in [0,255]$]]></tex-math></alternatives></inline-formula>. We apply Arnold’s cat map to the matrix <bold>M</bold> a fixed number of times and denote the obtained result by <inline-formula id="j_infor608_ineq_052"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mtext>ACM</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathbf{M}^{\prime }}=\text{ACM}(\tau ,\mathbf{M})$]]></tex-math></alternatives></inline-formula>, where <italic>τ</italic> is the number of iterations. We now encrypt <inline-formula id="j_infor608_ineq_053"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{M}^{\prime }}$]]></tex-math></alternatives></inline-formula> using a secret key – a triplet of matrices <inline-formula id="j_infor608_ineq_054"><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">Z</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathbf{X},\mathbf{Y},\mathbf{Z})$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor608_ineq_055"><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:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$\mathbf{X},\mathbf{Y}\in {\mathbb{Z}_{q}^{m\times m}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor608_ineq_056"><alternatives><mml:math>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$\mathbf{Z}\in {\mathbb{G}_{q}^{m\times m}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor608_ineq_057"><alternatives><mml:math>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mn>255</mml:mn></mml:math><tex-math><![CDATA[$q\gt 255$]]></tex-math></alternatives></inline-formula>, matrix <bold>X</bold> does not contain any zero entries and <bold>Y</bold> is invertible. For application purposes, we want to keep the values of <italic>q</italic> and <italic>p</italic> as small as possible. Hence, in this paper, we set <inline-formula id="j_infor608_ineq_058"><alternatives><mml:math>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>281</mml:mn></mml:math><tex-math><![CDATA[$q=281$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor608_ineq_059"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>563</mml:mn></mml:math><tex-math><![CDATA[$p=563$]]></tex-math></alternatives></inline-formula>.</p>
<p>The encryption algorithm consists of the following steps: 
<disp-formula id="j_infor608_eq_007">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="bold">Z</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="normal">Γ</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</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:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mstyle mathvariant="bold">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:mstyle>
<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" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\mathbf{S}_{1}}\equiv \big(\mathbf{X}+{\mathbf{M}^{\prime }}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}q;\\ {} \displaystyle {\mathbf{S}_{2}}\equiv \big(\mathbf{Z}{\odot ^{\mathbf{Y}}}\Gamma {({\mathbf{S}_{1}})^{\mathbf{Y}}}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}p;\\ {} \displaystyle \mathbf{S}\equiv \big({\Gamma ^{-1}}(\mathbf{{\mathbf{S}_{2}}})+\mathbf{X}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}q,\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor608_ineq_060"><alternatives><mml:math>
<mml:mi mathvariant="normal">Γ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>:</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">↦</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$\Gamma (\mathbf{X}):{\mathbb{Z}_{q}^{m\times m}}\mapsto {\mathbb{G}_{q}^{m\times m}}$]]></tex-math></alternatives></inline-formula> is a publicly known one-to-one mapping which replaces entries of matrix <bold>X</bold> with elements from <inline-formula id="j_infor608_ineq_061"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula> – a Sylow subgroup of <inline-formula id="j_infor608_ineq_062"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{p}}$]]></tex-math></alternatives></inline-formula>. Clearly, <inline-formula id="j_infor608_ineq_063"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</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[${\Gamma ^{-1}}({\mathbf{S}_{2}})$]]></tex-math></alternatives></inline-formula> is the inverse transformation. We use ⊙ to denote the Hadamard product of two matrices.</p>
<p>Note that we use both <italic>q</italic> and <italic>p</italic> to perform modular operations. Therefore, we specify the modulus for each step of the encryption algorithm. Clearly, the modular arithmetic is applied entry-wise.</p>
<p>The decryption algorithm works similarly in reverse, i.e.: 
<disp-formula id="j_infor608_eq_008">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd>
<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 stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<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 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:msup>
<mml:mrow>
<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">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⊙</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml: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:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<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: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:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\mathbf{D}_{1}}\equiv (\mathbf{S}-\mathbf{X})\hspace{0.2em}\mathrm{mod} \hspace{0.2em}q;\\ {} \displaystyle {\mathbf{D}_{2}}{\equiv ^{{\mathbf{Y}^{-1}}}}{\big(\Gamma ({\mathbf{D}_{1}})\odot {\mathbf{Z}^{H}}\big)^{{\mathbf{Y}^{-1}}}}\hspace{0.2em}\mathrm{mod} \hspace{0.2em}p;\\ {} \displaystyle {\mathbf{M}^{\prime }}\equiv \big({\Gamma ^{-1}}({\mathbf{D}_{2}})-\mathbf{X}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}q.\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
Now all that remains is to apply Arnold’s cat map to <inline-formula id="j_infor608_ineq_064"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{M}^{\prime }}$]]></tex-math></alternatives></inline-formula> in reverse to obtain the initial message in the matrix form <bold>M</bold> and then concatenate its entries as presented above to restore the message <italic>μ</italic>.</p>
<p>Previously, in Dindiene <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_007">2022</xref>), we have shown that the considered block cipher is perfectly secure, i.e. it satisfies the following property: 
<disp-formula id="j_infor608_eq_009">
<label>(5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo 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 fence="true" stretchy="false">]</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo 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 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}}|\mu ={\mu _{0}}]=\Pr [c={c_{0}}],\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor608_ineq_065"><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_infor608_ineq_066"><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 some fixed ciphertext and plaintext values. In other words, the ciphertext is statistically independent of the original message.</p>
<p>Perfect secrecy property was previously proven for the Vernam cipher. However, due to one-time secret keys and several other disadvantages, the Vernam cipher remains a purely theoretical algorithm: while easy to understand, it is never used in the real world.</p>
<p>One disadvantage of any perfectly secure cipher is the size of the secret key, since it has to be at least as long as the plaintext. This, together with one-time use of the key, prevents applying any modes of encryption to long messages. On the other hand, we have shown in Dindiene <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_007">2022</xref>) that in our case, the secret key can be reused. Therefore, the perfectly secure block cipher we consider can be transformed into a stream cipher by applying modes of symmetric encryption. We consider two of these modes in this paper.</p>
</sec>
<sec id="j_infor608_s_004">
<label>4</label>
<title>Modes of Symmetric Encryption</title>
<p>Like AES, our cipher operates on blocks. Therefore, to convert our idea to a stream cipher, we have to apply one of the encryption modes. Two of such modes considered in this paper are the electronic codebook (ECB) mode and the cipher block chaining (CBC) mode. A well-known fact is that the ECB mode is considered insecure even for such ciphers as AES. In this paper, we explore how Arnold’s cat mapping affects the quality of the ECB mode of our block cipher. Moreover, we perform a comparison of CBC modes for AES and our proposal.</p>
<sec id="j_infor608_s_005">
<label>4.1</label>
<title>ECB Mode</title>
<p>ECB mode of symmetric encryption is the simplest of modes, since it is applied block-wise (Elashry <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_010">2012</xref>). The encrypted blocks are restored using the same key by performing the actions in reverse as shown in the previous section. The general idea of ECB mode is presented in Fig. <xref rid="j_infor608_fig_001">1</xref>.</p>
<fig id="j_infor608_fig_001">
<label>Fig. 1</label>
<caption>
<p>ECB Mode.</p>
</caption>
<graphic xlink:href="infor608_g001.jpg"/>
</fig>
<p>Since the digital images are in RGB format, we perform the algebraic process for each of the three colours separately. Therefore, the whole image’s information is stored in a three-dimensional array. Block size is set by default to 4, i.e. the size of the single-coloured sub-image is <inline-formula id="j_infor608_ineq_067"><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>. The same size is inherited for the ciphers and other inter-components of the encryption. We encrypt each of the colour matrices using separate keys rather than the same one as we did in our previous papers.</p>
<p>Note that since all intensities of the image pixels are represented as 8-bit integers, we can interpret them as elements of <inline-formula id="j_infor608_ineq_068"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{q}}$]]></tex-math></alternatives></inline-formula> and map them to the multiplicative Sylow <italic>q</italic>-subgroup <inline-formula id="j_infor608_ineq_069"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula> using a mapping <italic>γ</italic>.</p>
<p>We generate matrices <inline-formula id="j_infor608_ineq_070"><alternatives><mml:math>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$\mathbf{X}\in {\mathbb{Z}_{q}^{4\times 4}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor608_ineq_071"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$\mathbf{Y}\in {\mathbb{Z}_{q}^{4\times 4}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor608_ineq_072"><alternatives><mml:math>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathbf{Z}\in {\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula> with random entries uniformly distributed in the appropriate sets. We also remove 0 from the set of possible values when generating <bold>Y</bold>. Therefore, we obtain a key triplet <inline-formula id="j_infor608_ineq_073"><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">Z</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\vec{\mathbf{K}}=(\mathbf{X},\mathbf{Y},\mathbf{Z})$]]></tex-math></alternatives></inline-formula>. We generate a separate key for each colour, thus obtaining a 3-part key <inline-formula id="j_infor608_ineq_074"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathbf{K}_{rgb}}=({\vec{\mathbf{K}}_{r}},{\vec{\mathbf{K}}_{g}},{\vec{\mathbf{K}}_{b}})$]]></tex-math></alternatives></inline-formula>. Then we perform the ECB mode of our block cipher for each of the colour matrices using an appropriate key. Example results for various images<xref ref-type="fn" rid="j_infor608_fn_001">1</xref><fn id="j_infor608_fn_001"><label><sup>1</sup></label>
<p>All the images used in this paper are open access and can be found at <uri>https://sipi.usc.edu/database/database.php?volume=misc</uri></p></fn> are shown in Figs. <xref rid="j_infor608_fig_002">2</xref>a–<xref rid="j_infor608_fig_002">2</xref>d.</p>
<fig id="j_infor608_fig_002">
<label>Fig. 2</label>
<caption>
<p>ECB Mode of MPF-based cipher applied to various images, Arnold’s cat map not used.</p>
</caption>
<graphic xlink:href="infor608_g002.jpg"/>
</fig>
<p>Let us compare this result to the ECB mode of the AES cipher. Using the same images as the original plaintexts, we get the results presented in Figs. <xref rid="j_infor608_fig_003">3</xref>a–<xref rid="j_infor608_fig_003">3</xref>d.</p>
<fig id="j_infor608_fig_003">
<label>Fig. 3</label>
<caption>
<p>ECB Mode of AES cipher applied to various images.</p>
</caption>
<graphic xlink:href="infor608_g003.jpg"/>
</fig>
<p>We can see that the ciphertexts produced using both ciphers in ECB mode look chaotic. However, this is not always the case for other images. A well-known downside of the ECB is noticeable patterns in the encrypted image. For this reason, this mode of encryption is not used even for such secure ciphers as AES. These patterns can also be seen if our previous version of the MPF-based block cipher is applied in ECB mode, where only the mapping Γ was used. We present an example of this below in Fig. <xref rid="j_infor608_fig_004">4</xref>.</p>
<fig id="j_infor608_fig_004">
<label>Fig. 4</label>
<caption>
<p>ECB Mode of MPF-based cipher applied to Linux penguin, Arnold’s cat map is not used.</p>
</caption>
<graphic xlink:href="infor608_g004.jpg"/>
</fig>
<p>We can observe that the generated cipher has obvious patterns in the form of noticeable strips. This is the consequence of the ECB mode: repeatable low-intensity blocks produce a pattern in the encrypted image, which reduces the quality of encryption. Interestingly enough, even using three separate keys instead of one does not improve the result by much.</p>
<p>Let us now plot the distribution of the colour intensities for the original Linux penguin image and its ciphertext in Fig. <xref rid="j_infor608_fig_005">5</xref>a and <xref rid="j_infor608_fig_005">5</xref>b, respectively. We can see from Fig. <xref rid="j_infor608_fig_005">5</xref>a that intensities greater than 250 dominate in the initial picture. After applying the ECB mode (Fig. <xref rid="j_infor608_fig_005">5</xref>b), roughly one third of intensity probabilities are higher than 3 times the uniform probability, which strongly suggests a non-uniform distribution.</p>
<fig id="j_infor608_fig_005">
<label>Fig. 5</label>
<caption>
<p>Pixel intensity distribution for the Linux penguin image and its ciphertext.</p>
</caption>
<graphic xlink:href="infor608_g005.jpg"/>
</fig>
<p>Let us observe the average correlation between the pixels. In reference to Definition <xref rid="j_infor608_stat_007">7</xref>, we output the <inline-formula id="j_infor608_ineq_075"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>avg</mml:mtext>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Sigma _{\text{avg}}}$]]></tex-math></alternatives></inline-formula> matrix as: 
<disp-formula id="j_infor608_eq_010">
<label>(6)</label><graphic xlink:href="infor608_g006.jpg"/>
</disp-formula>
</p>
<p>We can see that the maximum absolute correlation was 0.259, which shows a weak, yet statistically significant, positive correlation for the green channel vertically. Also, for each row, the value in the second column is the largest one, which suggests that vertical correlation dominates in the initial picture. This is correct because the low-intensity block pattern repeats mostly vertically.</p>
<p>Furthermore, we perform the analysis of the entropy for each channel. Asif <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_001">2022</xref>) We output the vector that consists of entropies for each channel. 
<disp-formula id="j_infor608_eq_011">
<label>(7)</label><graphic xlink:href="infor608_g007.jpg"/>
</disp-formula>
</p>
<p>Since the maximum theoretical entropy is 
<disp-formula id="j_infor608_eq_012">
<label>(8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</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">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>280</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false">log</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>281</mml:mn>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>281</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false">log</mml:mo>
</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:msup>
<mml:mrow>
<mml:mn>281</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</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:mn>8.134</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ h(x)=-{\sum \limits_{i=0}^{280}}p({x_{i}}){\log _{2}}p({x_{i}})=-281\cdot {281^{-1}}\cdot {\log _{2}}\big({281^{-1}}\big)\approx 8.134,\]]]></tex-math></alternatives>
</disp-formula> 
so the result is far from a statistically sufficient one.</p>
<p>The main difference between the Linux penguin and the presented images is that the latter image can be viewed as somewhat monochromatic since there is a dominating white colour. We can also see a similar problem of encryption quality with the AES cipher in ECB mode presented in Fig. <xref rid="j_infor608_fig_006">6</xref>a. Wherever there are more colours in the original image, the ciphertext looks more chaotic than the areas of dominating white colour. This can be clearly seen if we consider a blank (totally white) image and apply the AES cipher in the ECB mode to it. The result is presented in Fig. <xref rid="j_infor608_fig_006">6</xref>b.</p>
<fig id="j_infor608_fig_006">
<label>Fig. 6</label>
<caption>
<p>ECB Mode of AES cipher applied to monochromatic images.</p>
</caption>
<graphic xlink:href="infor608_g008.jpg"/>
</fig>
<p>Now we apply the ECB mode of encryption with the same parameters on an image transformed by Arnold’s cat map, where <inline-formula id="j_infor608_ineq_076"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>5</mml:mn></mml:math><tex-math><![CDATA[$\tau =5$]]></tex-math></alternatives></inline-formula>. In other words, for each colour, we first view the whole image as a large matrix and apply Arnold’s cat map to it. Then we split the obtained output matrix into blocks for encryption using ECB mode. The results for various images are presented below in Figs. <xref rid="j_infor608_fig_007">7</xref>a–<xref rid="j_infor608_fig_007">7</xref>d.</p>
<fig id="j_infor608_fig_007">
<label>Fig. 7</label>
<caption>
<p>ECB Mode of MPF-based cipher applied to various images, Arnold’s cat map is used.</p>
</caption>
<graphic xlink:href="infor608_g009.jpg"/>
</fig>
<p>The implementation of Arnold’s cat map to the Linux penguin image reduced the maximum absolute correlation to 0.009, and the average entropy for a channel is 8.131. Therefore, we can see that Arnold’s cat map enhances the statistical results of the ECB mode. This is due to the removal of dominance of the white colour (see the middle image in Fig. <xref rid="j_infor608_fig_007">7</xref>d).</p>
<p>However, if we apply Arnold’s cat mapping to a blank image, no changes happen since all the values in the image matrix are the same. Therefore, the encryption quality of the ECB mode of our cipher is unaffected in this case. Hence, while we managed to cope with some weaknesses of the ECB mode using an additional mapping, the ciphertext of a monochromatic image still has low quality.</p>
</sec>
<sec id="j_infor608_s_006">
<label>4.2</label>
<title>CBC Mode</title>
<p>The CBC encryption mode is more advanced than the ECB mode. It requires an initialization vector, which is sampled randomly from a uniform distribution (Li <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_014">2023</xref>). This initialization vector is added to the sub-image using XOR or standard addition. The resulting matrix is then encrypted using a block cipher. This encrypted block is passed on as a new initialization vector for a new iteration. Then we repeat this process for each of the other given sub-images until all blocks are encrypted. Since the process of encrypting each block is dependent on previous iterations, it forms a chain of blocks.</p>
<p>The decryption of CBC starts from the encrypted block that was calculated in the latest iteration. We decrypt the blocks until the step with the initialization vector. We repeat the steps of decryption for each cipher block until we reach the very first deciphered block, where we subtract the public initialization vector.</p>
<p>The general idea of the CBC mode is presented below:</p>
<fig id="j_infor608_fig_008">
<label>Fig. 8</label>
<caption>
<p>CBC Mode.</p>
</caption>
<graphic xlink:href="infor608_g010.jpg"/>
</fig>
<p>To implement this mode for the MPF-based block cipher, we use the initialization vector in the form of a <inline-formula id="j_infor608_ineq_077"><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> matrix with entries randomly sampled from <inline-formula id="j_infor608_ineq_078"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>256</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{256}}$]]></tex-math></alternatives></inline-formula>. We denote this matrix by <inline-formula id="j_infor608_ineq_079"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{0}}$]]></tex-math></alternatives></inline-formula>. Then the encryption is performed as follows: 
<disp-formula id="j_infor608_eq_013">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="bold">X</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">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="bold">Z</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="normal">Γ</mml:mi>
<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: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: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:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<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:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mstyle mathvariant="bold">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:mstyle>
<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" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\mathbf{C}_{i1}}\equiv \big(\mathbf{X}+{\mathbf{C}_{i-1}}+{\mathbf{M}^{\prime }_{i}}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}q\\ {} \displaystyle {\mathbf{C}_{i2}}\equiv \big(\mathbf{Z}{\odot ^{\mathbf{Y}}}\Gamma {({\mathbf{C}_{i1}})^{\mathbf{Y}}}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}p;\\ {} \displaystyle {\mathbf{C}_{i}}\equiv \big({\Gamma ^{-1}}(\mathbf{{\mathbf{C}_{i2}}})+\mathbf{X}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}q,\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor608_ineq_080"><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> is the <italic>i</italic>-th encrypted block and matrices <inline-formula id="j_infor608_ineq_081"><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:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{i1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor608_ineq_082"><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:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{i2}}$]]></tex-math></alternatives></inline-formula> are intermediate results corresponding to that block. The obtained matrix <inline-formula id="j_infor608_ineq_083"><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 all of the upcoming encrypted blocks are used as initialization vectors for the next block encryption.</p>
<p>The decryption works similarly, but all encryption steps are reversed, just as in the previous section.</p>
<p>We apply the CBC mode for each colour individually, generating a new initialization vector for each colour matrix. Example results are displayed below in Figs. <xref rid="j_infor608_fig_009">9</xref>a–<xref rid="j_infor608_fig_009">9</xref>d. We use <inline-formula id="j_infor608_ineq_084"><alternatives><mml:math>
<mml:mtext>ACM</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>5</mml:mn>
<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[$\text{ACM}(5,\mathbf{M})$]]></tex-math></alternatives></inline-formula> mapping and apply a CBC mode to the obtained result.</p>
<fig id="j_infor608_fig_009">
<label>Fig. 9</label>
<caption>
<p>CBC Mode of MPF-based cipher applied to various images, Arnold’s cat map is used.</p>
</caption>
<graphic xlink:href="infor608_g011.jpg"/>
</fig>
<p>Let us consider the quality of encryption of two images, namely the ‘Woman.png’ and the Linux penguin image presented in Fig. <xref rid="j_infor608_fig_009">9</xref>c and Fig. <xref rid="j_infor608_fig_009">9</xref>d. First, we present the correlation matrices <inline-formula id="j_infor608_ineq_085"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>avg</mml:mtext>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Sigma _{\text{avg}}}$]]></tex-math></alternatives></inline-formula> for the obtained encrypted images: 
<disp-formula id="j_infor608_eq_014">
<graphic xlink:href="infor608_g012.jpg"/>
</disp-formula>
</p>
<p>The correlations above indicate significantly low or a lack of correlation. Furthermore, the results are similar for both images. Therefore, the adversary cannot distinguish between two images based on the encrypted image, which is evidence of the semantic security property.</p>
<p>Let us also present the scatter plot for the correlations of the encrypted Linux penguin in Fig. <xref rid="j_infor608_fig_010">10</xref>.</p>
<fig id="j_infor608_fig_010">
<label>Fig. 10</label>
<caption>
<p>Scatter plot for Linux penguin image using MPF-based block cipher in CBC, <inline-formula id="j_infor608_ineq_086"><alternatives><mml:math>
<mml:mtext>ACM</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>5</mml:mn>
<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[$\text{ACM}(5,\mathbf{M})$]]></tex-math></alternatives></inline-formula> was used.</p>
</caption>
<graphic xlink:href="infor608_g013.jpg"/>
</fig>
<p>We can see that there are no apparent correlations between the observations.</p>
<p>Now we consider the entropy for each channel of the encrypted images: 
<disp-formula id="j_infor608_eq_015">
<label>(9)</label><graphic xlink:href="infor608_g014.jpg"/>
</disp-formula> 
where the target entropy is 8.134, which means the observed values for each channel are very close to the target entropy. Furthermore, we have obtained the same entropy values for both encrypted images. Therefore, the encrypted images are statistically indistinguishable from the white noise.</p>
<p>Now we repeat the previously described process 5 times with the Linux penguin image, each time generating the keys and initialization vectors at random. We observe how the calculated entropy for each encrypted image relates to the theoretical maximum in Fig. <xref rid="j_infor608_fig_011">11</xref>. We can see that the entropies remained relatively close to the theoretical maximum, which is represented by a dashed line.</p>
<fig id="j_infor608_fig_011">
<label>Fig. 11</label>
<caption>
<p>Entropy plot for the encrypted Linux penguin image.</p>
</caption>
<graphic xlink:href="infor608_g015.jpg"/>
</fig>
<p>Let us compare the obtained results to the CBC mode of the AES-128 block cipher. We use the same Linux penguin image. The result of AES encryption is given below in Fig. <xref rid="j_infor608_fig_012">12</xref>.</p>
<fig id="j_infor608_fig_012">
<label>Fig. 12</label>
<caption>
<p>CBC Mode of AES-128 cipher applied to Linux penguin image.</p>
</caption>
<graphic xlink:href="infor608_g016.jpg"/>
</fig>
<p>The correlation matrix <inline-formula id="j_infor608_ineq_087"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>avg</mml:mtext>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Sigma _{\text{avg}}}$]]></tex-math></alternatives></inline-formula> for the obtained encrypted image is: 
<disp-formula id="j_infor608_eq_016">
<label>(10)</label><graphic xlink:href="infor608_g017.jpg"/>
</disp-formula>
</p>
<p>AES cipher maximum absolute correlation is 0.005, and the entropies for each channel are 
<disp-formula id="j_infor608_eq_017">
<label>(11)</label><graphic xlink:href="infor608_g018.jpg"/>
</disp-formula> 
whereas the target entropy is 8.0.</p>
<p>We can conclude that for the considered platform group <inline-formula id="j_infor608_ineq_088"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{q}}$]]></tex-math></alternatives></inline-formula>, the CBC mode of the MPF-based block cipher with Arnold’s cat map is statistically indifferent to the AES cipher.</p>
</sec>
</sec>
<sec id="j_infor608_s_007">
<label>5</label>
<title>Galois Field</title>
<p>We can also use the Galois fields in our approach for better comparison with AES. In this paper, we consider the Galois field <inline-formula id="j_infor608_ineq_089"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({2^{9}})$]]></tex-math></alternatives></inline-formula> as the platform group. We use the irreducible polynomial <inline-formula id="j_infor608_ineq_090"><alternatives><mml:math>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$\phi (x)={x^{9}}+{x^{4}}+1$]]></tex-math></alternatives></inline-formula> due to the adjusted default parameter in the Python library for the Galois field. As in the case of AES, the private key matrices <inline-formula id="j_infor608_ineq_091"><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 mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Z</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{X},\mathbf{Y},\mathbf{Z}$]]></tex-math></alternatives></inline-formula> have size <inline-formula id="j_infor608_ineq_092"><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> with their entries <inline-formula id="j_infor608_ineq_093"><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: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:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[${x_{ij}}\in [1,256]$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor608_ineq_094"><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">j</mml:mi>
</mml:mrow>
</mml:msub>
<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:mn>510</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[${y_{ij}}\in [1,510]$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor608_ineq_095"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</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:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>∖</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${z_{ij}}\in \mathbb{GF}({2^{9}})\setminus \{0\}$]]></tex-math></alternatives></inline-formula>. Moreover, <bold>Y</bold> is an invertible matrix. The entries of the message block matrix <bold>M</bold> are integers in the range <inline-formula id="j_infor608_ineq_096"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>255</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[0,255]$]]></tex-math></alternatives></inline-formula>. As previously, we apply Arnold’s cat map to the matrix <bold>M</bold> <italic>τ</italic> times and denote the obtained result by <inline-formula id="j_infor608_ineq_097"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mtext>ACM</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathbf{M}^{\prime }}=\text{ACM}(\tau ,\mathbf{M})$]]></tex-math></alternatives></inline-formula>. We now use the secret key <inline-formula id="j_infor608_ineq_098"><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">Z</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\vec{\mathbf{K}}=(\mathbf{X},\mathbf{Y},\mathbf{Z})$]]></tex-math></alternatives></inline-formula> to encrypt a single block <inline-formula id="j_infor608_ineq_099"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{M}^{\prime }}$]]></tex-math></alternatives></inline-formula> as follows: 
<disp-formula id="j_infor608_eq_018">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="bold">Z</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="normal">Γ</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</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:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mstyle mathvariant="bold">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:mstyle>
<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" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\mathbf{S}_{1}}=\mathbf{X}+{\mathbf{M}^{\prime }};\\ {} \displaystyle {\mathbf{S}_{2}}\equiv \big(\mathbf{Z}{\odot ^{\mathbf{Y}}}\Gamma {({\mathbf{S}_{1}})^{\mathbf{Y}}}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}\phi (x);\\ {} \displaystyle \mathbf{S}\equiv \big({\Gamma ^{-1}}(\mathbf{{\mathbf{S}_{2}}})+\mathbf{X}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}{2^{9}},\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor608_ineq_100"><alternatives><mml:math>
<mml:mi mathvariant="normal">Γ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</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:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>511</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">↦</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">GF</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\Gamma ({\mathbf{S}_{1}}):{(1+{\mathbb{Z}_{511}})^{4\times 4}}\mapsto {\mathbb{GF}^{4\times 4}}({2^{9}})$]]></tex-math></alternatives></inline-formula> is a publicly known one-to-one mapping which replaces entries of matrix <inline-formula id="j_infor608_ineq_101"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{S}_{1}}$]]></tex-math></alternatives></inline-formula> with elements from <inline-formula id="j_infor608_ineq_102"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({2^{9}})$]]></tex-math></alternatives></inline-formula>. Clearly, <inline-formula id="j_infor608_ineq_103"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</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[${\Gamma ^{-1}}({\mathbf{S}_{2}})$]]></tex-math></alternatives></inline-formula> is the inverse transformation. Of course, the simplest case of Γ is to interpret entries of <inline-formula id="j_infor608_ineq_104"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{S}_{1}}$]]></tex-math></alternatives></inline-formula> as polynomials in <inline-formula id="j_infor608_ineq_105"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({2^{9}})$]]></tex-math></alternatives></inline-formula>. However, Γ can also permute elements of <inline-formula id="j_infor608_ineq_106"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({2^{9}})$]]></tex-math></alternatives></inline-formula>.</p>
<p>Note that the first step of encryption does not use modular arithmetic, i.e. since the entries of key matrix <bold>X</bold> are in the range <inline-formula id="j_infor608_ineq_107"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[1,256]$]]></tex-math></alternatives></inline-formula>, whereas the entries of <inline-formula id="j_infor608_ineq_108"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{M}^{\prime }}$]]></tex-math></alternatives></inline-formula> are in the range <inline-formula id="j_infor608_ineq_109"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>255</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[0,255]$]]></tex-math></alternatives></inline-formula> their sum <inline-formula id="j_infor608_ineq_110"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{S}_{1}}$]]></tex-math></alternatives></inline-formula> contains entries in the range <inline-formula id="j_infor608_ineq_111"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>511</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[1,511]$]]></tex-math></alternatives></inline-formula> and therefore can be interpreted as an element of <inline-formula id="j_infor608_ineq_112"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>511</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${(1+{\mathbb{Z}_{511}})^{4\times 4}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>The decryption algorithm is as follows: 
<disp-formula id="j_infor608_eq_019">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd>
<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 stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<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 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:msup>
<mml:mrow>
<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">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⊙</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml: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:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<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:mo>−</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\mathbf{D}_{1}}\equiv (\mathbf{S}-\mathbf{X})\hspace{0.2em}\mathrm{mod} \hspace{0.2em}{2^{9}};\\ {} \displaystyle {\mathbf{D}_{2}}{\equiv ^{{\mathbf{Y}^{-1}}}}{\big(\Gamma ({\mathbf{D}_{1}})\odot {\mathbf{Z}^{H}}\big)^{{\mathbf{Y}^{-1}}}}\hspace{0.2em}\mathrm{mod} \hspace{0.2em}\phi (x);\\ {} \displaystyle {\mathbf{M}^{\prime }}={\Gamma ^{-1}}({\mathbf{D}_{2}})-\mathbf{X},\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
where we see that at the last step, no modular arithmetic is used.</p>
<sec id="j_infor608_s_008">
<label>5.1</label>
<title>ECB Mode</title>
<p>Let us consider digital images from the previous section and encrypt them using <inline-formula id="j_infor608_ineq_113"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({2^{9}})$]]></tex-math></alternatives></inline-formula> as a platform group. We implement the ECB mode.</p>
<p>We can see from the encryption algorithm that the entries of the encrypted block <bold>S</bold> are integers in the range <inline-formula id="j_infor608_ineq_114"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>511</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[0,511]$]]></tex-math></alternatives></inline-formula>. Therefore, the maximum pixel intensity is 511. These intensities have to be normalized for plotting and visualization by taking the integer part of <inline-formula id="j_infor608_ineq_115"><alternatives><mml:math>
<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:math><tex-math><![CDATA[${s_{ij}}$]]></tex-math></alternatives></inline-formula> divided by 2, i.e. we have: 
<disp-formula id="j_infor608_eq_020">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em">⌊</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<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:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em">⌋</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {s^{\prime }_{ij}}=\bigg\lfloor \frac{{s_{ij}}}{2}\bigg\rfloor .\]]]></tex-math></alternatives>
</disp-formula> 
We can then visualize the normalized block <inline-formula id="j_infor608_ineq_116"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{S}^{\prime }}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Let us present several images encrypted using the ECB mode (see Fig. <xref rid="j_infor608_fig_013">13</xref>).</p>
<fig id="j_infor608_fig_013">
<label>Fig. 13</label>
<caption>
<p>ECB Mode of our cipher with <inline-formula id="j_infor608_ineq_117"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({2^{9}})$]]></tex-math></alternatives></inline-formula> platform group applied to various image.</p>
</caption>
<graphic xlink:href="infor608_g019.jpg"/>
</fig>
<p>Now, let us consider the two monochromatic images from the previous section. The results are presented below in Figs. <xref rid="j_infor608_fig_014">14</xref>a–<xref rid="j_infor608_fig_014">14</xref>b.</p>
<fig id="j_infor608_fig_014">
<label>Fig. 14</label>
<caption>
<p>ECB Mode of our cipher with <inline-formula id="j_infor608_ineq_118"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({2^{9}})$]]></tex-math></alternatives></inline-formula> platform group applied to monochromatic image.</p>
</caption>
<graphic xlink:href="infor608_g020.jpg"/>
</fig>
<p>We can see that the low quality of the ECB mode for monochromatic images is still an issue regardless of the algebraic structure used. Therefore, we implement Arnold’s cat mapping as previously for the Linux penguin image. The result is presented below in Fig. <xref rid="j_infor608_fig_015">15</xref>.</p>
<fig id="j_infor608_fig_015">
<label>Fig. 15</label>
<caption>
<p>Linux penguin.</p>
</caption>
<graphic xlink:href="infor608_g021.jpg"/>
</fig>
<p>Let us present the correlation matrix <inline-formula id="j_infor608_ineq_119"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>avg</mml:mtext>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Sigma _{\text{avg}}}$]]></tex-math></alternatives></inline-formula> for the encrypted image: 
<disp-formula id="j_infor608_eq_021">
<label>(12)</label><graphic xlink:href="infor608_g022.jpg"/>
</disp-formula>
</p>
<p>We can see from the entries of the correlation matrix <inline-formula id="j_infor608_ineq_120"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>avg</mml:mtext>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Sigma _{\text{avg}}}$]]></tex-math></alternatives></inline-formula> that <inline-formula id="j_infor608_ineq_121"><alternatives><mml:math>
<mml:mo 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:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mn>0.010</mml:mn></mml:math><tex-math><![CDATA[$|{\sigma _{ij}}|\lt 0.010$]]></tex-math></alternatives></inline-formula>, which means there is slim to no correlation in the cipher.</p>
<p>The cipher entropy is calculated as: 
<disp-formula id="j_infor608_eq_022">
<label>(13)</label><graphic xlink:href="infor608_g023.jpg"/>
</disp-formula> 
Since the theoretical maximum entropy for <inline-formula id="j_infor608_ineq_122"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({2^{9}})$]]></tex-math></alternatives></inline-formula> is 9, the presented results suggest very high entropy, i.e. the encrypted image looks chaotic and surpasses the quality of the ECB mode of AES cipher for the same image.</p>
</sec>
<sec id="j_infor608_s_009">
<label>5.2</label>
<title>CBC Mode</title>
<p>In the CBC mode, the initialization vector <inline-formula id="j_infor608_ineq_123"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{0}}$]]></tex-math></alternatives></inline-formula> is a block-size matrix whose entries are generated from a uniform distribution <inline-formula id="j_infor608_ineq_124"><alternatives><mml:math>
<mml:mi mathvariant="script">U</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>255</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathcal{U}(0,255)$]]></tex-math></alternatives></inline-formula>. Since each cipher consists of 9-bit elements, we append the cipher list by truncating the most significant bit, transforming each newly obtained <inline-formula id="j_infor608_ineq_125"><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:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{i-1}}$]]></tex-math></alternatives></inline-formula> to an 8-bit entries matrix. Therefore, the encryption algorithm is as follows: 
<disp-formula id="j_infor608_eq_023">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>⊕</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:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>8</mml:mn>
</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:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="bold">Z</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="normal">Γ</mml:mi>
<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: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: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:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<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:mo stretchy="false">≡</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mstyle mathvariant="bold">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:mstyle>
<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" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\mathbf{C}_{i1}}=\mathbf{X}+\big({\mathbf{M}^{\prime }_{i}}\oplus \big({\mathbf{C}_{i-1}}\hspace{0.2em}\mathrm{mod} \hspace{0.2em}{2^{8}}\big)\big)\\ {} \displaystyle {\mathbf{C}_{i2}}\equiv \big(\mathbf{Z}{\odot ^{\mathbf{Y}}}\Gamma {({\mathbf{C}_{i1}})^{\mathbf{Y}}}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}\phi (x);\\ {} \displaystyle {\mathbf{C}_{i}}\equiv \big({\Gamma ^{-1}}(\mathbf{{\mathbf{C}_{i2}}})+\mathbf{X}\big)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}{2^{9}},\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
where ⊕ denotes the bit-wise XOR operation. Note that at step <inline-formula id="j_infor608_ineq_126"><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:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{i1}}$]]></tex-math></alternatives></inline-formula>, only the matrix <inline-formula id="j_infor608_ineq_127"><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:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{i-1}}$]]></tex-math></alternatives></inline-formula> is reduced modulo <inline-formula id="j_infor608_ineq_128"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>8</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{8}}$]]></tex-math></alternatives></inline-formula>. No modular arithmetic is used when adding the private key matrix <bold>X</bold>.</p>
<p>Decryption algorithm reverses these steps as follows: 
<disp-formula id="j_infor608_eq_024">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≡</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:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo 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:msup>
<mml:mrow>
<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">D</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:mo>⊙</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml: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:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<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: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>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>⊕</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:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>8</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\mathbf{D}_{i1}}\equiv ({\mathbf{C}_{i}}-\mathbf{X})\hspace{0.2em}\mathrm{mod} \hspace{0.2em}{2^{9}};\\ {} \displaystyle {\mathbf{D}_{i2}}{\equiv ^{{\mathbf{Y}^{-1}}}}{\big(\Gamma ({\mathbf{D}_{i1}})\odot {\mathbf{Z}^{H}}\big)^{{\mathbf{Y}^{-1}}}}\hspace{0.2em}\mathrm{mod} \hspace{0.2em}\phi (x);\\ {} \displaystyle {\mathbf{D}_{i3}}=\big({\Gamma ^{-1}}({\mathbf{D}_{2}})-\mathbf{X}\big);\\ {} \displaystyle {\mathbf{M}^{\prime }}={\mathbf{D}_{i3}}\oplus \big({\mathbf{C}_{i-1}}\hspace{0.2em}\mathrm{mod} \hspace{0.2em}{2^{8}}\big).\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Similarly to the encryption algorithm, we reduce only the matrix <inline-formula id="j_infor608_ineq_129"><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:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{i-1}}$]]></tex-math></alternatives></inline-formula> modulo <inline-formula id="j_infor608_ineq_130"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>8</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{8}}$]]></tex-math></alternatives></inline-formula> when calculating <inline-formula id="j_infor608_ineq_131"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{M}^{\prime }}$]]></tex-math></alternatives></inline-formula>. The reduced matrix is then entry-wise XOR’ed with <inline-formula id="j_infor608_ineq_132"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{D}_{i3}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Let us now consider the image ‘Skittles.png’. We investigate the statistical results of the CBC mode of encryption for this image. The output of the CBC mode of our cipher is presented in Fig. <xref rid="j_infor608_fig_016">16</xref>.</p>
<fig id="j_infor608_fig_016">
<label>Fig. 16</label>
<caption>
<p>CBC Mode of our cipher with <inline-formula id="j_infor608_ineq_133"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({2^{9}})$]]></tex-math></alternatives></inline-formula> platform group applied to Skitlles.png image.</p>
</caption>
<graphic xlink:href="infor608_g024.jpg"/>
</fig>
<p>As previously, let us present the values of the correlation matrix and the entropy vector: 
<disp-formula id="j_infor608_eq_025">
<label>(14)</label><graphic xlink:href="infor608_g025.jpg"/>
</disp-formula>
</p>
<p>These results indicate very low correlations and high chaos among the pixel intensities in the cipher.</p>
<p>Moreover, let us plot the distribution of the unnormalized pixel intensities of the encrypted image in Fig. <xref rid="j_infor608_fig_017">17</xref>. We can see that the intensity probabilities for all colours fluctuate throughout the intensity interval, but the probability difference from the uniform distribution is less than 0.001 for each intensity. To further analyse the uniformity of the cipher, we perform the Chi-Square Test on each colour intensity set that is divided into 32 bins. We plot the frequency histograms for each colour in Fig. <xref rid="j_infor608_fig_018">18</xref>. In this case, p-values (up to 3 decimal places) of the Chi-Square test for red, green, and blue channels are: <inline-formula id="j_infor608_ineq_134"><alternatives><mml:math>
<mml:mn>0.063</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>0.835</mml:mn></mml:math><tex-math><![CDATA[$0.063,0.835$]]></tex-math></alternatives></inline-formula>, and 0.600 respectively. Therefore, with <inline-formula id="j_infor608_ineq_135"><alternatives><mml:math>
<mml:mn>95</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$95\% $]]></tex-math></alternatives></inline-formula> probability, we do not reject the null hypothesis that the values are uniformly distributed. However, the results of the Chi-Square test might change drastically if given another private key, so the numerical results of the Chi-Square test only suggest that for this specifically randomly generated key, we cannot reject the null hypothesis with <inline-formula id="j_infor608_ineq_136"><alternatives><mml:math>
<mml:mn>95</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$95\% $]]></tex-math></alternatives></inline-formula> probability.</p>
<fig id="j_infor608_fig_017">
<label>Fig. 17</label>
<caption>
<p>Cipher Interpolated line chart of pixel intensities for digital image Skittles.png encrypted in CBC mode.</p>
</caption>
<graphic xlink:href="infor608_g026.jpg"/>
</fig>
<fig id="j_infor608_fig_018">
<label>Fig. 18</label>
<caption>
<p>Binned RGB intensity charts.</p>
</caption>
<graphic xlink:href="infor608_g027.jpg"/>
</fig>
</sec>
</sec>
<sec id="j_infor608_s_010">
<label>6</label>
<title>Statistical Characteristics of the MPF-Based Block Cipher</title>
<p>The number of changing pixel rates (NPCR) and the unified average changed intensity (UACI) are the two most common statistical characteristics used to evaluate the strength of image encryption ciphers with respect to differential attacks (Wu <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_023">2011</xref>). The results of the numerical analysis using these metrics need to be compared to the critical values that these statistics are theoretically expected to reach.</p>
<p>Strict avalanche criterion resides in different fields of cryptography, and it is generalized by the avalanche effect (Castro <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_003">2005</xref>). It measures the amount of non-linearity in substitution boxes (also known as s-boxes), and it is a key component in AES (Castro <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor608_ref_003">2005</xref>).</p>
<p>Let us explore these characteristics for our cipher defined over the Galois field. We consider two images: ‘Skittles.png’ and the Linux penguin. The experiment is based on comparing two ciphertexts of <inline-formula id="j_infor608_ineq_137"><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> block size and is performed as follows:</p>
<list>
<list-item id="j_infor608_li_007">
<label>•</label>
<p>We settle on the initial block plaintext <inline-formula id="j_infor608_ineq_138"><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> and encrypt it as the ciphertext <inline-formula id="j_infor608_ineq_139"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{0}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor608_li_008">
<label>•</label>
<p>For each bit in each of the plaintext <inline-formula id="j_infor608_ineq_140"><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> coordinates we change one bit to get <inline-formula id="j_infor608_ineq_141"><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>, where <italic>i</italic> denotes the <italic>i</italic>-th changed bit. Hence, <inline-formula id="j_infor608_ineq_142"><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> and <inline-formula id="j_infor608_ineq_143"><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> differ by exactly one bit.</p>
</list-item>
<list-item id="j_infor608_li_009">
<label>•</label>
<p>We encrypt <inline-formula id="j_infor608_ineq_144"><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> to calculate ciphertext <inline-formula id="j_infor608_ineq_145"><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>.</p>
</list-item>
<list-item id="j_infor608_li_010">
<label>•</label>
<p>Finally, we compare <inline-formula id="j_infor608_ineq_146"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{0}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor608_ineq_147"><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>.</p>
</list-item>
<list-item id="j_infor608_li_011">
<label>•</label>
<p>After <italic>i</italic> runs through all possible values, we consider the next block.</p>
</list-item>
<list-item id="j_infor608_li_012">
<label>•</label>
<p>After collecting data from all of the blocks, we calculate the average statistics.</p>
</list-item>
</list>
<p>The first comparison is whether the specific coordinate pixel value changed or not – this difference is captured by the NPCR. The expected value for this statistic is given by the following expression: 
<disp-formula id="j_infor608_eq_026">
<label>(15)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="double-struck">E</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">NPCR</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<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">L</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>·</mml:mo>
<mml:mn>100</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbb{E}(\textit{NPCR})=\frac{L-1}{L}\cdot 100\% ,\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor608_ineq_148"><alternatives><mml:math>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$L-1$]]></tex-math></alternatives></inline-formula> is the upper bound of the uniform distribution <inline-formula id="j_infor608_ineq_149"><alternatives><mml:math>
<mml:mi mathvariant="script">U</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</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:math><tex-math><![CDATA[$\mathcal{U}(0,L-1)$]]></tex-math></alternatives></inline-formula>. In our case, we have <inline-formula id="j_infor608_ineq_150"><alternatives><mml:math>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>512</mml:mn></mml:math><tex-math><![CDATA[$L=512$]]></tex-math></alternatives></inline-formula> and therefore <inline-formula id="j_infor608_ineq_151"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">E</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">NPCR</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">≈</mml:mo>
<mml:mn>99.8</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{E}(\textit{NPCR})\approx 99.8\% $]]></tex-math></alternatives></inline-formula>.</p>
<p>Also, we keep track of the absolute difference in ciphertexts’ pixel intensities and use the UACI metric to measure it. The expected value is: 
<disp-formula id="j_infor608_eq_027">
<label>(16)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="double-struck">E</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">UACI</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>·</mml:mo>
<mml:mn>100</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbb{E}(\textit{UACI})=\frac{L+1}{3L}\cdot 100\% ,\]]]></tex-math></alternatives>
</disp-formula> 
and therefore in our setup we have <inline-formula id="j_infor608_ineq_152"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">E</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">UACI</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>33.4</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{E}(\textit{UACI})=33.4\% $]]></tex-math></alternatives></inline-formula>.</p>
<p>We resize both considered images to a <inline-formula id="j_infor608_ineq_153"><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> block size and perform 50 iterations, and calculate the average NPCR and UACI values for all iterations. During the experiment, we do not use Arnold’s cat mapping, since otherwise we would not evaluate the encryption scheme appropriately. We output the values in Table <xref rid="j_infor608_tab_001">1</xref>.</p>
<table-wrap id="j_infor608_tab_001">
<label>Table 1</label>
<caption>
<p>Average NPCR and UACI values.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Image</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Resized image size</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Average NPCR, %</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Average UACI, %</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Linux penguin</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor608_ineq_154"><alternatives><mml:math>
<mml:mn>16</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$16\times 16$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">99.630</td>
<td style="vertical-align: top; text-align: left">33.359</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Linux penguin</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor608_ineq_155"><alternatives><mml:math>
<mml:mn>32</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>32</mml:mn></mml:math><tex-math><![CDATA[$32\times 32$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">99.609</td>
<td style="vertical-align: top; text-align: left">33.379</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Linux penguin</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor608_ineq_156"><alternatives><mml:math>
<mml:mn>64</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>64</mml:mn></mml:math><tex-math><![CDATA[$64\times 64$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">99.597</td>
<td style="vertical-align: top; text-align: left">33.504</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Skittles.png</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor608_ineq_157"><alternatives><mml:math>
<mml:mn>16</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$16\times 16$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">99.576</td>
<td style="vertical-align: top; text-align: left">33.495</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Skittles.png</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor608_ineq_158"><alternatives><mml:math>
<mml:mn>32</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>32</mml:mn></mml:math><tex-math><![CDATA[$32\times 32$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">99.574</td>
<td style="vertical-align: top; text-align: left">33.458</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Skittles.png</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor608_ineq_159"><alternatives><mml:math>
<mml:mn>64</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>64</mml:mn></mml:math><tex-math><![CDATA[$64\times 64$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">99.592</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">33.471</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>We can observe that the obtained values of both characteristics are close to the expected ones. Therefore, we do not reject the hypothesis that the ciphertexts are generated independently of each other.</p>
<p>Now we calculate the avalanche effect of our cipher. Since we consider <inline-formula id="j_infor608_ineq_160"><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> blocks, each entry has 8 bits that can be changed in the initial image, and the block consists of three channels, we perform exactly <inline-formula id="j_infor608_ineq_161"><alternatives><mml:math>
<mml:mn>4</mml:mn>
<mml:mo>·</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>·</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>·</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>=</mml:mo>
<mml:mn>384</mml:mn></mml:math><tex-math><![CDATA[$4\cdot 4\cdot 8\cdot 3=384$]]></tex-math></alternatives></inline-formula> iterations. For both images, we output the results as heatmaps for each channel and for each coordinate separately.</p>
<fig id="j_infor608_fig_019">
<label>Fig. 19</label>
<caption>
<p>Heatmaps for the avalanche criterion of our cipher with <inline-formula id="j_infor608_ineq_162"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">GF</mml:mi>
<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>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{GF}({2^{9}})$]]></tex-math></alternatives></inline-formula> platform group.</p>
</caption>
<graphic xlink:href="infor608_g028.jpg"/>
</fig>
<p>We can observe that for both images, the results are similar (see Fig. <xref rid="j_infor608_fig_019">19</xref>). The variance from the expected value of 0.5 is approximately 0.02, which shows an insignificant difference in value variation during the experiment, despite the coordinate or the channel. Therefore, from the avalanche effect perspective, the theoretically expected value coincided with the experimental result.</p>
<p>We can also observe that there is no clear pattern of higher or lower values. The results are relatively random, although the confidence interval, which includes the value of 0.5, is narrow.</p>
</sec>
<sec id="j_infor608_s_011">
<label>7</label>
<title>Conclusion</title>
<p>In this paper, we have introduced improvements to our original block cipher, presented in Dindiene <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor608_ref_007">2022</xref>), e.g. we now use individual keys for each of the RGB colours, and we implemented Arnold’s cat mapping to the initial digital image to improve the quality of encryption. Also, we implemented Galois Fields in our proposal, making it more convenient for practical applications.</p>
<p>We considered both versions of our block cipher in ECB and CBC modes of encryption and analysed the quality of encrypted images using statistical characteristics. The obtained results have shown that the implementation of Arnold’s cat mapping plays an important part in the overall quality of encryption. For example, we have demonstrated in Fig. <xref rid="j_infor608_fig_009">9</xref>c and <xref rid="j_infor608_fig_009">9</xref>d that the considered plaintexts are statistically indistinguishable given the ciphertext, which is evidence for the semantic security of our proposal. We calculated the correlation matrices for both images. The maximum absolute correlations of 0.005 and 0.009, respectively, have shown the lack of statistically significant linear relations between the pixels, which is a desirable result for a secure cipher. Also, we saw that the entropy for both images is 8.131, which is close to the theoretical maximum. Therefore, the statistical results obtained for the CBC mode of our block cipher are indistinguishable from the AES.</p>
<p>Implementing Arnold’s cat mapping proved especially useful for monochromatic images. We have shown in Fig. <xref rid="j_infor608_fig_007">7</xref> that our proposal, together with Arnold’s cat mapping, surpasses the AES cipher in ECB mode. Moreover, the maximum absolute correlation of the ciphertext was 0.009, which is similar to the result obtained for the CBC mode of encryption. However, as can be seen from Fig. <xref rid="j_infor608_fig_014">14</xref>b, the ECB mode is still not recommended for our cipher, since Arnold’s cat mapping cannot remove the dominance of one colour in this case. On the other hand, while ciphertexts in Figs. <xref rid="j_infor608_fig_004">4</xref> and <xref rid="j_infor608_fig_014">14</xref>a are still low quality, they seem more chaotic than the ciphertext obtained from the ECB mode of AES (see Fig. <xref rid="j_infor608_fig_006">6</xref>a), even without additional scrambling.</p>
<p>We also considered the avalanche effect of our proposal. The obtained results have shown that we can expect an average of <inline-formula id="j_infor608_ineq_163"><alternatives><mml:math>
<mml:mn>99.6</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$99.6\% $]]></tex-math></alternatives></inline-formula> value of NPCR and a <inline-formula id="j_infor608_ineq_164"><alternatives><mml:math>
<mml:mn>33.5</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$33.5\% $]]></tex-math></alternatives></inline-formula> value of UACI statistical characteristics. These results are fairly close to the desired values of these characteristics. Furthermore, we can expect the avalanche effect in the range <inline-formula id="j_infor608_ineq_165"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0.48</mml:mn>
<mml:mo>;</mml:mo>
<mml:mn>0.52</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[0.48;0.52]$]]></tex-math></alternatives></inline-formula>, which is close to the ideal value of 0.5.</p>
<p>Note, however, that in our paper we have fixed the parameters of Arnold’s cat mapping, as well as the number of its iterations. In the future, it may be interesting to explore the effect of scrambling with other parameter values.</p>
<p>Also, to shorten this paper, we have left out the performance analysis for the enhanced version of our cipher. Though from our previous work, there are indications that our proposal can be executed reasonably fast, it may be necessary to consider the influence of Arnold’s cat mapping and parallelization on the performance of our cipher.</p>
</sec>
</body>
<back>
<ref-list id="j_infor608_reflist_001">
<title>References</title>
<ref id="j_infor608_ref_001">
<mixed-citation publication-type="journal"><string-name><surname>Asif</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Asamoah</surname>, <given-names>J.K.K.</given-names></string-name>, <string-name><surname>Hazzazi</surname>, <given-names>M.M.</given-names></string-name>, <string-name><surname>Alharbi</surname>, <given-names>A.R.</given-names></string-name>, <string-name><surname>Ashraf</surname>, <given-names>M.U.</given-names></string-name>, <string-name><surname>Alghamdi</surname>, <given-names>A.M.</given-names></string-name> (<year>2022</year>). <article-title>A novel image encryption technique based on cyclic codes over galois field</article-title>. <source>Computational Intelligence and Neuroscience</source>, <volume>2022</volume>, <elocation-id>1912603</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1155/2022/1912603" xlink:type="simple">https://doi.org/10.1155/2022/1912603</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_002">
<mixed-citation publication-type="journal"><string-name><surname>Broumandnia</surname>, <given-names>A.</given-names></string-name> (<year>2020</year>). <article-title>Image encryption algorithm based on the finite fields in chaotic maps</article-title>. <source>Journal of Information Security and Applications</source>, <volume>54</volume>(<issue>4</issue>), <elocation-id>102553</elocation-id>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_003">
<mixed-citation publication-type="journal"><string-name><surname>Castro</surname>, <given-names>J.C.H.</given-names></string-name>, <string-name><surname>Sierra</surname>, <given-names>J.M.</given-names></string-name>, <string-name><surname>Seznec</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Izquierdo</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Ribagorda</surname>, <given-names>A.</given-names></string-name> (<year>2005</year>). <article-title>The strict avalanche criterion randomness test</article-title>. <source>Mathematics and Computers in Simulation</source>, <volume>68</volume>(<issue>1</issue>), <fpage>1</fpage>–<lpage>7</lpage>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_004">
<mixed-citation publication-type="journal"><string-name><surname>Chillali</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Oughdir</surname>, <given-names>L.</given-names></string-name> (<year>2023</year>). <article-title>Image encryption algorithm based on elliptic curves</article-title>. <source>WSEAS Transactions on Signal Processing</source>, <volume>19</volume>, <fpage>184</fpage>–<lpage>191</lpage>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_005">
<mixed-citation publication-type="journal"><string-name><surname>Daoui</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Yamni</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Chelloug</surname>, <given-names>S.A.</given-names></string-name>, <string-name><surname>Wani</surname>, <given-names>M.A.</given-names></string-name>, <string-name><surname>El-Latif</surname>, <given-names>A.A.A.</given-names></string-name> (<year>2023</year>). <article-title>Efficient image encryption scheme using novel 1D multiparametric dynamical tent map and parallel computing</article-title>. <source>Mathematics</source>, <volume>11</volume>(<issue>7</issue>), <fpage>1589</fpage>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_006">
<mixed-citation publication-type="journal"><string-name><surname>Detomi</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Morigi</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Shumyatsky</surname>, <given-names>P.</given-names></string-name> (<year>2025</year>). <article-title>Commuting probability for the Sylow subgroups of a profinite group</article-title>. <source>Mathematische Zeitschrift</source>, <volume>309</volume>(<issue>3</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s00209-025-03686-x" xlink:type="simple">https://doi.org/10.1007/s00209-025-03686-x</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_007">
<mixed-citation publication-type="journal"><string-name><surname>Dindiene</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Mihalkovich</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Luksys</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name> (<year>2022</year>). <article-title>Matrix power function based block cipher operating in CBC mode</article-title>. <source>Mathematics</source>, <volume>10</volume>(<issue>12</issue>), <elocation-id>2123</elocation-id>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_008">
<mixed-citation publication-type="journal"><string-name><surname>Dinu</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Frunzete</surname>, <given-names>M.</given-names></string-name> (<year>2025</year>). <article-title>Image encryption using chaotic maps: development, application, and analysis</article-title>. <source>Mathematics</source>, <volume>13</volume>(<issue>16</issue>), <fpage>2588</fpage>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_009">
<mixed-citation publication-type="other"><string-name><surname>Dworkin</surname>, <given-names>M.J.</given-names></string-name>, <string-name><surname>Barker</surname>, <given-names>E.B.</given-names></string-name>, <string-name><surname>Nechvatal</surname>, <given-names>J.R.</given-names></string-name>, <string-name><surname>Foti</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Bassham</surname>, <given-names>L.E.</given-names></string-name>, <string-name><surname>Roback</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Jr</surname>, <given-names>J.F.D.</given-names></string-name> (2001). Advanced Encryption Standard (AES). Last Modified: 2021-03-01T01:03-05:00. <uri>https://www.nist.gov/publications/advanced-encryption-standard-aes</uri>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_010">
<mixed-citation publication-type="journal"><string-name><surname>Elashry</surname>, <given-names>I.F.</given-names></string-name>, <string-name><surname>Faragallah</surname>, <given-names>O.S.</given-names></string-name>, <string-name><surname>Abbas</surname>, <given-names>A.M.</given-names></string-name>, <string-name><surname>El-Rabaie</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>El-Samie</surname>, <given-names>F.E.A.</given-names></string-name> (<year>2012</year>). <article-title>A new method for encrypting images with few details using Rijndael and RC6 block ciphers in the electronic code book mode</article-title>. <source>Information Security Journal</source>, <volume>21</volume>(<issue>4</issue>), <fpage>193</fpage>–<lpage>205</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/19393555.2011.654319" xlink:type="simple">https://doi.org/10.1080/19393555.2011.654319</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_011">
<mixed-citation publication-type="journal"><string-name><surname>Hernández-Díaz</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Pérez-Meana</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Silva-García</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Flores-Carapia</surname>, <given-names>R.</given-names></string-name> (<year>2021</year>). <article-title>JPEG images encryption scheme using elliptic curves and a new S-Box generated by chaos</article-title>. <source>Electronics</source>, <volume>10</volume>(<issue>4</issue>), <fpage>413</fpage>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_012">
<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>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_013">
<mixed-citation publication-type="other"><string-name><surname>Li</surname>, <given-names>C.</given-names></string-name> (2006). Cryptanalyses of some multimedia encryption schemes. <italic>Cryptology ePrint Archive</italic>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_014">
<mixed-citation publication-type="journal"><string-name><surname>Li</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Song</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Dong</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Zheng</surname>, <given-names>H.</given-names></string-name> (<year>2023</year>). <article-title>An efficient encryption method for smart grid data based on improved CBC mode</article-title>. <source>Journal of King Saud University – Computer and information sciences</source>, <volume>35</volume>(<issue>9</issue>), <elocation-id>101744</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.jksuci.2023.101744" xlink:type="simple">https://doi.org/10.1016/j.jksuci.2023.101744</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_015">
<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>a). <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>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_016">
<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>Sakalauskas</surname>, <given-names>E.</given-names></string-name> (<year>2022</year>b). <article-title>Counter mode of the Shannon block cipher based on MPF defined over a non-commuting group</article-title>. <source>Mathematics</source>, <volume>10</volume>(<issue>18</issue>), <elocation-id>3363</elocation-id>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_017">
<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>Dindiene</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name> (<year>2022</year>c). <article-title>CBC mode of MPF based Shannon cipher defined over a non-commuting platform group</article-title>. <source>Informatica</source>, <volume>33</volume>(<issue>4</issue>), <fpage>833</fpage>–<lpage>856</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.15388/22-INFOR499" xlink:type="simple">https://doi.org/10.15388/22-INFOR499</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_018">
<mixed-citation publication-type="journal"><string-name><surname>Nagaraj</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Raju</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Rao</surname>, <given-names>K.K.</given-names></string-name> (<year>2015</year>). <article-title>Image encryption using elliptic curve cryptograhy and matrix</article-title>. <source>Procedia Computer Science</source>, <volume>48</volume>, <fpage>276</fpage>–<lpage>281</lpage>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_019">
<mixed-citation publication-type="journal"><string-name><surname>Pardede</surname>, <given-names>A.M.H.</given-names></string-name>, <string-name><surname>Abdullah</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Kusuma</surname>, <given-names>B.S.</given-names></string-name>, <string-name><surname>Kurniawan</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Suwarni</surname></string-name>, <string-name><surname>Iskandar</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Putri</surname>, <given-names>L.D.</given-names></string-name>, <string-name><surname>Erliana</surname>, <given-names>C.I.</given-names></string-name>, <string-name><surname>Irwansyah</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Saleh</surname>, <given-names>A.A.</given-names></string-name>, <string-name><surname>Sriadhi</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Hartono</surname>, <given-names>H.</given-names></string-name> (<year>2018</year>). <article-title>Retraction: digital image security application with Arnold Cat Map (ACM)</article-title> <source>Journal of Physics. Conference Series</source>, <volume>1114</volume>(<issue>1</issue>), <elocation-id>12152</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1088/1742-6596/1114/1/012152" xlink:type="simple">https://doi.org/10.1088/1742-6596/1114/1/012152</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_020">
<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>2014</year>). <article-title>New asymmetric cipher of non-commuting cryptography class based on matrix power function</article-title>. <source>Informatica</source>, <volume>25</volume>(<issue>2</issue>), <fpage>283</fpage>–<lpage>298</lpage>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_021">
<mixed-citation publication-type="journal"><string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Listopadskis</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Tvarijonas</surname>, <given-names>P.</given-names></string-name> (<year>2008</year>). <article-title>Key agreement protocol (KAP) based on matrix power function</article-title>. <source>Advanced Studies in Software and Knowledge Engineering</source>, <volume>2</volume> (<issue>4</issue>), <fpage>92</fpage>–<lpage>96</lpage>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_022">
<mixed-citation publication-type="journal"><string-name><surname>Singh</surname>, <given-names>L.D.</given-names></string-name>, <string-name><surname>Lahoty</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Devi</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Dey</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Saikai</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Devi</surname>, <given-names>K.S.</given-names></string-name>, <string-name><surname>Singh</surname>, <given-names>K.M.</given-names></string-name> (<year>2024</year>). <article-title>Image encryption using dynamic S-boxes generated using elliptic curve points and chaotic system</article-title>. <source>Journal of Information Security and Applications</source>, <volume>83</volume>, <elocation-id>103793</elocation-id>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_023">
<mixed-citation publication-type="journal"><string-name><surname>Wu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Noonan</surname>, <given-names>J.P.</given-names></string-name>, <string-name><surname>Agaian</surname>, <given-names>S.</given-names></string-name>, (<year>2011</year>). <article-title>NPCR and UACI randomness tests for image encryption</article-title>. <source>Cyber Journals: Multidisciplinary Journals in Science and Technology, Journal of Selected Areas in Telecommunications (JSAT)</source>, <volume>1</volume>(<issue>2</issue>), <fpage>31</fpage>–<lpage>38</lpage>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_024">
<mixed-citation publication-type="journal"><string-name><surname>Zhang</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>L.</given-names></string-name> (<year>2023</year>). <article-title>Chaos-based image encryption: review, application, and challenges</article-title>. <source>Mathematics</source>, <volume>11</volume>(<issue>11</issue>), <elocation-id>2585</elocation-id>.</mixed-citation>
</ref>
<ref id="j_infor608_ref_025">
<mixed-citation publication-type="journal"><string-name><surname>Zia</surname>, <given-names>U.</given-names></string-name>, <string-name><surname>McCartney</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Scotney</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Martinez</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>AbuTair</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Memon</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Sajjad</surname>, <given-names>A.</given-names></string-name> (<year>2022</year>). <article-title>Survey on image encryption techniques using chaotic maps in spatial, transform and spatiotemporal domains</article-title>. <source>International Journal of Information Security</source>, <volume>21</volume>(<issue>4</issue>), <fpage>917</fpage>–<lpage>935</lpage>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>
