<?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">INFO1204</article-id>
<article-id pub-id-type="doi">10.15388/Informatica.2018.186</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>A Fast Chaos-Based Colour Image Encryption Algorithm Using a Hash Function</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Fu</surname><given-names>Chong</given-names></name><email xlink:href="fuchong@mail.neu.edu.cn">fuchong@mail.neu.edu.cn</email><xref ref-type="aff" rid="j_info1204_aff_001">1</xref><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>C. Fu</bold> received his MS in telecommunication and information systems in 2001 and PhD in computer software and theory in 2006, both from Northeastern University, Shenyang, China. He joined the same university in 2001 and is currently a professor and associate head at the Department of Communication and Electronics Engineering, School of Computer Science and Engineering. In 2010, he spent three months as a visiting researcher in the Department of Electronics Information Engineering, Hong Kong Polytechnic University. His research interests include multimedia security and computer vision.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Zhang</surname><given-names>Gao-Yuan</given-names></name><email xlink:href="zhanggaoyuan@mai.neu.edu.cn">zhanggaoyuan@mai.neu.edu.cn</email><xref ref-type="aff" rid="j_info1204_aff_001">1</xref><bio>
<p><bold>G.-Y. Zhang</bold> received the BS degree from Dalian University of Technology, China, in 1999, and MS degree in telecommunication and information systems from Northeastern University, China in 2003. He is currently working toward the PhD degree at the Department of Communication and Electronics Engineering, Northeastern University, China. His research interests include telemedicine and telehealth systems, multimedia security, and wireless communication, etc.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Zhu</surname><given-names>Mai</given-names></name><email xlink:href="1610535@stu.neu.edu.cn">1610535@stu.neu.edu.cn</email><xref ref-type="aff" rid="j_info1204_aff_001">1</xref><bio>
<p><bold>M. Zhu</bold> is currently a PhD student at the Department of Communication and Electronics Engineering, School of Computer Science and Engineering, Northeastern University, Shenyang, China. Her current research interests include multimedia security and computer vision.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Chen</surname><given-names>Jun-Xin</given-names></name><email xlink:href="chenjx@bmie.neu.edu.cn">chenjx@bmie.neu.edu.cn</email><xref ref-type="aff" rid="j_info1204_aff_002">2</xref><bio>
<p><bold>J.-X. Chen</bold> received the BS, MS and PhD degrees all in telecommunications engineering from Northeastern University, Shenyang, China, in 2007, 2009, and 2016, respectively. He is currently an assistant professor at Sino-Dutch Biomedical and Information Engineering School, Northeastern University, Shenyang, China. His research interests include biosignal process, chaos and optical security, genomic privacy, and compressive sensing.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Lei</surname><given-names>Wei-Min</given-names></name><email xlink:href="leiweimin@cse.neu.edu.cn">leiweimin@cse.neu.edu.cn</email><xref ref-type="aff" rid="j_info1204_aff_001">1</xref><bio>
<p><bold>W.-M. Lei</bold> received the BE and ME degrees in computer software from Nankai University and Chinese Academy of Sciences in 1992 and 1995, respectively, and the PhD degree from Dalian University of Technology in 1999. He is currently a professor and head at the Department of Communication and Electronics Engineering, School of Computer Science and Engineering, Northeastern University, Shenyang, China. He has published more than 80 papers. His recent research interests include real-time multipath transmission optimization, IP communication protocols, and future network architecture.</p></bio>
</contrib>
<aff id="j_info1204_aff_001"><label>1</label>School of Computer Science and Engineering, <institution>Northeastern University</institution>, Shenyang 110004, <country>China</country></aff>
<aff id="j_info1204_aff_002"><label>2</label>Sino-Dutch Biomedical and Information Engineering School, <institution>Northeastern University</institution>, Shenyang 110004, <country>China</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Corresponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2018</year></pub-date><pub-date pub-type="epub"><day>1</day><month>1</month><year>2018</year></pub-date><volume>29</volume><issue>4</issue><fpage>651</fpage><lpage>673</lpage><history><date date-type="received"><month>11</month><year>2017</year></date><date date-type="accepted"><month>10</month><year>2018</year></date></history>
<permissions><copyright-statement>© 2018 Vilnius University</copyright-statement><copyright-year>2018</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>This paper suggests a new fast colour image cipher to meet the increasing demand for secure online image communication applications. Unlike most other existing approaches using a permutation-substitution network, the proposed algorithm consists of only a single substitution part. The keystream sequence is generated from a 4-D hyperchaotic system, whose initial conditions are determined by both the secret key and the SHA-224 cryptographic hash value of the plain-image. Favoured by the avalanche effect of hash functions, totally different keystream sequences will be generated for different images. Consequently, desired diffusion effect can be achieved after only a single round of substitution operation, whereas at least two encryption rounds are required by the state-of-the-art permutation-substitution type image ciphers. We also demonstrate the computational efficiency of the proposed algorithm by comparing it with the AES encryption algorithm. A thorough security analysis is carried out in detail, demonstrating the satisfactory security of the proposed algorithm.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>colour image cipher</kwd>
<kwd>hyperchaotic system</kwd>
<kwd>hash function</kwd>
<kwd>XOR encryption</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_info1204_s_001">
<label>1</label>
<title>Introduction</title>
<p>The explosive growth in the amount of image data distributed over the Internet over the past decade has raised great concern about the protection of image information against unauthorized eavesdropping. Definitely, the most straightforward way is to use a cryptographic algorithm. Unfortunately, many of the existing studies have indicated that commonly used block ciphers, such as DES and AES, are not suitable for practical image encryption. This is because the security of these algorithms depends on the complexity of the algorithms, making them difficult to meet the demand for online communications when dealing with digital images characterized by bulk data capacity. Recently, chaos-based cryptography has suggested a promising way to deal with the intractable problems of fast and highly secure image encryption. Making use of the favourable characteristics such as extreme sensitivity to initial condition(s), ergodicity and long-term unpredictability, chaotic systems have demonstrated great potential for information, especially multimedia encryption. (Fridrich, <xref ref-type="bibr" rid="j_info1204_ref_006">1998</xref>) proposed the first chaos-based image encryption scheme using iterative permutation and substitution operation. In the permutation stage, the pixels in the input image are rearranged in a pseudorandom manner, which leads to a great reduction in the correlation between neighbouring pixels. In the substitution stage, the pixel values are altered sequentially and the influence of each individual pixel is diffused to all its succeeding ones during the modification process. With such a structure, a minor change of the plain-image may result in a totally different cipher-image with several overall rounds of encryption. Following Fridrich’s pioneer work, a growing number of chaos-based image encryption algorithms and their improvements have been suggested. A brief overview of some major contributions is given below.</p>
<p>Conventionally, three area-preserving invertible chaotic maps, i.e. the cat map (Fu <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1204_ref_009">2013</xref>), the baker map (Fu <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1204_ref_011">2016</xref>), and the standard map (Wong <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1204_ref_014">2008</xref>), are widely used for image scrambling. Unfortunately, this kind of permutation strategy suffers from two main disadvantages: (1) the periodicity of discretized version of chaotic maps, and (2) only applicable to square images. To address these two drawbacks, Fu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_007">2011</xref>) suggested an image scrambling scheme using a chaotic sequence sorting mechanism. Unfortunately, this method takes a whole row/column of an image as the scrambling unit and results in weaker confusion effect compared with many of the schemes working on individual pixels. Inspired by the natural ripple-like phenomenon that distorts a reflection on a water surface, Wu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_016">2014</xref>) suggested a novel scrambling algorithm that shuffles images in an <italic>n</italic> dimensional (<italic>n</italic> D) space using wave perturbations. Chen <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_001">2014</xref>) and Chen <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_002">2015a</xref>) suggested image scrambling schemes using a pixel-swapping mechanism respectively. In their schemes, each pixel in the input image is swapped with another pixel chosen by keystream sequence generated from a chaotic system.</p>
<p>To better meet the challenge of online secure image communication, much research has been done on improving the efficiency of chaos-based image ciphers. For instance, (Xiang <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1204_ref_017">2007</xref>) investigated the feasibility of selective image encryption on a bit-plane. It’s concluded that only selectively encrypting the higher four bit-planes of an image can achieve an acceptable level of security. As only 50% of the whole image data are encrypted, the execution time is reduced. Wong <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_015">2009</xref>) proposed a more efficient diffusion mechanism using simple table lookup and swapping techniques as a light-weight replacement of the 1-D chaotic map iteration. Following this work Chen <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_003">2015b</xref>) presented an efficient image encryption scheme with confusion and diffusion operations being both performed based on a lookup table. The other advantage of their approach is that it can effectively tolerate the channel errors, which may lead to the corruption of cipher data. It has been demonstrated that images recovered from the damaged cipher data have satisfactory visual perception. Wang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_013">2011</xref>) suggested a mechanism for combining the permutation and diffusion stages. Compared with other existing schemes with separated permutation and diffusion stages, their proposed scheme reduces the image-scanning cost by half, thereby increasing the execution speed. Fu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_008">2012</xref>) proposed a fast image cipher using a novel bidirectional diffusion mechanism. Simulation results indicated that their scheme requires only one round of permutation and two rounds of substitution to satisfy the plaintext sensitivity requirement. Zhu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_019">2011</xref>), Fu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_010">2014</xref>), Zhang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_018">2016</xref>) and Chen <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_005">2017</xref>) suggested chaos-based image ciphers using a bit-level permutation respectively. Owing to the substitution effect introduced in the permutation stage, the number of iteration rounds required by the time-consuming substitution procedure is reduced, and hence a shorter encryption time is needed. Chen <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1204_ref_004">2015c</xref>) proposed a method for obtaining diffusion keystream sequence from the permutation matrix, which is produced and preserved in the permutation stage. As no extra chaotic iteration and quantization is required in the diffusion procedure, the computational efficiency is thereby improved.</p>
<p>Through the exploration of above schemes, one can find that all these schemes can be thought of as the extensions of the Fridrich’s approach, where the permutation and substitution stages are indispensable. In this paper, we propose a novel fast colour image encryption algorithm consisting of only a single substitution part. The keystream sequence is generated from a 4-D hyperchaotic system, whose initial conditions are determined by both the secret key and the SHA-224 cryptographic hash value of the plain-image. As is known, a cryptographic hash function is extremely sensitive to an input message and a chaotic system is extremely sensitive to initial conditions. As a result, a small change in a plain-image can be diffused to the entire cipher-image after only a single round of substitution operation, whereas at least two encryption rounds are required by the state-of-the-art permutation-substitution type image ciphers. Besides, our proposed algorithm does not suffer from the key distribution problem as the hash value is not part of the secret key.</p>
<p>The remainder of this paper is organized as follows. Section <xref rid="j_info1204_s_002">2</xref> presents the architecture of the new image cipher. The detailed encryption algorithm is described in Section <xref rid="j_info1204_s_003">3</xref>, followed by the implementation of SHA-224 hash function in Section <xref rid="j_info1204_s_004">4</xref>. In Section <xref rid="j_info1204_s_005">5</xref>, extensive analysis of the security of the encryption algorithm is carried out, and the diffusion performance of the encryption algorithm is compared with that of a typical permutation-substitution type image cipher. In Section <xref rid="j_info1204_s_013">6</xref>, the speed performance of the proposed algorithm is measured and the results are compared with those of AES algorithm in CBC mode. Finally, conclusions are drawn in the last section.</p>
</sec>
<sec id="j_info1204_s_002">
<label>2</label>
<title>Architecture of the New Image Encryption Algorithm</title>
<p>The architecture of the proposed image encryption algorithm is illustrated in Fig. <xref rid="j_info1204_fig_001">1</xref>. Compared with the widely studied permutation-substitution type image ciphers, the proposed algorithm consist of only a single substitution part. The substitution keystream sequence is extracted from the trajectory of a 4-D hyperhaotic system, whose initial conditions are determined by both the secret key and the SHA-224 cryptographic hash value of the plain-image. More specifically, the 224-bit hash value is split into four equal parts, and each part is involved in determining one of the four initial conditions of the hyperchaotic system. To analyse the diffusion efficiency improvement obtained from the above change, the diffusion mechanism of the permutation-substitution type image cipher is discussed first.</p>
<fig id="j_info1204_fig_001">
<label>Fig. 1</label>
<caption>
<p>Architecture of the proposed image encryption algorithm.</p>
</caption>
<graphic xlink:href="info1204_g001.jpg"/>
</fig>
<p>Generally, the diffusion operation is done from left to right and top to bottom. Consequently, we assume a worst case that two plain-images (<inline-formula id="j_info1204_ineq_001"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi></mml:math><tex-math><![CDATA[$M\times N$]]></tex-math></alternatives></inline-formula> pixels), (I) and (II), have only 1-bit difference at the last, lower-right pixel, as illustrated in Figs. <xref rid="j_info1204_fig_002">2</xref>(a) and (b). We suppose that the differential pixel is moved to <inline-formula id="j_info1204_ineq_002"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(p,q)$]]></tex-math></alternatives></inline-formula> during the first round of permutation operation, as illustrated in Figs. <xref rid="j_info1204_fig_002">2</xref>(c) and (d). During the subsequent substitution operation, the pixel values are modified sequentially and the modification made to a particular pixel depends on both the keystream element and the accumulated effect of all the previous pixel values. Obviously, the influence of the differential pixel will be spread out to all its succeeding ones, as illustrated in Figs. <xref rid="j_info1204_fig_002">2</xref>(e) and (f). During the second round of permutation operation, the pixels containing the influence of the differential pixel are scattered over a wider area inside the intermediate cipher-image, and the subsequent substitution operation further increases the percentage difference between the two intermediate cipher-images. Generally, the influence of each individual pixel can be diffused over the whole cipher-image after at least three rounds of permutation-substitution operation.</p>
<p>It’s obvious that if desired diffusion effect can be achieved with fewer number of encryption rounds, the computational efficiency will be increased. Recently, some plaintext-dependent keystream generation mechanisms have been proposed to strengthen the robustness against chosen-plaintext attack and increase the diffusion intensity. Unfortunately, these schemes can only generate different keystream elements for differential pixels. As the substitution operation can only diffuse the influence of a pixel to its succeeding ones, only some of the pixels have increased their diffusion intensity. Experimental results show that many of these schemes may take two encryption rounds to achieve desired diffusion effect. Clearly, if two totally different keystream sequences can be generated for any two different images, the desired diffusion effect will be achieved after only a single encryption round, as illustrated in Figs. <xref rid="j_info1204_fig_003">3</xref>(c) and (d).</p>
<fig id="j_info1204_fig_002">
<label>Fig. 2</label>
<caption>
<p>Encryption process of permutation-substitution type image cipher.</p>
</caption>
<graphic xlink:href="info1204_g002.jpg"/>
</fig>
<fig id="j_info1204_fig_003">
<label>Fig. 3</label>
<caption>
<p>Encryption process of our proposed cipher.</p>
</caption>
<graphic xlink:href="info1204_g003.jpg"/>
</fig>
<p>As is known, good hash functions, including the SHA-224, hold the following properties. 1) Every binary digit, bit, of input message data influences the content of its hash value. That is, any change to a message will almost surely result in a different hash value. 2) It is computationally infeasible to find a message that corresponds to a given message digest, or to find two different messages that produce the same message digest. Clearly, if the initial conditions of a chaotic system depend on the hash value of the input image as well as the secret key, a slight change of the plain-image can lead to a totally different keystream sequence. Besides, as the hash value is not part of the secret key, it can be transmitted in plaintext form together with the cipher-image. Therefore, our proposed algorithm does not suffer from the key distribution problem, a serious practical drawback of one-time pads.</p>
<p>Moreover, as the differential or diffused pixel(s) no longer need(s) to be transferred to different positions of the original or intermediate cipher-image, the permutation part can be removed, which further decreases the computational complexity. The detailed image encryption algorithm and the SHA-224 cryptographic hash function will be discussed in the next two sections.</p>
</sec>
<sec id="j_info1204_s_003">
<label>3</label>
<title>Colour Image Encryption Using Hyperchaotic System</title>
<p>In the present paper, a hyperchaotic system (Li <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1204_ref_012">2005</xref>), which is formulated by introducing an additional state into the third-order generalized Lorenz equation, is employed to generate the substitution keystream sequence. The system is described by 
<disp-formula id="j_info1204_eq_001">
<label>(1)</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:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
</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 4.0pt 4.0pt" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>21</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>33</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</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:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</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:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\substack{\dot{x}\\ {} \dot{y}\\ {} \dot{z}\\ {} \dot{u}}\right]=\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c}{a_{11}}& {a_{12}}& 0& 0\\ {} {a_{21}}& {a_{22}}& 0& 0\\ {} 0& 0& {a_{33}}& 0\\ {} -k& 0& 0& 0\end{array}\right]\left[\substack{x\\ {} y\\ {} z\\ {} u}\right]+x\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c}0& 0& 0& 0\\ {} 0& 0& -1& 0\\ {} 0& 1& 0& 0\\ {} 0& 0& 0& 0\end{array}\right]\left[\substack{x\\ {} y\\ {} z\\ {} u}\right],\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1204_ineq_003"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${a_{11}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_004"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${a_{12}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_005"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>21</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${a_{21}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_006"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${a_{22}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_007"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>33</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${a_{33}}$]]></tex-math></alternatives></inline-formula> are the system parameters, and <italic>k</italic> is the control parameter that determines the dynamical behaviour of the system. When parameters <inline-formula id="j_info1204_ineq_008"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>35</mml:mn></mml:math><tex-math><![CDATA[${a_{11}}=-{a_{12}}=-35$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_009"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>21</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>7</mml:mn></mml:math><tex-math><![CDATA[${a_{21}}=7$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_010"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>12</mml:mn></mml:math><tex-math><![CDATA[${a_{22}}=12$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_011"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>33</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[${a_{33}}=-3$]]></tex-math></alternatives></inline-formula>, and either <inline-formula id="j_info1204_ineq_012"><alternatives><mml:math>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mn>21.84</mml:mn></mml:math><tex-math><![CDATA[$0<k\leqslant 21.84$]]></tex-math></alternatives></inline-formula> or <inline-formula id="j_info1204_ineq_013"><alternatives><mml:math>
<mml:mn>37.44</mml:mn>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mn>41.84</mml:mn></mml:math><tex-math><![CDATA[$37.44<k\leqslant 41.84$]]></tex-math></alternatives></inline-formula>, the system exhibits hyperchaotic behaviour. The projections of phase portrait of one typical case, with <inline-formula id="j_info1204_ineq_014"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>20</mml:mn></mml:math><tex-math><![CDATA[$k=20$]]></tex-math></alternatives></inline-formula>, are depicted in Fig. <xref rid="j_info1204_fig_004">4</xref>.</p>
<fig id="j_info1204_fig_004">
<label>Fig. 4</label>
<caption>
<p>Projections of phase portrait of system (1) with <inline-formula id="j_info1204_ineq_015"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>35</mml:mn></mml:math><tex-math><![CDATA[${a_{11}}=-{a_{12}}=-35$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_016"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>21</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>7</mml:mn></mml:math><tex-math><![CDATA[${a_{21}}=7$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_017"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>12</mml:mn></mml:math><tex-math><![CDATA[${a_{22}}=12$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_018"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>33</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[${a_{33}}=-3$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1204_ineq_019"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>20</mml:mn></mml:math><tex-math><![CDATA[$k=20$]]></tex-math></alternatives></inline-formula>. (a) <italic>x</italic>–<italic>y</italic> plane. (b) <italic>x</italic>–<italic>z</italic> plane. (c) <italic>x</italic>–<italic>u</italic> plane. (d) <italic>y</italic>–<italic>z</italic> plane. (e) <italic>y</italic>–<italic>u</italic> plane. and (f) <italic>z</italic>–<italic>u</italic> plane.</p>
</caption>
<graphic xlink:href="info1204_g004.jpg"/>
</fig>
<p>The secret key of the proposed encryption algorithm consists of four real numbers <inline-formula id="j_info1204_ineq_020"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">subkey</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">subkey</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">subkey</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">subkey</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\{{\mathit{subkey}_{x}},{\mathit{subkey}_{y}},{\mathit{subkey}_{z}},{\mathit{subkey}_{u}}\}$]]></tex-math></alternatives></inline-formula> corresponding to the four state variables of system (1). The value of each subkey can be chosen in a range a little wider than that of its corresponding state variable. Taking a 24-bit true colour image of size <inline-formula id="j_info1204_ineq_021"><alternatives><mml:math>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">W</mml:mi></mml:math><tex-math><![CDATA[$H\times W$]]></tex-math></alternatives></inline-formula> as input, the detailed encryption algorithm is described as follows:</p>
<p><italic>Step 1</italic>: Arrange the coloured subpixels in the input image to a one-dimensional byte array <inline-formula id="j_info1204_ineq_022"><alternatives><mml:math>
<mml:mi mathvariant="italic">imgData</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">W</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathit{imgData}=\{{p_{0}},{p_{1}},\dots ,{p_{3\times W\times H-1}}\}$]]></tex-math></alternatives></inline-formula> in the order from left to right, top to bottom.</p>
<p><italic>Step 2</italic>: Generate a chaotic sequence of length <inline-formula id="j_info1204_ineq_023"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">W</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi></mml:math><tex-math><![CDATA[${L_{cs}}=3\times W\times H$]]></tex-math></alternatives></inline-formula> by iterating system (1).</p>
<p> <italic>Step 2.1</italic>: Calculate the SHA-224 hash of <inline-formula id="j_info1204_ineq_024"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mi mathvariant="italic">D</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[$imgData$]]></tex-math></alternatives></inline-formula>, and the result is denoted by <inline-formula id="j_info1204_ineq_025"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SHA</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">img</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SHA}_{\mathit{img}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p> <italic>Step 2.2</italic>: Divide <inline-formula id="j_info1204_ineq_026"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SHA</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">img</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SHA}_{\mathit{img}}}$]]></tex-math></alternatives></inline-formula> into four 56-bit parts, which are denoted by <inline-formula id="j_info1204_ineq_027"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SHA</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">img</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SHA</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">img</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SHA}_{\mathit{img}(p1)}}-{\mathit{SHA}_{\mathit{img}(p4)}}$]]></tex-math></alternatives></inline-formula>, respectively, from which four real numbers between 0 and 1 can be obtained according to 
<disp-formula id="j_info1204_eq_002">
<label>(2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SHA</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">img</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">≪</mml:mo>
<mml:mn>56</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SHA</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">img</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">≪</mml:mo>
<mml:mn>56</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SHA</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">img</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">≪</mml:mo>
<mml:mn>56</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SHA</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">img</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">≪</mml:mo>
<mml:mn>56</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left\{\begin{array}{l}h{r_{x}}=\big[{\mathit{SHA}_{\mathit{img}(p1)}}/(1\ll 56)\big],\\ {} h{r_{y}}=\big[{\mathit{SHA}_{\mathit{img}(p2)}}/(1\ll 56)\big],\\ {} h{r_{z}}=\big[{\mathit{SHA}_{\mathit{img}(p3)}}/(1\ll 56)\big],\\ {} h{r_{u}}=\big[{\mathit{SHA}_{\mathit{img}(p4)}}/(1\ll 56)\big],\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula> 
where “<inline-formula id="j_info1204_ineq_028"><alternatives><mml:math>
<mml:mo stretchy="false">≪</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi></mml:math><tex-math><![CDATA[$\ll s$]]></tex-math></alternatives></inline-formula>” denotes a left shift by <italic>s</italic> bit.</p>
<p> <italic>Step 2.3</italic>: Set the initial conditions of system (1) according to 
<disp-formula id="j_info1204_eq_003">
<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" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">subkey</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">subkey</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">subkey</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">subkey</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left\{\begin{array}{l}{x_{0}}={\mathit{subkey}_{x}}+h{r_{x}},\\ {} {y_{0}}={\mathit{subkey}_{y}}+h{r_{y}},\\ {} {z_{0}}={\mathit{subkey}_{z}}+h{r_{z}},\\ {} {u_{0}}={\mathit{subkey}_{u}}+h{r_{u}},\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p> <italic>Step 2.4</italic>: Pre-iterate system (1) for <inline-formula id="j_info1204_ineq_029"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${T_{0}}$]]></tex-math></alternatives></inline-formula> times to avoid the harmful effect of transitional procedure, where <inline-formula id="j_info1204_ineq_030"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${T_{0}}$]]></tex-math></alternatives></inline-formula> is a constant. The system can be numerically solved by using fourth-order Runge–Kutta method, as given by 
<disp-formula id="j_info1204_eq_004">
<label>(4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left\{\begin{array}{l}{x_{n+1}}={x_{n}}+(h/6)({K_{1}}+2{K_{2}}+2{K_{3}}+{K_{4}}),\\ {} {y_{n+1}}={y_{n}}+(h/6)({L_{1}}+2{L_{2}}+2{L_{3}}+{L_{4}}),\\ {} {z_{n+1}}={z_{n}}+(h/6)({M_{1}}+2{M_{2}}+2{M_{3}}+{M_{4}}),\\ {} {u_{n+1}}={u_{n}}+(h/6)({N_{1}}+2{N_{2}}+2{N_{3}}+{N_{4}}),\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula> 
where 
<disp-formula id="j_info1204_eq_005">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>21</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>33</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mspace width="2em"/>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext>with</mml:mtext>
<mml:mspace width="2.5pt"/>
<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:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left\{\begin{array}{l}{K_{j}}={a_{11}}{x_{n}}+{a_{12}}{y_{n}},\\ {} {L_{j}}={a_{21}}{x_{n}}+{a_{22}}{y_{n}}+{u_{n}}-{x_{n}}{z_{n}},\\ {} {M_{j}}={a_{33}}{z_{n}}+{x_{n}}{y_{n}},\\ {} {N_{j}}=-k{x_{n}},\end{array}\hspace{2em}(\text{with}\hspace{2.5pt}j=1)\right.\]]]></tex-math></alternatives>
</disp-formula> 
<disp-formula id="j_info1204_eq_006">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msub>
<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">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>21</mml:mn>
</mml:mrow>
</mml:msub>
<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">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mphantom>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo></mml:mphantom>
<mml:mo>−</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="85.35826pt"/>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext>with</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>33</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml: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">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">k</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">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msub>
<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">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>21</mml:mn>
</mml:mrow>
</mml:msub>
<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">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mspace width="2em"/>
<mml:mo>−</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>33</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">k</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">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mspace width="1em"/>
<mml:mspace width="2.5pt"/>
<mml:mspace width="2.5pt"/>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext>with</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle \left\{\begin{array}{l}{K_{j}}={a_{11}}({x_{n}}+h{K_{j-1}}/2)+{a_{12}}({y_{n}}+h{L_{j-1}}/2),\\ {} {L_{j}}={a_{21}}({x_{n}}+h{K_{j-1}}/2)+{a_{22}}({y_{n}}+h{L_{j-1}}/2)+({u_{n}}+h{N_{j-1}}/2)\\ {} \phantom{{L_{j}}=}-({x_{n}}+h{K_{j-1}}/2)({z_{n}}+h{M_{j-1}}/2),\hspace{85.35826pt}(\text{with}\hspace{2.5pt}j=2,3)\\ {} {M_{j}}={a_{33}}({z_{n}}+h{M_{j-1}}/2)+({x_{n}}+h{K_{j-1}}/2)({y_{n}}+h{L_{j-1}}/2),\\ {} {N_{j}}=-k({x_{n}}+h{K_{j-1}}/2),\end{array}\right.\\ {} \displaystyle \left\{\begin{array}{l}{K_{j}}={a_{11}}({x_{n}}+h{K_{j-1}})+{a_{12}}({y_{n}}+h{L_{j-1}}),\\ {} {L_{j}}={a_{21}}({x_{n}}+h{K_{j-1}})+{a_{22}}({y_{n}}+h{L_{j-1}})+({u_{n}}+h{N_{j-1}})\\ {} \hspace{2em}-({x_{n}}+h{K_{j-1}})({z_{n}}+h{M_{j-1}}),\\ {} {M_{j}}={a_{33}}({z_{n}}+h{M_{j-1}})+({x_{n}}+h{K_{j-1}})({y_{n}}+h{L_{j-1}}),\\ {} {N_{j}}=-k({x_{n}}+h{K_{j-1}}),\end{array}\hspace{1em}\hspace{2.5pt}\hspace{2.5pt}(\text{with}\hspace{2.5pt}j=4)\right.\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
and the step size <italic>h</italic> is chosen as 0.005.</p>
<p> <italic>Step 2.5</italic>: Continue to iteration for <inline-formula id="j_info1204_ineq_031"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[${T_{i}}={L_{cs}}/4$]]></tex-math></alternatives></inline-formula> times. For each iteration, the current states <inline-formula id="j_info1204_ineq_032"><alternatives><mml:math>
<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">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({x_{n}},{y_{n}},{z_{n}},{u_{n}})$]]></tex-math></alternatives></inline-formula> of the system(1) are in turn stored into array <inline-formula id="j_info1204_ineq_033"><alternatives><mml:math>
<mml:mi mathvariant="italic">subSeq</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">W</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathit{subSeq}=\{s{s_{0}},s{s_{1}},\dots ,s{s_{3\times W\times H-1}}\}$]]></tex-math></alternatives></inline-formula>.</p>
<p><italic>Step 3</italic>: Extract a substitution keystream sequence <inline-formula id="j_info1204_ineq_034"><alternatives><mml:math>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">W</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$subKstr=\{s{k_{0}},s{k_{1}},\dots ,s{k_{3\times W\times H-1}}\}$]]></tex-math></alternatives></inline-formula> by quantifying <inline-formula id="j_info1204_ineq_035"><alternatives><mml:math>
<mml:mi mathvariant="italic">subSeq</mml:mi></mml:math><tex-math><![CDATA[$\mathit{subSeq}$]]></tex-math></alternatives></inline-formula> according to 
<disp-formula id="j_info1204_eq_007">
<label>(5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">mod</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">[</mml:mo>
<mml:mi mathvariant="italic">sig</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">abs</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ s{k_{n}}=\mathit{mod}\big[\mathit{sig}((\mathit{abs}(s{s_{n}}),m),{G_{L}}\big],\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1204_ineq_036"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">s</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:math><tex-math><![CDATA[$abs(x)$]]></tex-math></alternatives></inline-formula> returns the absolute value of <italic>x</italic>, <inline-formula id="j_info1204_ineq_037"><alternatives><mml:math>
<mml:mi mathvariant="italic">sig</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathit{sig}(x,m)$]]></tex-math></alternatives></inline-formula> returns the <italic>m</italic> most significant decimal digits of <italic>x</italic>, <inline-formula id="j_info1204_ineq_038"><alternatives><mml:math>
<mml:mi mathvariant="italic">mod</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathit{mod}(x,y)$]]></tex-math></alternatives></inline-formula> divides <italic>x</italic> by <italic>y</italic> and returns the remainder of the division, and <inline-formula id="j_info1204_ineq_039"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${G_{L}}$]]></tex-math></alternatives></inline-formula> is the number of gray levels in the input image (for a 24-bit RGB image, <inline-formula id="j_info1204_ineq_040"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>256</mml:mn></mml:math><tex-math><![CDATA[${G_{L}}=256$]]></tex-math></alternatives></inline-formula>). An <italic>m</italic> value of 15 is recommended as all the state variables in our scheme are declared as double-precision type, which has 15 or 16 decimal places of accuracy.</p>
<p><italic>Step 4</italic>: Encipher the coloured subpixels in <inline-formula id="j_info1204_ineq_041"><alternatives><mml:math>
<mml:mi mathvariant="italic">imgData</mml:mi></mml:math><tex-math><![CDATA[$\mathit{imgData}$]]></tex-math></alternatives></inline-formula> sequentially according to Eq. (<xref rid="j_info1204_eq_008">6</xref>). 
<disp-formula id="j_info1204_eq_008">
<label>(6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>⊕</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {c_{n}}={p_{n}}\oplus s{k_{n}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1204_ineq_042"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{n}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1204_ineq_043"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{n}}$]]></tex-math></alternatives></inline-formula> are the currently operated plain-subpixel and the resulting cipher-subpixel, respectively, and ⊕ performs bit-wise exclusive OR operation.</p>
<p>As can be seen from the above description, each pixel in the original image is encrypted using XOR operation. Therefore, the decryption uses the same algorithm as encryption.</p>
</sec>
<sec id="j_info1204_s_004">
<label>4</label>
<title>Implementation of SHA-224 Cryptographic Hash Function</title>
<p>As discussed above, the initial conditions of the employed hyperchaotic system are determined by both the secret key and the SHA-224 cryptographic hash value of the plain-image. In this section, the implementation of SHA-224 cryptographic hash function is briefly discussed.</p>
<p>SHA-224 may be used to hash a message, <italic>M</italic>, having a length of <italic>l</italic> bits, where <inline-formula id="j_info1204_ineq_044"><alternatives><mml:math>
<mml:mn>0</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>64</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$0\leqslant l\leqslant {2^{64}}$]]></tex-math></alternatives></inline-formula>. The algorithm uses 1) a message schedule of sixty-four 32-bit words, 2) eight working variables of 32 bits each, 3) sixty-four constant 32-bit words, and 4) a hash value of eight 32-bit words. The final result of SHA-224 is a 224-bit message digest.</p>
<p>The words of the message schedule are labelled <inline-formula id="j_info1204_ineq_045"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>63</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${W_{0}},{W_{1}},\dots ,{W_{63}}$]]></tex-math></alternatives></inline-formula>. The eight working variables are labelled <italic>a</italic>, <italic>b</italic>, <italic>c</italic>, <italic>d</italic>, <italic>e</italic>, <italic>f</italic>, <italic>g</italic>, and <italic>h</italic>. The sixty-four constant words are labelled, <inline-formula id="j_info1204_ineq_046"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>63</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${K_{0}^{(256)}},{K_{1}^{(256)}},\dots ,{K_{63}^{(256)}}$]]></tex-math></alternatives></inline-formula>. These words represent the first thirty-two bits of the fractional parts of the cube roots of the first sixty-four prime numbers. In hex, these constant words are (from left to right)</p>
<table-wrap id="j_info1204_tab_001">
<table>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">428a2f98</td>
<td style="vertical-align: top; text-align: left">71374491</td>
<td style="vertical-align: top; text-align: left">b5c0fbcf</td>
<td style="vertical-align: top; text-align: left">e9b5dba5</td>
<td style="vertical-align: top; text-align: left">3956c25b</td>
<td style="vertical-align: top; text-align: left">59f111f1</td>
<td style="vertical-align: top; text-align: left">923f82a4</td>
<td style="vertical-align: top; text-align: left">ab1c5ed5</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">d807aa98</td>
<td style="vertical-align: top; text-align: left">12835b01</td>
<td style="vertical-align: top; text-align: left">243185be</td>
<td style="vertical-align: top; text-align: left">550c7dc3</td>
<td style="vertical-align: top; text-align: left">72be5d74</td>
<td style="vertical-align: top; text-align: left">80deb1fe</td>
<td style="vertical-align: top; text-align: left">9bdc06a7</td>
<td style="vertical-align: top; text-align: left">c19bf174</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">e49b69c1</td>
<td style="vertical-align: top; text-align: left">efbe4786</td>
<td style="vertical-align: top; text-align: left">0fc19dc6</td>
<td style="vertical-align: top; text-align: left">240ca1cc</td>
<td style="vertical-align: top; text-align: left">2de92c6f</td>
<td style="vertical-align: top; text-align: left">4a7484aa</td>
<td style="vertical-align: top; text-align: left">5cb0a9dc</td>
<td style="vertical-align: top; text-align: left">76f988da</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">983e5152</td>
<td style="vertical-align: top; text-align: left">a831c66d</td>
<td style="vertical-align: top; text-align: left">b00327c8</td>
<td style="vertical-align: top; text-align: left">bf597fc7</td>
<td style="vertical-align: top; text-align: left">c6e00bf3</td>
<td style="vertical-align: top; text-align: left">d5a79147</td>
<td style="vertical-align: top; text-align: left">06ca6351</td>
<td style="vertical-align: top; text-align: left">14292967</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">27b70a85</td>
<td style="vertical-align: top; text-align: left">2e1b2138</td>
<td style="vertical-align: top; text-align: left">4d2c6dfc</td>
<td style="vertical-align: top; text-align: left">53380d13</td>
<td style="vertical-align: top; text-align: left">650a7354</td>
<td style="vertical-align: top; text-align: left">766a0abb</td>
<td style="vertical-align: top; text-align: left">81c2c92e</td>
<td style="vertical-align: top; text-align: left">92722c85</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">a2bfe8a1</td>
<td style="vertical-align: top; text-align: left">a81a664b</td>
<td style="vertical-align: top; text-align: left">c24b8b70</td>
<td style="vertical-align: top; text-align: left">c76c51a3</td>
<td style="vertical-align: top; text-align: left">d192e819</td>
<td style="vertical-align: top; text-align: left">d6990624</td>
<td style="vertical-align: top; text-align: left">f40e3585</td>
<td style="vertical-align: top; text-align: left">106aa070</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">19a4c116</td>
<td style="vertical-align: top; text-align: left">1e376c08</td>
<td style="vertical-align: top; text-align: left">2748774c</td>
<td style="vertical-align: top; text-align: left">34b0bcb5</td>
<td style="vertical-align: top; text-align: left">391c0cb3</td>
<td style="vertical-align: top; text-align: left">4ed8aa4a</td>
<td style="vertical-align: top; text-align: left">5b9cca4f</td>
<td style="vertical-align: top; text-align: left">682e6ff3</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">748f82ee</td>
<td style="vertical-align: top; text-align: left">78a5636f</td>
<td style="vertical-align: top; text-align: left">84c87814</td>
<td style="vertical-align: top; text-align: left">8cc70208</td>
<td style="vertical-align: top; text-align: left">90befffa</td>
<td style="vertical-align: top; text-align: left">a4506ceb</td>
<td style="vertical-align: top; text-align: left">bef9a3f7</td>
<td style="vertical-align: top; text-align: left">c67178f2</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The words of the hash value are labelled <inline-formula id="j_info1204_ineq_047"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>7</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${H_{0}^{(i)}},{H_{1}^{(i)}},\dots ,{H_{7}^{(i)}}$]]></tex-math></alternatives></inline-formula>, which will hold the initial hash value, <inline-formula id="j_info1204_ineq_048"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${H^{(0)}}$]]></tex-math></alternatives></inline-formula>, replaced by each successive intermediate hash value (after each message block is processed), <inline-formula id="j_info1204_ineq_049"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${H^{(i)}}$]]></tex-math></alternatives></inline-formula>, and ending with the final hash value, <inline-formula id="j_info1204_ineq_050"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${H^{(N)}}$]]></tex-math></alternatives></inline-formula>. SHA-224 also uses two temporary words, <inline-formula id="j_info1204_ineq_051"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${T_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1204_ineq_052"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${T_{2}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>SHA-224 uses six logical functions, where each function operates on three 32-bit words, which are represented as <italic>x</italic>, <italic>y</italic>, and <italic>z</italic>. The result of each function is a new 32-bit word. 
<disp-formula id="j_info1204_eq_009">
<label>(7)</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" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">C</mml:mi>
<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">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>∧</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⊕</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo>¬</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>∧</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">Maj</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>∧</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⊕</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>∧</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⊕</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>∧</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
</mml:msubsup>
<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">ROTR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">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">ROTR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>13</mml:mn>
</mml:mrow>
</mml:msup>
<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">ROTR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msup>
<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 mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
</mml:msubsup>
<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">ROTR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msup>
<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">ROTR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msup>
<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">ROTR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>25</mml:mn>
</mml:mrow>
</mml:msup>
<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 mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
</mml:msubsup>
<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">ROTR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msup>
<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">ROTR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>18</mml:mn>
</mml:mrow>
</mml:msup>
<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">SHR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup>
<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 mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
</mml:msubsup>
<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">ROTR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>17</mml:mn>
</mml:mrow>
</mml:msup>
<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">ROTR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>19</mml:mn>
</mml:mrow>
</mml:msup>
<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">SHR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msup>
<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 mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left\{\begin{array}{l}Ch(x,y,z)=(x\wedge y)\oplus (\lnot x\wedge z),\hspace{1em}\\ {} \mathit{Maj}(x,y,z)=(x\wedge y)\oplus (x\wedge z)\oplus (y\wedge z),\hspace{1em}\\ {} {\textstyle\textstyle\sum _{0}^{\{256\}}}(x)={\mathit{ROTR}^{2}}(x)\oplus {\mathit{ROTR}^{13}}(x)\oplus {\mathit{ROTR}^{22}}(x),\hspace{1em}\\ {} {\textstyle\textstyle\sum _{1}^{\{256\}}}(x)={\mathit{ROTR}^{6}}(x)\oplus {\mathit{ROTR}^{11}}(x)\oplus {\mathit{ROTR}^{25}}(x),\hspace{1em}\\ {} {\sigma _{0}^{\{256\}}}(x)={\mathit{ROTR}^{7}}(x)\oplus {\mathit{ROTR}^{18}}(x)\oplus {\mathit{SHR}^{3}}(x),\hspace{1em}\\ {} {\sigma _{1}^{\{256\}}}(x)={\mathit{ROTR}^{17}}(x)\oplus {\mathit{ROTR}^{19}}(x)\oplus {\mathit{SHR}^{10}}(x),\hspace{1em}\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1204_ineq_053"><alternatives><mml:math>
<mml:mo>∧</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>⊕</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>¬</mml:mo></mml:math><tex-math><![CDATA[$\wedge ,\oplus ,\lnot $]]></tex-math></alternatives></inline-formula> performs bitwise AND, XOR and complement operations, respectively, <inline-formula id="j_info1204_ineq_054"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ROTL</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msup>
<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:math><tex-math><![CDATA[${\mathit{ROTL}^{n}}(x)$]]></tex-math></alternatives></inline-formula> circularly left shifts <italic>x</italic> by <italic>n</italic> bits, and <inline-formula id="j_info1204_ineq_055"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">SHR</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msup>
<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:math><tex-math><![CDATA[${\mathit{SHR}^{n}}(x)$]]></tex-math></alternatives></inline-formula> right shifts <italic>x</italic> by <italic>n</italic> bits.</p>
<p>The detailed hash procedures are described as follows.</p>
<p><italic>Step 1</italic>: Set the initial hash value, <inline-formula id="j_info1204_ineq_056"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${H^{(0)}}$]]></tex-math></alternatives></inline-formula>, which shall consist of the following five 32-bit words, in hex: 
<disp-formula id="j_info1204_eq_010">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mn>1059</mml:mn>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mn>8</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mn>367</mml:mn>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mn>507</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mn>3070</mml:mn>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mn>17</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mn>70</mml:mn>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mn>5939</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mn>00</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mn>31</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mn>68581511</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mn>64</mml:mn>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mn>98</mml:mn>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mn>7</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>7</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mn>4</mml:mn>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mn>4</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left\{\begin{array}{l}{H_{0}^{(0)}}=c1059ed8,\\ {} {H_{1}^{(0)}}=367cd507,\\ {} {H_{2}^{(0)}}=3070dd17,\\ {} {H_{3}^{(0)}}=f70e5939,\\ {} {H_{4}^{(0)}}=ffc00b31,\\ {} {H_{5}^{(0)}}=68581511,\\ {} {H_{6}^{(0)}}=64f98fa7,\\ {} {H_{7}^{(0)}}=befa4fa4.\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p><italic>Step 2</italic>: Pad the message. The purpose of this padding is to ensure that the padded message is a multiple of 512 bits. Suppose that the length of the message, <italic>M</italic>, is <italic>l</italic> bits. Append the bit “1” to the end of the message, followed by <italic>k</italic> zero bits, where <italic>k</italic> is the smallest, non-negative solution to the equation <inline-formula id="j_info1204_ineq_057"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mn>448</mml:mn></mml:math><tex-math><![CDATA[$l+1+K\equiv 448$]]></tex-math></alternatives></inline-formula> mod  512. Then append the 64-bit block that is equal to the number <italic>l</italic> expressed using a binary representation.</p>
<p><italic>Step 3</italic>: Parse the message. The message and its padding are parsed into <italic>N</italic> 512-bit blocks, <inline-formula id="j_info1204_ineq_058"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${M^{(1)}},{M^{(2)}},\dots ,{M^{(N)}}$]]></tex-math></alternatives></inline-formula>. As the 512 bits of the input block may be expressed as sixteen 32-bit words, the first 32 bits of message block <italic>i</italic> are denoted <inline-formula id="j_info1204_ineq_059"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${M_{0}^{(i)}}$]]></tex-math></alternatives></inline-formula>, the next 32 bits are <inline-formula id="j_info1204_ineq_060"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${M_{1}^{(i)}}$]]></tex-math></alternatives></inline-formula>, and so on up to <inline-formula id="j_info1204_ineq_061"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>15</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${M_{15}^{(i)}}$]]></tex-math></alternatives></inline-formula>.</p>
<p><italic>Step 4</italic>: Compute the hash value. Each message block, <inline-formula id="j_info1204_ineq_062"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${M^{(1)}},{M^{(2)}},\dots ,{M^{(N)}}$]]></tex-math></alternatives></inline-formula>, is processed in order, using the following substeps. Notice that addition <inline-formula id="j_info1204_ineq_063"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(+)$]]></tex-math></alternatives></inline-formula> is performed modulo <inline-formula id="j_info1204_ineq_064"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{32}}$]]></tex-math></alternatives></inline-formula>.</p>
<p> For <inline-formula id="j_info1204_ineq_065"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$i=1$]]></tex-math></alternatives></inline-formula> to <italic>N</italic>:</p>
<p> {</p>
<p>   1. Prepare the message schedule, {<inline-formula id="j_info1204_ineq_066"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${W_{t}}$]]></tex-math></alternatives></inline-formula>}: 
<disp-formula id="j_info1204_eq_011">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mspace width="2em"/>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mn>15</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>15</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>16</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mn>63</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \hspace{2em}\hspace{2em}{W_{t}}=\left\{\begin{array}{l@{\hskip4.0pt}l}{M_{t}^{(i)}},& 0\leqslant t\leqslant 15,\\ {} {\sigma _{1}^{\{256\}}}({W_{t-2}})+{W_{t-7}}+{\sigma _{0}^{\{256\}}}({W_{t-15}})+{W_{t-16}},& 16\leqslant t\leqslant 63,\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>   2. Initialize the eight working variables, <italic>a</italic>, <italic>b</italic>, <italic>c</italic>, <italic>d</italic>, <italic>e</italic>, <italic>f</italic>, <italic>g</italic>, and <italic>h</italic>, with the <inline-formula id="j_info1204_ineq_067"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(i-1)$]]></tex-math></alternatives></inline-formula>st hash value: 
<disp-formula id="j_info1204_eq_012">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mspace width="2em"/>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mspace width="2em"/>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>7</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle \hspace{2em}\hspace{2em}a={H_{0}^{(i-1)}};\hspace{1em}b={H_{1}^{(i-1)}};\hspace{1em}c={H_{2}^{(i-1)}};\hspace{1em}d={H_{3}^{(i-1)}};\\ {} \displaystyle \hspace{2em}\hspace{2em}e={H_{4}^{(i-1)}};\hspace{1em}f={H_{5}^{(i-1)}};\hspace{1em}g={H_{6}^{(i-1)}};\hspace{1em}h={H_{7}^{(i-1)}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>   3. For <inline-formula id="j_info1204_ineq_068"><alternatives><mml:math>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$t=0$]]></tex-math></alternatives></inline-formula> to 63 
<disp-formula id="j_info1204_eq_013">
<alternatives><mml:math display="block">
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:mo fence="true" stretchy="false">{</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mspace width="1em"/>
<mml:mspace width="1em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mspace width="1em"/>
<mml:mspace width="1em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>256</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mspace width="1em"/>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mspace width="1em"/>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo>;</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\{\\ {} \hspace{1em}\hspace{1em}{T_{1}}=h+{\textstyle\textstyle\sum _{1}^{\{256\}}}(e)+Ch(e,f,g)+{K_{t}^{\{256\}}}+{W_{t}};\\ {} \hspace{1em}\hspace{1em}{T_{2}}=h+{\textstyle\textstyle\sum _{0}^{\{256\}}}(a)+Maj(a,b,c);\\ {} \hspace{1em}\hspace{1em}h=g;\hspace{1em}g=f;\hspace{1em}f=e;\hspace{1em}e=d+{T_{1}};\\ {} \hspace{1em}\hspace{1em}d=c;\hspace{1em}c=b;\hspace{1em}b=a;\hspace{1em}a={T_{1}}+{T_{2}}.\\ {} \}\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>   4. Compute the <italic>i</italic>th intermediate hash value <inline-formula id="j_info1204_ineq_069"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${H^{(i)}}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_info1204_eq_014">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mspace width="2.5pt"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mspace width="2.5pt"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mspace width="2.5pt"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mspace width="2.5pt"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mspace width="2.5pt"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mspace width="2.5pt"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>7</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>7</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{r}\displaystyle {H_{0}^{(i)}}=a+{H_{0}^{(i-1)}};\hspace{2.5pt}\hspace{2.5pt}{H_{1}^{(i)}}=b+{H_{1}^{(i-1)}};\hspace{2.5pt}\hspace{2.5pt}{H_{2}^{(i)}}=c+{H_{2}^{(i-1)}};\hspace{2.5pt}\hspace{2.5pt}{H_{3}^{(i)}}=d+{H_{3}^{(i-1)}};\\ {} \displaystyle {H_{4}^{(i)}}=e+{H_{4}^{(i-1)}};\hspace{2.5pt}\hspace{2.5pt}{H_{5}^{(i)}}=f+{H_{5}^{(i-1)}};\hspace{2.5pt}\hspace{2.5pt}{H_{6}^{(i)}}=g+{H_{6}^{(i-1)}};\hspace{2.5pt}\hspace{2.5pt}{H_{7}^{(i)}}=h+{H_{7}^{(i-1)}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>After repeating steps one through four a total of <italic>N</italic> times (i.e. after processing <inline-formula id="j_info1204_ineq_070"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${M^{(N)}}$]]></tex-math></alternatives></inline-formula>), the resulting 224-bit message digest of the message, <italic>M</italic>, is obtained by truncating the final hash value, <inline-formula id="j_info1204_ineq_071"><alternatives><mml:math>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$H(N)$]]></tex-math></alternatives></inline-formula>, to its left-most 224 bits: 
<disp-formula id="j_info1204_eq_015">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {H_{0}^{(N)}}||{H_{1}^{(N)}}||{H_{2}^{(N)}}||{H_{3}^{(N)}}||{H_{4}^{(N)}}||{H_{5}^{(N)}}||{H_{6}^{(N)}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>To evaluate the dependency of the initial conditions of the employed hyperchaotic system on input image, we first select five standard test images (512 × 512 pixels, 24-bit RGB colour) from the USC-SIPI image database. Then, we randomly choose a pixel in each test image and change its least significant bit, as illustrated in Table <xref rid="j_info1204_tab_002">1</xref>. A differential image is named by append a “_d” to the name of its original version. Finally, we calculate the SHA-224 hash values of all the original images and the revised ones, from which the four real numbers <inline-formula id="j_info1204_ineq_072"><alternatives><mml:math>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$h{r_{x}},h{r_{y}},h{r_{z}}$]]></tex-math></alternatives></inline-formula>, and <inline-formula id="j_info1204_ineq_073"><alternatives><mml:math>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$h{r_{u}}$]]></tex-math></alternatives></inline-formula> are derived. The results are given in Table <xref rid="j_info1204_tab_003">2</xref>, from which it can be seen that changing 1-bit of the plain-image will lead to the trajectory of the hyperchaotic system starting from totally different initial conditions.</p>
<table-wrap id="j_info1204_tab_002">
<label>Table 1</label>
<caption>
<p>Changes made to the original images.</p>
</caption>
<table>
<thead>
<tr>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Test image name</td>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Colour component</td>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Pixel position <inline-formula id="j_info1204_ineq_074"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(x,y)$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Pixel</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">value</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Original</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Revised</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">avion</td>
<td style="vertical-align: top; text-align: left">blue</td>
<td style="vertical-align: top; text-align: left">(294, 305)</td>
<td style="vertical-align: top; text-align: left">172</td>
<td style="vertical-align: top; text-align: left">173</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">baboon</td>
<td style="vertical-align: top; text-align: left">red</td>
<td style="vertical-align: top; text-align: left">(511, 335)</td>
<td style="vertical-align: top; text-align: left">67</td>
<td style="vertical-align: top; text-align: left">68</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">house</td>
<td style="vertical-align: top; text-align: left">blue</td>
<td style="vertical-align: top; text-align: left">(403, 196)</td>
<td style="vertical-align: top; text-align: left">182</td>
<td style="vertical-align: top; text-align: left">181</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Lena</td>
<td style="vertical-align: top; text-align: left">red</td>
<td style="vertical-align: top; text-align: left">(263, 67)</td>
<td style="vertical-align: top; text-align: left">102</td>
<td style="vertical-align: top; text-align: left">103</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">peppers</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">blue</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">(159, 496)</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">151</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">150</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_info1204_tab_003">
<label>Table 2</label>
<caption>
<p>Numbers derived from the SHA-224 hash values of the original images and the revised ones.</p>
</caption>
<graphic xlink:href="info1204_g005.jpg"/>
</table-wrap>
</sec>
<sec id="j_info1204_s_005">
<label>5</label>
<title>Security Analysis</title>
<sec id="j_info1204_s_006">
<label>5.1</label>
<title>Key Size</title>
<p>In cryptography, key size or key length is the size measured in bits of the key used in a cryptographic algorithm. As is known, even if a symmetric cipher is currently unbreakable by exploiting structural weaknesses in its algorithm, it is possible to run through the entire space of keys in what is known as a brute force attack. As longer keys require exponentially more work to brute force search, the key length of an effective cryptosystem should be sufficiently long to make this line of attack impractical. Generally, cryptographic algorithms use keys with a length greater than 100 bits are considered to be “computational security” as the number of operations required to try all possible <inline-formula id="j_info1204_ineq_075"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>100</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{100}}$]]></tex-math></alternatives></inline-formula> keys is widely considered out of reach for conventional digital computing techniques for the foreseeable future. As aforementioned, the secret key of the proposed algorithm consists of four independent floating-point numbers. A 64-bit double-precision type gives 53 bits of precision, and therefore the key length of the proposed algorithm is 4 × 53 = 212 bits, which is long enough to make exhaustive search impractical.</p>
</sec>
<sec id="j_info1204_s_007">
<label>5.2</label>
<title>Chosen-Plaintext Attack</title>
<p>A chosen-plaintext attack is an attack model for cryptanalysis which presumes that the attacker can obtain the ciphertexts for arbitrary plaintexts. As is known, a chosen-plaintext attack is more powerful than known-plaintext attack. This is because the attacker can directly target specific terms or patterns without having to wait for these to appear naturally, allowing faster gathering of data relevant to cryptanalysis. Therefore, any cipher that prevents chosen-plaintext attacks is also secure against known-plaintext and ciphertext-only attacks. To carry out a chosen-plaintext attack on a XOR cipher, the simplest way is to input an all-zero (black) image, and the output is exactly the same as the keystream sequence. Obviously, the proposed encryption algorithm cannot be broken in such a way, because it never reuses a keystream sequence for encrypting different images, i.e. different keystream sequences are used for encrypting different images. Differential cryptanalysis is the most powerful chosen-plaintext attack that analyses how the differences in two plaintext messages affect the differences between the corresponding ciphertexts. To do this, an opponent may firstly create two plain-images with a slight difference, and then encrypt the two images using the same secret key. If some meaningful relationship between the plain-image and cipher-image can be found by comparing the two cipher images, the secret key may be determined with the help of some other analysis methods. Obviously, this kind of cryptanalysis may become impractical if a slight change in the plain-image can be effectively diffused to the entire cipher-image, i.e. changing one bit of the plain-image affects every bit in the cipher-image.</p>
<p>The diffusion effect of an image cryptosystem is usually measured using two criteria, i.e. <inline-formula id="j_info1204_ineq_076"><alternatives><mml:math>
<mml:mi mathvariant="italic">NPCR</mml:mi></mml:math><tex-math><![CDATA[$\mathit{NPCR}$]]></tex-math></alternatives></inline-formula> (the number of pixel change rate) and <inline-formula id="j_info1204_ineq_077"><alternatives><mml:math>
<mml:mi mathvariant="italic">UACI</mml:mi></mml:math><tex-math><![CDATA[$\mathit{UACI}$]]></tex-math></alternatives></inline-formula> (the unified average changing intensity). The <italic>NPCR</italic> is used to measure the percentage of different pixel numbers between two images. Let <inline-formula id="j_info1204_ineq_078"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" 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">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${I_{1}}(i,j,k)$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1204_ineq_079"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml: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">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${I_{2}}(i,j,k)$]]></tex-math></alternatives></inline-formula> be the <inline-formula id="j_info1204_ineq_080"><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>th pixel in <italic>k</italic>th colour channel (<italic>k</italic> = 1, 2, 3 denotes the red, green, and blue colour channels, respectively) of two images <inline-formula id="j_info1204_ineq_081"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${I_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1204_ineq_082"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${I_{2}}$]]></tex-math></alternatives></inline-formula>, the <italic>NPCR</italic> can be defined as: 
<disp-formula id="j_info1204_eq_016">
<label>(8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">NPCR</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</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:mn>3</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="italic">D</mml:mi>
<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">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">W</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[\[ \mathit{NPCR}=\frac{{\textstyle\textstyle\sum _{k=1}^{3}}{\textstyle\textstyle\sum _{i=1}^{H}}{\textstyle\textstyle\sum _{j=1}^{W}}D(i,j,k)}{3\times H\times W}\times 100\% ,\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1204_ineq_083"><alternatives><mml:math>
<mml:mi mathvariant="italic">D</mml:mi>
<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">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$D(i,j,k)$]]></tex-math></alternatives></inline-formula> is defined as 
<disp-formula id="j_info1204_eq_017">
<label>(9)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mspace width="2em"/>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">D</mml:mi>
<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">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
<mml:mspace width="2.5pt"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" 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">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</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:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
<mml:mspace width="2.5pt"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" 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">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">≠</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" 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">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \hspace{2em}\hspace{2em}D(i,j,k)=\left\{\begin{array}{l@{\hskip4.0pt}l}0\hspace{1em}\hspace{2.5pt}& {I_{1}}(i,j,k)={I_{2}}(i,j,k),\\ {} 1\hspace{1em}\hspace{2.5pt}& {I_{1}}(i,j,k)\ne {I_{2}}(i,j,k).\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The second criterion, <italic>UACI</italic> is used to measure the average intensity of differences between the two images. It is defined as 
<disp-formula id="j_info1204_eq_018">
<label>(10)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">UACI</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo maxsize="2.03em" minsize="2.03em" fence="true">[</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:mn>3</mml:mn>
</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">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</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">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
</mml:munderover><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo 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">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</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:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo maxsize="2.03em" minsize="2.03em" fence="true">]</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>100</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{UACI}=\frac{1}{3\times H\times W}\bigg[{\sum \limits_{k=1}^{3}}{\sum \limits_{i=1}^{H}}{\sum \limits_{j=1}^{W}}\frac{|{I_{1}}(i,j,k)-{I_{2}}(i,j,k)|}{{G_{L}}-1}\bigg]\times 100\% .\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Clearly, no matter how similar the two input images are, a good image cryptosystem procedure outputs with <inline-formula id="j_info1204_ineq_084"><alternatives><mml:math>
<mml:mi mathvariant="italic">NPCR</mml:mi></mml:math><tex-math><![CDATA[$\mathit{NPCR}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1204_ineq_085"><alternatives><mml:math>
<mml:mi mathvariant="italic">UACI</mml:mi></mml:math><tex-math><![CDATA[$\mathit{UACI}$]]></tex-math></alternatives></inline-formula> values ideally being equal to that of two random images, which are given by 
<disp-formula id="j_info1204_eq_019">
<label>(11)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">NPCR</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">o</mml:mi>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="2.03em" minsize="2.03em" fence="true">{</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false">log</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo maxsize="2.03em" minsize="2.03em" fence="true">}</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>100</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\textit{NPCR}_{random}}=\bigg\{1-\frac{1}{{2^{{\log _{2}}{G_{L}}}}}\bigg\}\times 100\% \]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1204_eq_020">
<label>(12)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">UACI</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">random</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo maxsize="2.03em" minsize="2.03em" fence="true" mathvariant="normal">(</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo maxsize="2.03em" minsize="2.03em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>100</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\textit{UACI}_{\mathit{random}}}=\frac{1}{{G_{L}^{2}}}\bigg(\frac{{\textstyle\textstyle\sum _{i=1}^{{G_{L}}-1}}i(i+1)}{{G_{L}}-1}\bigg)\times 100\% .\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>For instance, the <inline-formula id="j_info1204_ineq_086"><alternatives><mml:math>
<mml:mi mathvariant="italic">NPCR</mml:mi></mml:math><tex-math><![CDATA[$\mathit{NPCR}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1204_ineq_087"><alternatives><mml:math>
<mml:mi mathvariant="italic">UACI</mml:mi></mml:math><tex-math><![CDATA[$\mathit{UACI}$]]></tex-math></alternatives></inline-formula> values for two random colour images in 24-bit RGB format (<inline-formula id="j_info1204_ineq_088"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>256</mml:mn></mml:math><tex-math><![CDATA[${G_{L}}=256$]]></tex-math></alternatives></inline-formula>) are <inline-formula id="j_info1204_ineq_089"><alternatives><mml:math>
<mml:mn>99.609</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$99.609\% $]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1204_ineq_090"><alternatives><mml:math>
<mml:mn>33.464</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$33.464\% $]]></tex-math></alternatives></inline-formula>, respectively.</p>
<p>To evaluate the worst-case diffusion performance, we use the five test image pairs listed in Table <xref rid="j_info1204_tab_002">1</xref>. The two images in each image pair are encrypted using the same secret key. Table <xref rid="j_info1204_tab_004">3</xref> gives the <italic>NPCR</italic> and <italic>UACI</italic> values for each ciphered image pair generated by the proposed algorithm and the conventional permutation-substitution type encryption algorithm. As can be seen from this table, to achieve the desired diffusion effect, the proposed scheme takes only a single round of encryption, whereas two more rounds are required by conventional permutation-substitution type encryption algorithm. Therefore, the proposed algorithm provides significantly superior computational efficiency.</p>
<table-wrap id="j_info1204_tab_004">
<label>Table 3</label>
<caption>
<p>Results of <italic>NPCR</italic> and <italic>UACI</italic> tests.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: middle; text-align: left; border-top: solid thin"/>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">No. of cipher rounds (proposed algorithm)</td>
<td colspan="6" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">No. of cipher rounds (conventional algorithm)</td>
</tr>
<tr>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-bottom: solid thin">Test image name</td>
<td colspan="2" style="vertical-align: top; text-align: center; border-bottom: solid thin">1</td>
<td colspan="2" style="vertical-align: top; text-align: center; border-bottom: solid thin">1</td>
<td colspan="2" style="vertical-align: top; text-align: center; border-bottom: solid thin">2</td>
<td colspan="2" style="vertical-align: top; text-align: center; border-bottom: solid thin">3</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>NPCR</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>UACI</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>NPCR</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>UACI</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>NPCR</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>UACI</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>NPCR</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>UACI</italic></td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">avion</td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.99604</bold></italic></td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.33443</bold> </italic></td>
<td style="vertical-align: top; text-align: left">0.50649</td>
<td style="vertical-align: top; text-align: left">0.00397</td>
<td style="vertical-align: top; text-align: left">0.99604</td>
<td style="vertical-align: top; text-align: left">0.33661</td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.99618</bold></italic></td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.33405</bold></italic></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">baboon</td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.99612</bold></italic></td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.33484</bold></italic></td>
<td style="vertical-align: top; text-align: left">0.72392</td>
<td style="vertical-align: top; text-align: left">0.00568</td>
<td style="vertical-align: top; text-align: left">0.99619</td>
<td style="vertical-align: top; text-align: left">0.33359</td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.99620</bold></italic></td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.33460</bold></italic></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">house</td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.99616</bold></italic></td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.33440</bold> </italic></td>
<td style="vertical-align: top; text-align: left">0.24593</td>
<td style="vertical-align: top; text-align: left">0.01544</td>
<td style="vertical-align: top; text-align: left">0.99625</td>
<td style="vertical-align: top; text-align: left">0.33367</td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.99610</bold></italic></td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.33434</bold></italic></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Lena</td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.99607</bold></italic></td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.33450</bold> </italic></td>
<td style="vertical-align: top; text-align: left">0.21977</td>
<td style="vertical-align: top; text-align: left">0.00086</td>
<td style="vertical-align: top; text-align: left">0.99532</td>
<td style="vertical-align: top; text-align: left">0.32542</td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.99615</bold></italic></td>
<td style="vertical-align: top; text-align: left"><italic><bold>0.33492</bold></italic></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">peppers</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic><bold>0.99615</bold></italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic><bold>0.33428</bold> </italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.72565</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.00284</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.99594</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.33318</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic><bold>0.99614</bold></italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic><bold>0.33449</bold></italic></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="j_info1204_s_008">
<label>5.3</label>
<title>Statistical Analysis</title>
<sec id="j_info1204_s_009">
<label>5.3.1</label>
<title>Frequency Distribution of Pixel Values</title>
<p>A good image cryptosystem should flatten the frequency distribution of cipher-pixel values so as to make frequency analysis infeasible. That is, the redundancy of plain-image or the relationship between plain-image and cipher-image should not be observed from the cipher-image as such information has the potential to be exploited in a statistical attack. The frequency distribution of pixel values in an image can be easily determined by using histogram analysis. An image histogram is a graph showing the number of pixels in an image at each different intensity value found in that image. The histograms of the RGB colour channels of the “Lena” test image and its corresponding cipher-image are shown in Fig. <xref rid="j_info1204_fig_005">5</xref>. It’s clear from Figs. <xref rid="j_info1204_fig_005">5</xref>(l)–(n) that the pixel values in all the three colour channels of the resulting cipher-image are fairly evenly distributed over the whole intensity range, and therefore no information about the plain-image can be gathered through histogram analysis.</p>
<fig id="j_info1204_fig_005">
<label>Fig. 5</label>
<caption>
<p>Histogram analysis. (a) and (h) are the test image and its output cipher-image, respectively. (b)–(d) and (i)–(k) are the three colour channels of (a) and (h), respectively. (e)–(g) and (l)–(n) are the histograms of (b)–(d) and (i)–(k), respectively.</p>
</caption>
<graphic xlink:href="info1204_g006.jpg"/>
</fig>
<p>The distribution of pixel values can be further quantitatively determined by calculating the information entropy of the image. Information entropy, introduced by Claude E. Shannon in his classic paper “A Mathematical Theory of Communication”, is a key measure of the randomness or unpredictability of information content. The information entropy is usually expressed by the average number of bits needed to store or communicate one symbol in a message, as described by 
<disp-formula id="j_info1204_eq_021">
<label>(13)</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">S</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>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</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">s</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">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ H(S)=-{\sum \limits_{i=1}^{N}}p({s_{i}}){\log _{2}}P({s_{i}}),\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>S</italic> is a random variable with <italic>N</italic> outcomes <inline-formula id="j_info1204_ineq_091"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\{{s_{1}},\dots ,{s_{N}}\}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1204_ineq_092"><alternatives><mml:math>
<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">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$P({s_{i}})$]]></tex-math></alternatives></inline-formula> is the probability mass function of outcome <inline-formula id="j_info1204_ineq_093"><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:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${s_{i}}$]]></tex-math></alternatives></inline-formula>. It is obvious from Eq. (<xref rid="j_info1204_eq_021">13</xref>) that the entropy for a random source emitting <italic>N</italic> symbols is <inline-formula id="j_info1204_ineq_094"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false">log</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\log _{2}^{N}}$]]></tex-math></alternatives></inline-formula>. For instance, for a ciphered image with 256 colour levels per channel, the entropy should ideally be 8, otherwise there exists a certain degree of predictability which threatens its security.</p>
<p>The information entropies of the test images and their corresponding cipher-images are calculated, and the results are listed in Table <xref rid="j_info1204_tab_005">4</xref>. As can be seen from this table, the entropy of all the output cipher-images are very close to the theoretical value of 8. This means the proposed scheme produces outputs with perfect randomness and hence is robust against frequency analysis.</p>
<table-wrap id="j_info1204_tab_005">
<label>Table 4</label>
<caption>
<p>Information entropies of the test images and their corresponding cipher-images.</p>
</caption>
<table>
<thead>
<tr>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Test image name</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Information entropy</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Plain-image</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Cipher-image</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Avion</td>
<td style="vertical-align: top; text-align: left">6.663908</td>
<td style="vertical-align: top; text-align: left">7.999799</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Baboon</td>
<td style="vertical-align: top; text-align: left">7.762436</td>
<td style="vertical-align: top; text-align: left">7.999773</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">House</td>
<td style="vertical-align: top; text-align: left">7.485787</td>
<td style="vertical-align: top; text-align: left">7.999759</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Lena</td>
<td style="vertical-align: top; text-align: left">7.750197</td>
<td style="vertical-align: top; text-align: left">7.999723</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Peppers</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">7.669826</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">7.999741</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="j_info1204_s_010">
<label>5.3.2</label>
<title>Correlation Between Neighbouring Pixels</title>
<p>Pixels in an ordinary image are usually highly correlated with their neighbours either in horizontal, vertical or diagonal direction. However, an effective image cryptosystem should process cipher-images with sufficiently low correlation between neighbouring pixels. A scatter diagram is commonly used to qualitatively explore the possible relationship between two data sets. To plot a scatter diagram for image data, the following procedures are carried out. First, randomly select <inline-formula id="j_info1204_ineq_095"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${S_{n}}$]]></tex-math></alternatives></inline-formula> pairs of neighbouring pixels in each direction from the image. Then, the selected pairs are displayed as a collection of points, each having the value of one pixel determining the position on the horizontal axis and the value of the other pixel determining the position on the vertical axis.</p>
<p>Figs. <xref rid="j_info1204_fig_006">6</xref>(a)–(c) and (d)–(f) show the scatter diagrams for horizontally, vertically and diagonally neighbouring pixels in the red channel of the “Lena” test image and its corrsponding cipher-image with <inline-formula id="j_info1204_ineq_096"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>5000</mml:mn></mml:math><tex-math><![CDATA[${S_{n}}=5000$]]></tex-math></alternatives></inline-formula>, respectively. Similar results can be obtained for the other two colour channels. As can be seen from Fig. <xref rid="j_info1204_fig_006">6</xref>, most points in (a)–(c) are clustered around the main diagonal, whereas those in (d)–(f) are fairly evenly distributed. The results indicate that the proposed scheme can effectively eliminate the correlation between neighbouring pixels in an input image.</p>
<p>To further quantitatively measure the correlation between neighbouring pixels in an image, the correlation coefficients <inline-formula id="j_info1204_ineq_097"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${r_{xy}}$]]></tex-math></alternatives></inline-formula> for the sampled pairs are calculated according to the following three formulas: <disp-formula-group id="j_info1204_dg_001">
<disp-formula id="j_info1204_eq_022">
<label>(14)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<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>−</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<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>−</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<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>−</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {r_{xy}}=\frac{\frac{1}{{S_{n}}}{\textstyle\textstyle\sum _{i=1}^{{S_{n}}}}({x_{i}}-\bar{x})({y_{i}}-\bar{y})}{\sqrt{\big(\frac{1}{{S_{n}}}{\textstyle\textstyle\sum _{i=1}^{{S_{n}}}}{({x_{i}}-\bar{x})^{2}}\big)\big(\frac{1}{{S_{n}}}{\textstyle\textstyle\sum _{i=1}^{{S_{n}}}}{({x_{i}}-\bar{x})^{2}}\big)}},\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1204_eq_023">
<label>(15)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<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">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \bar{x}=\frac{1}{{S_{n}}}{\sum \limits_{i=1}^{{S_{n}}}}{x_{i}},\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1204_eq_024">
<label>(16)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \bar{y}=\frac{1}{{S_{n}}}{\sum \limits_{i=1}^{{S_{n}}}}{y_{i}},\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group> where <inline-formula id="j_info1204_ineq_098"><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:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{i}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1204_ineq_099"><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:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${y_{i}}$]]></tex-math></alternatives></inline-formula> form the <italic>i</italic>th pair of neighbouring pixels.</p>
<fig id="j_info1204_fig_006">
<label>Fig. 6</label>
<caption>
<p>Graphical analysis for correlation of neighbouring pixels. (a)–(c) and (d)–(f) are scatter diagrams for horizontally, vertically and diagonally neighbouring pixels in the red channel of the “Lena” test image and its output cipher-image, respectively.</p>
</caption>
<graphic xlink:href="info1204_g007.jpg"/>
</fig>
<p>Table <xref rid="j_info1204_tab_006">5</xref> gives the calculated correlation coefficients for neighbouring pixels in the three colour channels of the five test images and their corresponding cipher-images. As can be seen from this table, the correlation coefficients for neighbouring pixels in all the three colour channels of the output cipher-images are practically zero, and it further supports the conclusion drawn from Fig. <xref rid="j_info1204_fig_006">6</xref>.</p>
<table-wrap id="j_info1204_tab_006">
<label>Table 5</label>
<caption>
<p>Correlation coefficients between neighbouring pixels in the test images and their corresponding cipher-images.</p>
</caption>
<table>
<thead>
<tr>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Test image name</td>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Direction</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Plain-image</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Cipher-image</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">R</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">G</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">B</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">R</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">G</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">B</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">avion</td>
<td style="vertical-align: top; text-align: left">horizontal</td>
<td style="vertical-align: top; text-align: left">0.9575</td>
<td style="vertical-align: top; text-align: left">0.9671</td>
<td style="vertical-align: top; text-align: left">0.9316</td>
<td style="vertical-align: top; text-align: left">0.0269</td>
<td style="vertical-align: top; text-align: left">−0.0240</td>
<td style="vertical-align: top; text-align: left">0.0259</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">vertical</td>
<td style="vertical-align: top; text-align: left">0.9728</td>
<td style="vertical-align: top; text-align: left">0.9634</td>
<td style="vertical-align: top; text-align: left">0.9658</td>
<td style="vertical-align: top; text-align: left">−0.0122</td>
<td style="vertical-align: top; text-align: left">0.0156</td>
<td style="vertical-align: top; text-align: left">0.0307</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">diagonal</td>
<td style="vertical-align: top; text-align: left">0.9370</td>
<td style="vertical-align: top; text-align: left">0.9336</td>
<td style="vertical-align: top; text-align: left">0.9115</td>
<td style="vertical-align: top; text-align: left">0.0045</td>
<td style="vertical-align: top; text-align: left">0.0215</td>
<td style="vertical-align: top; text-align: left">0.0141</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">baboon</td>
<td style="vertical-align: top; text-align: left">horizontal</td>
<td style="vertical-align: top; text-align: left">0.8787</td>
<td style="vertical-align: top; text-align: left">0.7757</td>
<td style="vertical-align: top; text-align: left">0.8769</td>
<td style="vertical-align: top; text-align: left">0.0027</td>
<td style="vertical-align: top; text-align: left">−0.0022</td>
<td style="vertical-align: top; text-align: left">−0.0092</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">vertical</td>
<td style="vertical-align: top; text-align: left">0.9291</td>
<td style="vertical-align: top; text-align: left">0.8655</td>
<td style="vertical-align: top; text-align: left">0.8995</td>
<td style="vertical-align: top; text-align: left">−0.0383</td>
<td style="vertical-align: top; text-align: left">-0.018</td>
<td style="vertical-align: top; text-align: left">−0.0006</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">diagonal</td>
<td style="vertical-align: top; text-align: left">0.8671</td>
<td style="vertical-align: top; text-align: left">0.7462</td>
<td style="vertical-align: top; text-align: left">0.8314</td>
<td style="vertical-align: top; text-align: left">−0.0221</td>
<td style="vertical-align: top; text-align: left">−0.0074</td>
<td style="vertical-align: top; text-align: left">−0.0215</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">house</td>
<td style="vertical-align: top; text-align: left">horizontal</td>
<td style="vertical-align: top; text-align: left">0.9566</td>
<td style="vertical-align: top; text-align: left">0.9526</td>
<td style="vertical-align: top; text-align: left">0.9672</td>
<td style="vertical-align: top; text-align: left">0.0222</td>
<td style="vertical-align: top; text-align: left">0.0030</td>
<td style="vertical-align: top; text-align: left">−0.0118</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">vertical</td>
<td style="vertical-align: top; text-align: left">0.9507</td>
<td style="vertical-align: top; text-align: left">0.9333</td>
<td style="vertical-align: top; text-align: left">0.9719</td>
<td style="vertical-align: top; text-align: left">0.0243</td>
<td style="vertical-align: top; text-align: left">0.0028</td>
<td style="vertical-align: top; text-align: left">0.0183</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">diagonal</td>
<td style="vertical-align: top; text-align: left">0.9165</td>
<td style="vertical-align: top; text-align: left">0.8988</td>
<td style="vertical-align: top; text-align: left">0.9421</td>
<td style="vertical-align: top; text-align: left">0.0034</td>
<td style="vertical-align: top; text-align: left">0.0162</td>
<td style="vertical-align: top; text-align: left">−0.0155</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Lena</td>
<td style="vertical-align: top; text-align: left">horizontal</td>
<td style="vertical-align: top; text-align: left">0.9896</td>
<td style="vertical-align: top; text-align: left">0.9823</td>
<td style="vertical-align: top; text-align: left">0.9585</td>
<td style="vertical-align: top; text-align: left">−0.0026</td>
<td style="vertical-align: top; text-align: left">0.0117</td>
<td style="vertical-align: top; text-align: left">−0.0199</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">vertical</td>
<td style="vertical-align: top; text-align: left">0.9799</td>
<td style="vertical-align: top; text-align: left">0.9680</td>
<td style="vertical-align: top; text-align: left">0.9381</td>
<td style="vertical-align: top; text-align: left">0.0163</td>
<td style="vertical-align: top; text-align: left">−0.0226</td>
<td style="vertical-align: top; text-align: left">−0.0154</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">diagonal</td>
<td style="vertical-align: top; text-align: left">0.9685</td>
<td style="vertical-align: top; text-align: left">0.9566</td>
<td style="vertical-align: top; text-align: left">0.9229</td>
<td style="vertical-align: top; text-align: left">0.0120</td>
<td style="vertical-align: top; text-align: left">−0.0178</td>
<td style="vertical-align: top; text-align: left">0.0062</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">peppers</td>
<td style="vertical-align: top; text-align: left">horizontal</td>
<td style="vertical-align: top; text-align: left">0.9667</td>
<td style="vertical-align: top; text-align: left">0.9796</td>
<td style="vertical-align: top; text-align: left">0.9672</td>
<td style="vertical-align: top; text-align: left">0.0107</td>
<td style="vertical-align: top; text-align: left">0.0081</td>
<td style="vertical-align: top; text-align: left">−0.0176</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">vertical</td>
<td style="vertical-align: top; text-align: left">0.9633</td>
<td style="vertical-align: top; text-align: left">0.9808</td>
<td style="vertical-align: top; text-align: left">0.9678</td>
<td style="vertical-align: top; text-align: left">0.0122</td>
<td style="vertical-align: top; text-align: left">0.0002</td>
<td style="vertical-align: top; text-align: left">−0.0076</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">diagonal</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.9580</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.9671</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.9461</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−0.0057</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−0.0118</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−0.0369</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="j_info1204_s_011">
<label>5.4</label>
<title>Key Sensitivity Analysis</title>
<p>Key sensitivity, a basic design principle of cryptographic algorithms, ensures that no information about the plaintext can be revealed even if there is only a slight difference between the decryption and encryption keys. To evaluate the key sensitivity property of the proposed scheme, the “Lena” test image is firstly encrypted using a randomly generated secret key: (<inline-formula id="j_info1204_ineq_100"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>8.28751887014337</mml:mn></mml:math><tex-math><![CDATA[${x_{0}}=8.28751887014337$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_101"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>6.61047141256491</mml:mn></mml:math><tex-math><![CDATA[${y_{0}}=6.61047141256491$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_102"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>25.4548941736193</mml:mn></mml:math><tex-math><![CDATA[${z_{0}}=25.4548941736193$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_103"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>42.9012685104726</mml:mn></mml:math><tex-math><![CDATA[${u_{0}}=-42.9012685104726$]]></tex-math></alternatives></inline-formula>), and the resulting cipher-image is shown in Fig. <xref rid="j_info1204_fig_007">7</xref>(a). Then the cipher-image is tried to be decrypted using five decryption keys with the first one exactly the same as the encryption key and the other four have only one-bit difference to each part of the encryption key, respectively, as given in Table <xref rid="j_info1204_tab_007">6</xref>. The resulting deciphered images are shown in Figs. <xref rid="j_info1204_fig_007">7</xref>(b)–(f), respectively, from which we can see that even an almost perfect guess of the key does not reveal any information about the original image. It can, therefore, be concluded that the proposed scheme fully satisfies the key sensitivity requirement.</p>
<table-wrap id="j_info1204_tab_007">
<label>Table 6</label>
<caption>
<p>Decryption keys used for key sensitivity test.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Figure</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Decryption key</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">7(b)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1204_ineq_104"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>8.28751887014337</mml:mn></mml:math><tex-math><![CDATA[${x_{0}}=8.28751887014337$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_105"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>6.61047141256491</mml:mn></mml:math><tex-math><![CDATA[${y_{0}}=6.61047141256491$]]></tex-math></alternatives></inline-formula>,</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1204_ineq_106"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>25.4548941736193</mml:mn></mml:math><tex-math><![CDATA[${z_{0}}=25.4548941736193$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_107"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>42.9012685104726</mml:mn></mml:math><tex-math><![CDATA[${u_{0}}=-42.9012685104726$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">7(c)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1204_ineq_108"><alternatives><mml:math>
<mml:munder accentunder="false">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>8.28751887014338</mml:mn>
</mml:mrow>
<mml:mo accent="true">_</mml:mo></mml:munder></mml:math><tex-math><![CDATA[$\underline{{x_{0}}=8.28751887014338}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_109"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>6.61047141256491</mml:mn></mml:math><tex-math><![CDATA[${y_{0}}=6.61047141256491$]]></tex-math></alternatives></inline-formula>,</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1204_ineq_110"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>25.4548941736193</mml:mn></mml:math><tex-math><![CDATA[${z_{0}}=25.4548941736193$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_111"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>42.9012685104726</mml:mn></mml:math><tex-math><![CDATA[${u_{0}}=-42.9012685104726$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">7(d)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1204_ineq_112"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>8.28751887014337</mml:mn></mml:math><tex-math><![CDATA[${x_{0}}=8.28751887014337$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_113"><alternatives><mml:math>
<mml:munder accentunder="false">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>6.61047141256492</mml:mn>
</mml:mrow>
<mml:mo accent="true">_</mml:mo></mml:munder></mml:math><tex-math><![CDATA[$\underline{{y_{0}}=6.61047141256492}$]]></tex-math></alternatives></inline-formula>,</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1204_ineq_114"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>25.4548941736193</mml:mn></mml:math><tex-math><![CDATA[${z_{0}}=25.4548941736193$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_115"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>42.9012685104726</mml:mn></mml:math><tex-math><![CDATA[${u_{0}}=-42.9012685104726$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">7(e)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1204_ineq_116"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>8.28751887014337</mml:mn></mml:math><tex-math><![CDATA[${x_{0}}=8.28751887014337$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_117"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>6.61047141256491</mml:mn></mml:math><tex-math><![CDATA[${y_{0}}=6.61047141256491$]]></tex-math></alternatives></inline-formula>,</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1204_ineq_118"><alternatives><mml:math>
<mml:munder accentunder="false">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>25.4548941736194</mml:mn>
</mml:mrow>
<mml:mo accent="true">_</mml:mo></mml:munder></mml:math><tex-math><![CDATA[$\underline{{z_{0}}=25.4548941736194}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_119"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>42.9012685104726</mml:mn></mml:math><tex-math><![CDATA[${u_{0}}=-42.9012685104726$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">7(f)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1204_ineq_120"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>8.28751887014337</mml:mn></mml:math><tex-math><![CDATA[${x_{0}}=8.28751887014337$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_121"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>6.61047141256491</mml:mn></mml:math><tex-math><![CDATA[${y_{0}}=6.61047141256491$]]></tex-math></alternatives></inline-formula>,</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_info1204_ineq_122"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>25.4548941736193</mml:mn></mml:math><tex-math><![CDATA[${z_{0}}=25.4548941736193$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1204_ineq_123"><alternatives><mml:math>
<mml:munder accentunder="false">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>42.9012685104727</mml:mn>
</mml:mrow>
<mml:mo accent="true">_</mml:mo></mml:munder></mml:math><tex-math><![CDATA[$\underline{{u_{0}}=-42.9012685104727}$]]></tex-math></alternatives></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="j_info1204_fig_007">
<label>Fig. 7</label>
<caption>
<p>Results of key sensitivity test.</p>
</caption>
<graphic xlink:href="info1204_g008.jpg"/>
</fig>
</sec>
<sec id="j_info1204_s_012">
<label>5.5</label>
<title>Robustness to Noise and Data Loss</title>
<p>In the real world, transmission errors are unavoidable, especially given the presence of noise in any communication channel, leading to the change of some pixels values. Besides, digital images may also lose data if they are corrupted due to intrusion. Consequently, an image encryption algorithm should have the robustness to resist noise and the data loss. As can be derived from Eq. (<xref rid="j_info1204_eq_008">6</xref>), the proposed algorithm does not suffer from the problem of “error propagation”, that is, a one-pixel error in the transmitted cipher-image would result in a one-pixel error in the reconstructed plain-image.</p>
<p>To demonstrate the robustness of the proposed algorithm against noise and data loss, we first encrypt the “Lena” test image using a randomly generated secret key, and the resulting cipher-image is shown in Fig. <xref rid="j_info1204_fig_008">8</xref>(a). Then we add four main types of noise, i.e. the Gaussian noise, the Poisson noise, the salt &amp; pepper noise, and the speckle noise, to the cipher-image, and the results are shown in Figs. <xref rid="j_info1204_fig_008">8</xref>(b)–(e), respectively. Next we crop part of the cipher-image and the result is shown in Fig. <xref rid="j_info1204_fig_008">8</xref>(f). Finally, we reconstruct plain-images from Figs. <xref rid="j_info1204_fig_008">8</xref>(a)–(f), and the results are shown in Figs. <xref rid="j_info1204_fig_008">8</xref>(g)–(l), respectively. To quantitatively measure the quality of the reconstructed plain-images, their PSNR are calculated, and the results are given in Table <xref rid="j_info1204_tab_008">7</xref>. As can be seen from Fig. <xref rid="j_info1204_fig_008">8</xref> and Table <xref rid="j_info1204_tab_008">7</xref>, when a cipher-image is with noise or data loss, our algorithm can still reconstruct the plain-image with a high visual quality. Therefore, it can be concluded that the proposed algorithm is robust against noise and data loss.</p>
<fig id="j_info1204_fig_008">
<label>Fig. 8</label>
<caption>
<p>Results of robustness analysis against noise and data loss. (a) cipher-image. (b) cipher-image with Gaussian noise (mean = 0 and variance = 0.01). (c) cipher-image with Poisson noise. (d) cipher-image with salt &amp; pepper noise (density = 0.05). (e) cipher-image with speckle noise (mean = 0 and variance = 0.04). (f) cipher-image with data loss. (g)–(l) are reconstructed plain-images corresponding to (a)–(f), respectively.</p>
</caption>
<graphic xlink:href="info1204_g009.jpg"/>
</fig>
<table-wrap id="j_info1204_tab_008">
<label>Table 7</label>
<caption>
<p>PSNR values for plain-images reconstructed from cipher-images with noise and data loss.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Figure</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Fig. <xref rid="j_info1204_fig_008">8</xref>(h)</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Fig. <xref rid="j_info1204_fig_008">8</xref>(i)</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Fig. <xref rid="j_info1204_fig_008">8</xref>(j)</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Fig. <xref rid="j_info1204_fig_008">8</xref>(k)</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Fig. <xref rid="j_info1204_fig_008">8</xref>(l)</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">PSNR</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">20.2106</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">27.1379</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">18.1460</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">18.7766</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">26.6073</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="j_info1204_s_013">
<label>6</label>
<title>Speed Performance</title>
<p>To demonstrate the efficiency of the proposed algorithm, we compare its performance with that of the AES algorithm, one of the most frequently used and most secure encryption algorithms available today. Tables <xref rid="j_info1204_tab_009">8</xref>–<xref rid="j_info1204_tab_011">10</xref> show the time required by the proposed algorithm and the AES algorithm to encrypt/decrypt 24-bit true colour images of size 512 × 512, 1024 × 1024 and 2048 × 2048, respectively. The AES algorithm works in CBC mode and the performance of all its three versions (128-bit, 192-bit and 256-bit) are measured. All the algorithms have been implemented using C programming language on Windows 7 64-bit platform, and the tests have been done on a personal computer with an Intel i7-7700 3.6 GHz processor and 8 GB RAM. To make the comparison fair, we run each algorithm 10 times on each test image and compute the average running time. As can be seen from Tables <xref rid="j_info1204_tab_009">8</xref>–<xref rid="j_info1204_tab_011">10</xref>, the proposed algorithm is approximately three times faster than the simplest version of the AES algorithm, i.e. AES-128. Besides, it’s found that our algorithm takes less time to decrypt than encrypt. This is because the decryption procedure does not include the step of calculating the digest of the original image. It can therefore be concluded from these results that the proposed algorithm provides a good candidate for online secure image transmission over public networks.</p>
<table-wrap id="j_info1204_tab_009">
<label>Table 8</label>
<caption>
<p>Time (in seconds) taken to encrypt/decrypt a 24-bit true colour image of size 512<inline-formula id="j_info1204_ineq_124"><alternatives><mml:math>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${^{\ast }}$]]></tex-math></alternatives></inline-formula>512.</p>
</caption>
<table>
<thead>
<tr>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Trial No.</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Proposed algorithm</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">AES-128</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">AES-192</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">AES-256</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0.028</td>
<td style="vertical-align: top; text-align: left">0.024</td>
<td style="vertical-align: top; text-align: left">0.088</td>
<td style="vertical-align: top; text-align: left">0.092</td>
<td style="vertical-align: top; text-align: left">0.113</td>
<td style="vertical-align: top; text-align: left">0.117</td>
<td style="vertical-align: top; text-align: left">0.134</td>
<td style="vertical-align: top; text-align: left">0.122</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">0.028</td>
<td style="vertical-align: top; text-align: left">0.021</td>
<td style="vertical-align: top; text-align: left">0.094</td>
<td style="vertical-align: top; text-align: left">0.100</td>
<td style="vertical-align: top; text-align: left">0.106</td>
<td style="vertical-align: top; text-align: left">0.105</td>
<td style="vertical-align: top; text-align: left">0.130</td>
<td style="vertical-align: top; text-align: left">0.130</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">0.029</td>
<td style="vertical-align: top; text-align: left">0.023</td>
<td style="vertical-align: top; text-align: left">0.095</td>
<td style="vertical-align: top; text-align: left">0.090</td>
<td style="vertical-align: top; text-align: left">0.107</td>
<td style="vertical-align: top; text-align: left">0.105</td>
<td style="vertical-align: top; text-align: left">0.133</td>
<td style="vertical-align: top; text-align: left">0.131</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">0.030</td>
<td style="vertical-align: top; text-align: left">0.022</td>
<td style="vertical-align: top; text-align: left">0.092</td>
<td style="vertical-align: top; text-align: left">0.116</td>
<td style="vertical-align: top; text-align: left">0.11</td>
<td style="vertical-align: top; text-align: left">0.112</td>
<td style="vertical-align: top; text-align: left">0.131</td>
<td style="vertical-align: top; text-align: left">0.137</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">0.030</td>
<td style="vertical-align: top; text-align: left">0.022</td>
<td style="vertical-align: top; text-align: left">0.091</td>
<td style="vertical-align: top; text-align: left">0.108</td>
<td style="vertical-align: top; text-align: left">0.109</td>
<td style="vertical-align: top; text-align: left">0.107</td>
<td style="vertical-align: top; text-align: left">0.129</td>
<td style="vertical-align: top; text-align: left">0.127</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">0.030</td>
<td style="vertical-align: top; text-align: left">0.021</td>
<td style="vertical-align: top; text-align: left">0.090</td>
<td style="vertical-align: top; text-align: left">0.089</td>
<td style="vertical-align: top; text-align: left">0.108</td>
<td style="vertical-align: top; text-align: left">0.106</td>
<td style="vertical-align: top; text-align: left">0.125</td>
<td style="vertical-align: top; text-align: left">0.141</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">7</td>
<td style="vertical-align: top; text-align: left">0.028</td>
<td style="vertical-align: top; text-align: left">0.021</td>
<td style="vertical-align: top; text-align: left">0.089</td>
<td style="vertical-align: top; text-align: left">0.087</td>
<td style="vertical-align: top; text-align: left">0.107</td>
<td style="vertical-align: top; text-align: left">0.104</td>
<td style="vertical-align: top; text-align: left">0.127</td>
<td style="vertical-align: top; text-align: left">0.128</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">0.029</td>
<td style="vertical-align: top; text-align: left">0.022</td>
<td style="vertical-align: top; text-align: left">0.090</td>
<td style="vertical-align: top; text-align: left">0.087</td>
<td style="vertical-align: top; text-align: left">0.108</td>
<td style="vertical-align: top; text-align: left">0.109</td>
<td style="vertical-align: top; text-align: left">0.133</td>
<td style="vertical-align: top; text-align: left">0.127</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">0.029</td>
<td style="vertical-align: top; text-align: left">0.025</td>
<td style="vertical-align: top; text-align: left">0.090</td>
<td style="vertical-align: top; text-align: left">0.095</td>
<td style="vertical-align: top; text-align: left">0.104</td>
<td style="vertical-align: top; text-align: left">0.106</td>
<td style="vertical-align: top; text-align: left">0.136</td>
<td style="vertical-align: top; text-align: left">0.128</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">0.028</td>
<td style="vertical-align: top; text-align: left">0.026</td>
<td style="vertical-align: top; text-align: left">0.091</td>
<td style="vertical-align: top; text-align: left">0.095</td>
<td style="vertical-align: top; text-align: left">0.106</td>
<td style="vertical-align: top; text-align: left">0.111</td>
<td style="vertical-align: top; text-align: left">0.125</td>
<td style="vertical-align: top; text-align: left">0.124</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Mean</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.029</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.023</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.091</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.096</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.108</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.108</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.130</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.130</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_info1204_tab_010">
<label>Table 9</label>
<caption>
<p>Time (in seconds) taken to encrypt/decrypt a 24-bit true colour image of size 1024*1024.</p>
</caption>
<table>
<thead>
<tr>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Trial No.</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Proposed algorithm</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">AES-128</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">AES-192</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">AES-256</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0.115</td>
<td style="vertical-align: top; text-align: left">0.085</td>
<td style="vertical-align: top; text-align: left">0.363</td>
<td style="vertical-align: top; text-align: left">0.355</td>
<td style="vertical-align: top; text-align: left">0.430</td>
<td style="vertical-align: top; text-align: left">0.439</td>
<td style="vertical-align: top; text-align: left">0.495</td>
<td style="vertical-align: top; text-align: left">0.508</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">0.114</td>
<td style="vertical-align: top; text-align: left">0.097</td>
<td style="vertical-align: top; text-align: left">0.358</td>
<td style="vertical-align: top; text-align: left">0.396</td>
<td style="vertical-align: top; text-align: left">0.427</td>
<td style="vertical-align: top; text-align: left">0.432</td>
<td style="vertical-align: top; text-align: left">0.500</td>
<td style="vertical-align: top; text-align: left">0.491</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">0.114</td>
<td style="vertical-align: top; text-align: left">0.085</td>
<td style="vertical-align: top; text-align: left">0.354</td>
<td style="vertical-align: top; text-align: left">0.351</td>
<td style="vertical-align: top; text-align: left">0.429</td>
<td style="vertical-align: top; text-align: left">0.429</td>
<td style="vertical-align: top; text-align: left">0.494</td>
<td style="vertical-align: top; text-align: left">0.496</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">0.117</td>
<td style="vertical-align: top; text-align: left">0.087</td>
<td style="vertical-align: top; text-align: left">0.363</td>
<td style="vertical-align: top; text-align: left">0.374</td>
<td style="vertical-align: top; text-align: left">0.424</td>
<td style="vertical-align: top; text-align: left">0.435</td>
<td style="vertical-align: top; text-align: left">0.499</td>
<td style="vertical-align: top; text-align: left">0.497</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">0.117</td>
<td style="vertical-align: top; text-align: left">0.085</td>
<td style="vertical-align: top; text-align: left">0.370</td>
<td style="vertical-align: top; text-align: left">0.352</td>
<td style="vertical-align: top; text-align: left">0.426</td>
<td style="vertical-align: top; text-align: left">0.439</td>
<td style="vertical-align: top; text-align: left">0.495</td>
<td style="vertical-align: top; text-align: left">0.492</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">0.117</td>
<td style="vertical-align: top; text-align: left">0.089</td>
<td style="vertical-align: top; text-align: left">0.368</td>
<td style="vertical-align: top; text-align: left">0.364</td>
<td style="vertical-align: top; text-align: left">0.424</td>
<td style="vertical-align: top; text-align: left">0.449</td>
<td style="vertical-align: top; text-align: left">0.494</td>
<td style="vertical-align: top; text-align: left">0.500</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">7</td>
<td style="vertical-align: top; text-align: left">0.115</td>
<td style="vertical-align: top; text-align: left">0.091</td>
<td style="vertical-align: top; text-align: left">0.364</td>
<td style="vertical-align: top; text-align: left">0.352</td>
<td style="vertical-align: top; text-align: left">0.423</td>
<td style="vertical-align: top; text-align: left">0.437</td>
<td style="vertical-align: top; text-align: left">0.496</td>
<td style="vertical-align: top; text-align: left">0.500</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">0.114</td>
<td style="vertical-align: top; text-align: left">0.088</td>
<td style="vertical-align: top; text-align: left">0.358</td>
<td style="vertical-align: top; text-align: left">0.363</td>
<td style="vertical-align: top; text-align: left">0.431</td>
<td style="vertical-align: top; text-align: left">0.429</td>
<td style="vertical-align: top; text-align: left">0.503</td>
<td style="vertical-align: top; text-align: left">0.509</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">0.116</td>
<td style="vertical-align: top; text-align: left">0.096</td>
<td style="vertical-align: top; text-align: left">0.364</td>
<td style="vertical-align: top; text-align: left">0.377</td>
<td style="vertical-align: top; text-align: left">0.427</td>
<td style="vertical-align: top; text-align: left">0.440</td>
<td style="vertical-align: top; text-align: left">0.502</td>
<td style="vertical-align: top; text-align: left">0.505</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">0.113</td>
<td style="vertical-align: top; text-align: left">0.089</td>
<td style="vertical-align: top; text-align: left">0.359</td>
<td style="vertical-align: top; text-align: left">0.366</td>
<td style="vertical-align: top; text-align: left">0.430</td>
<td style="vertical-align: top; text-align: left">0.444</td>
<td style="vertical-align: top; text-align: left">0.501</td>
<td style="vertical-align: top; text-align: left">0.518</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Mean</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.115</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.089</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.362</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.365</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.427</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.437</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.498</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.502</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_info1204_tab_011">
<label>Table 10</label>
<caption>
<p>Time (in seconds) taken to encrypt/decrypt a 24-bit true colour image of size 2048<inline-formula id="j_info1204_ineq_125"><alternatives><mml:math>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${^{\ast }}$]]></tex-math></alternatives></inline-formula>2048.</p>
</caption>
<table>
<thead>
<tr>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Trial No.</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Proposed algorithm</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">AES-128</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">AES-192</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">AES-256</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Encryption</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Decryption</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0.459</td>
<td style="vertical-align: top; text-align: left">0.348</td>
<td style="vertical-align: top; text-align: left">1.426</td>
<td style="vertical-align: top; text-align: left">1.415</td>
<td style="vertical-align: top; text-align: left">1.719</td>
<td style="vertical-align: top; text-align: left">1.821</td>
<td style="vertical-align: top; text-align: left">1.994</td>
<td style="vertical-align: top; text-align: left">2.108</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">0.455</td>
<td style="vertical-align: top; text-align: left">0.340</td>
<td style="vertical-align: top; text-align: left">1.430</td>
<td style="vertical-align: top; text-align: left">1.431</td>
<td style="vertical-align: top; text-align: left">1.707</td>
<td style="vertical-align: top; text-align: left">1.764</td>
<td style="vertical-align: top; text-align: left">2.002</td>
<td style="vertical-align: top; text-align: left">2.003</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">0.492</td>
<td style="vertical-align: top; text-align: left">0.348</td>
<td style="vertical-align: top; text-align: left">1.421</td>
<td style="vertical-align: top; text-align: left">1.421</td>
<td style="vertical-align: top; text-align: left">1.718</td>
<td style="vertical-align: top; text-align: left">1.745</td>
<td style="vertical-align: top; text-align: left">1.991</td>
<td style="vertical-align: top; text-align: left">2.087</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">0.457</td>
<td style="vertical-align: top; text-align: left">0.346</td>
<td style="vertical-align: top; text-align: left">1.437</td>
<td style="vertical-align: top; text-align: left">1.414</td>
<td style="vertical-align: top; text-align: left">1.722</td>
<td style="vertical-align: top; text-align: left">1.726</td>
<td style="vertical-align: top; text-align: left">2.001</td>
<td style="vertical-align: top; text-align: left">2.053</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">0.454</td>
<td style="vertical-align: top; text-align: left">0.341</td>
<td style="vertical-align: top; text-align: left">1.431</td>
<td style="vertical-align: top; text-align: left">1.414</td>
<td style="vertical-align: top; text-align: left">1.713</td>
<td style="vertical-align: top; text-align: left">1.736</td>
<td style="vertical-align: top; text-align: left">1.995</td>
<td style="vertical-align: top; text-align: left">2.043</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">0.456</td>
<td style="vertical-align: top; text-align: left">0.345</td>
<td style="vertical-align: top; text-align: left">1.428</td>
<td style="vertical-align: top; text-align: left">1.422</td>
<td style="vertical-align: top; text-align: left">1.704</td>
<td style="vertical-align: top; text-align: left">1.738</td>
<td style="vertical-align: top; text-align: left">2.014</td>
<td style="vertical-align: top; text-align: left">2.031</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">7</td>
<td style="vertical-align: top; text-align: left">0.452</td>
<td style="vertical-align: top; text-align: left">0.341</td>
<td style="vertical-align: top; text-align: left">1.426</td>
<td style="vertical-align: top; text-align: left">1.414</td>
<td style="vertical-align: top; text-align: left">1.706</td>
<td style="vertical-align: top; text-align: left">1.732</td>
<td style="vertical-align: top; text-align: left">2.003</td>
<td style="vertical-align: top; text-align: left">2.020</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">0.459</td>
<td style="vertical-align: top; text-align: left">0.341</td>
<td style="vertical-align: top; text-align: left">1.428</td>
<td style="vertical-align: top; text-align: left">1.426</td>
<td style="vertical-align: top; text-align: left">1.704</td>
<td style="vertical-align: top; text-align: left">1.728</td>
<td style="vertical-align: top; text-align: left">1.997</td>
<td style="vertical-align: top; text-align: left">1.992</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">0.456</td>
<td style="vertical-align: top; text-align: left">0.341</td>
<td style="vertical-align: top; text-align: left">1.420</td>
<td style="vertical-align: top; text-align: left">1.417</td>
<td style="vertical-align: top; text-align: left">1.706</td>
<td style="vertical-align: top; text-align: left">1.716</td>
<td style="vertical-align: top; text-align: left">1.991</td>
<td style="vertical-align: top; text-align: left">1.972</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">0.457</td>
<td style="vertical-align: top; text-align: left">0.344</td>
<td style="vertical-align: top; text-align: left">1.421</td>
<td style="vertical-align: top; text-align: left">1.417</td>
<td style="vertical-align: top; text-align: left">1.701</td>
<td style="vertical-align: top; text-align: left">1.735</td>
<td style="vertical-align: top; text-align: left">1.997</td>
<td style="vertical-align: top; text-align: left">2.015</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Mean</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.460</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.344</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.427</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.419</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.710</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.744</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.999</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.032</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="j_info1204_s_014">
<label>7</label>
<title>Conclusions</title>
<p>In this paper, we have proposed a fast and robust approach for image data protection. We first calculate the SHA-224 hash value of the original image, and then the hash value, together with the secret key, is used to generate the initial conditions of a 4-D hyperchaotic system. Subsequently, the hyperchaotic system is iterated for appropriate times to produce a keystream sequence used for the substitution operation. Due to the avalanche effect of hash functions, a slight change of the plain-image can lead to a totally different keystream sequence. Consequently, desired diffusion effect can be achieved with only a single round of substitution operation, whereas at least two encryption rounds are required by the state-of-the-art permutation-substitution type image ciphers. We have also demonstrated the computational efficiency of the proposed algorithm by comparing it with the AES encryption algorithm. Our theoretical analysis and experimental results have indicated that the proposed algorithm has a high security level, which can effectively resist all common attacks, such as brute force attack, statistical attack and differential attack. In conclusion, the proposed image encryption algorithm is particularly suitable for online applications.</p>
</sec>
</body>
<back>
<ack id="j_info1204_ack_001">
<title>Acknowledgements</title>
<p>This work was supported by the Fundamental Research Funds for the Central Universities (Nos. N150402004 and N171903003) and the National Nature Science Fundation of China (No. 61802055).</p></ack>
<ref-list id="j_info1204_reflist_001">
<title>References</title>
<ref id="j_info1204_ref_001">
<mixed-citation publication-type="journal"><string-name><surname>Chen</surname>, <given-names>J.X.</given-names></string-name>, <string-name><surname>Zhu</surname>, <given-names>Z.L.</given-names></string-name>, <string-name><surname>Fu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Yu</surname>, <given-names>H.</given-names></string-name> (<year>2014</year>). <article-title>A fast image encryption scheme with a novel pixel swapping-based confusion approach</article-title>. <source>Nonlinear Dynamics</source>, <volume>77</volume>(<issue>4</issue>), <fpage>1191</fpage>–<lpage>1207</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_002">
<mixed-citation publication-type="journal"><string-name><surname>Chen</surname>, <given-names>J.X.</given-names></string-name>, <string-name><surname>Zhu</surname>, <given-names>Z.L.</given-names></string-name>, <string-name><surname>Fu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>L.B.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>Y.</given-names></string-name> (<year>2015</year>a). <article-title>An image encryption scheme using nonlinear inter-pixel computing and swapping based permutation approach</article-title>. <source>Communications in Nonlinear Science and Numerical Simulation</source>, <volume>23</volume>(<issue>1</issue>), <fpage>294</fpage>–<lpage>310</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_003">
<mixed-citation publication-type="journal"><string-name><surname>Chen</surname>, <given-names>J.X.</given-names></string-name>, <string-name><surname>Zhu</surname>, <given-names>Z.L.</given-names></string-name>, <string-name><surname>Fu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>L.B.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>Y.</given-names></string-name> (<year>2015</year>b). <article-title>An efficient image encryption scheme using lookup table-based confusion and diffusion</article-title>. <source>Nonlinear Dynamics</source>, <volume>81</volume>(<issue>3</issue>), <fpage>1151</fpage>–<lpage>1166</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_004">
<mixed-citation publication-type="journal"><string-name><surname>Chen</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Zhu</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Fu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Yu</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>Y.</given-names></string-name> (<year>2015</year>c). <article-title>Reusing the permutation matrix dynamically for efficient image cryptographic algorithm</article-title>. <source>Signal Processing</source>, <volume>111</volume>, <fpage>294</fpage>–<lpage>307</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_005">
<mixed-citation publication-type="other"><string-name><surname>Chen</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Zhu</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Yang</surname>, <given-names>B.</given-names></string-name> (2017). Exploiting self-adaptive permutation-diffusion and DNA random encoding for secure and efficient image encryption. <italic>Signal Processing</italic>, <italic>142</italic>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_006">
<mixed-citation publication-type="journal"><string-name><surname>Fridrich</surname>, <given-names>J.</given-names></string-name> (<year>1998</year>). <article-title>Symmetric ciphers based on two-dimensional chaotic maps</article-title>. <source>International Journal of Bifurcation and Chaos</source>, <volume>8</volume>(<issue>06</issue>), <fpage>1259</fpage>–<lpage>1284</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_007">
<mixed-citation publication-type="journal"><string-name><surname>Fu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Lin</surname>, <given-names>B.B.</given-names></string-name>, <string-name><surname>Miao</surname>, <given-names>Y.S.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Chen</surname>, <given-names>J.J.</given-names></string-name> (<year>2011</year>). <article-title>A novel chaos-based bit-level permutation scheme for digital image encryption</article-title>. <source>Optics Communications</source>, <volume>284</volume>(<issue>23</issue>), <fpage>5415</fpage>–<lpage>5423</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_008">
<mixed-citation publication-type="journal"><string-name><surname>Fu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Chen</surname>, <given-names>J.J.</given-names></string-name>, <string-name><surname>Zou</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Meng</surname>, <given-names>W.H.</given-names></string-name>, <string-name><surname>Zhan</surname>, <given-names>Y.F.</given-names></string-name>, <string-name><surname>Yu</surname>, <given-names>Y.W.</given-names></string-name> (<year>2012</year>). <article-title>A chaos-based digital image encryption scheme with an improved diffusion strategy</article-title>. <source>Optics Express</source>, <volume>20</volume>(<issue>3</issue>), <fpage>2363</fpage>–<lpage>2378</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_009">
<mixed-citation publication-type="journal"><string-name><surname>Fu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Meng</surname>, <given-names>W.H.</given-names></string-name>, <string-name><surname>Zhan</surname>, <given-names>Y.F.</given-names></string-name>, <string-name><surname>Zhu</surname>, <given-names>Z.L.</given-names></string-name>, <string-name><surname>Lau</surname>, <given-names>F.C.</given-names></string-name>, <string-name><surname>Chi</surname>, <given-names>K.T.</given-names></string-name>, <string-name><surname>Ma</surname>, <given-names>H.F.</given-names></string-name> (<year>2013</year>). <article-title>An efficient and secure medical image protection scheme based on chaotic maps</article-title>. <source>Computers in Biology and Medicine</source>, <volume>43</volume>(<issue>8</issue>), <fpage>1000</fpage>–<lpage>1010</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_010">
<mixed-citation publication-type="journal"><string-name><surname>Fu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Huang</surname>, <given-names>J.B.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>N.N.</given-names></string-name>, <string-name><surname>Hou</surname>, <given-names>Q.B.</given-names></string-name>, <string-name><surname>Lei</surname>, <given-names>W.M.</given-names></string-name> (<year>2014</year>). <article-title>A symmetric chaos-based image cipher with an improved bit-level permutation strategy</article-title>. <source>Entropy</source>, <volume>16</volume>(<issue>2</issue>), <fpage>770</fpage>–<lpage>788</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_011">
<mixed-citation publication-type="journal"><string-name><surname>Fu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Wen</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Zhu</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Yu</surname>, <given-names>H.</given-names></string-name> (<year>2016</year>). <article-title>A security improved image encryption scheme based on chaotic Baker map and hyperchaotic Lorenz system</article-title>. <source>International Journal of Computational Science and Engineering</source>, <volume>12</volume>(<issue>2–3</issue>), <fpage>113</fpage>–<lpage>123</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_012">
<mixed-citation publication-type="journal"><string-name><surname>Li</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Tang</surname>, <given-names>W.K.</given-names></string-name>, <string-name><surname>Chen</surname>, <given-names>G.</given-names></string-name> (<year>2005</year>). <article-title>Hyperchaos evolved from the generalized Lorenz equation</article-title>. <source>International Journal of Circuit Theory and Applications</source>, <volume>33</volume>(<issue>4</issue>), <fpage>235</fpage>–<lpage>251</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_013">
<mixed-citation publication-type="journal"><string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Wong</surname>, <given-names>K.W.</given-names></string-name>, <string-name><surname>Liao</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Chen</surname>, <given-names>G.</given-names></string-name> (<year>2011</year>). <article-title>A new chaos-based fast image encryption algorithm</article-title>. <source>Applied Soft Computing</source>, <volume>11</volume>(<issue>1</issue>), <fpage>514</fpage>–<lpage>522</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_014">
<mixed-citation publication-type="journal"><string-name><surname>Wong</surname>, <given-names>K.W.</given-names></string-name>, <string-name><surname>Kwok</surname>, <given-names>B.S.H.</given-names></string-name>, <string-name><surname>Law</surname>, <given-names>W.S.</given-names></string-name> (<year>2008</year>). <article-title>A fast image encryption scheme based on chaotic standard map</article-title>. <source>Physics Letters A</source>, <volume>372</volume>(<issue>15</issue>), <fpage>2645</fpage>–<lpage>2652</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_015">
<mixed-citation publication-type="journal"><string-name><surname>Wong</surname>, <given-names>K.W.</given-names></string-name>, <string-name><surname>Kwok</surname>, <given-names>B.S.H.</given-names></string-name>, <string-name><surname>Yuen</surname>, <given-names>C.H.</given-names></string-name> (<year>2009</year>). <article-title>An efficient diffusion approach for chaos-based image encryption</article-title>. <source>Chaos, Solitons &amp; Fractals</source>, <volume>41</volume>(<issue>5</issue>), <fpage>2652</fpage>–<lpage>2663</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_016">
<mixed-citation publication-type="journal"><string-name><surname>Wu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Zhou</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Agaian</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Noonan</surname>, <given-names>J.P.</given-names></string-name> (<year>2014</year>). <article-title>A symmetric image cipher using wave perturbations</article-title>. <source>Signal Processing</source>, <volume>102</volume>, <fpage>122</fpage>–<lpage>131</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_017">
<mixed-citation publication-type="journal"><string-name><surname>Xiang</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Wong</surname>, <given-names>K.W.</given-names></string-name>, <string-name><surname>Liao</surname>, <given-names>X.</given-names></string-name> (<year>2007</year>). <article-title>Selective image encryption using a spatiotemporal chaotic system</article-title>. <source>Chaos: An Interdisciplinary Journal of Nonlinear Science</source>, <volume>17</volume>(<issue>2</issue>), <elocation-id>023115</elocation-id>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_018">
<mixed-citation publication-type="journal"><string-name><surname>Zhang</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Yu</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Zhao</surname>, <given-names>Y.L.</given-names></string-name>, <string-name><surname>Zhu</surname>, <given-names>Z.L.</given-names></string-name> (<year>2016</year>). <article-title>Image encryption based on three-dimensional bit matrix permutation</article-title>. <source>Signal Processing</source>, <volume>118</volume>, <fpage>36</fpage>–<lpage>50</lpage>.</mixed-citation>
</ref>
<ref id="j_info1204_ref_019">
<mixed-citation publication-type="journal"><string-name><surname>Zhu</surname>, <given-names>Z.L.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Wong</surname>, <given-names>K.W.</given-names></string-name>, <string-name><surname>Yu</surname>, <given-names>H.</given-names></string-name> (<year>2011</year>). <article-title>A chaos-based symmetric image encryption scheme using a bit-level permutation</article-title>. <source>Information Sciences</source>, <volume>181</volume>(<issue>6</issue>), <fpage>1171</fpage>–<lpage>1186</lpage>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>