# An Effective Chaos-Based Image Encryption Scheme Using Imitating Jigsaw Method

Authors: Zhen Li; Changgen Peng; Weijie Tan; Liangrong Li
Journal: Complexity
 (2021)

---

## Abstract

In this paper, an efficient chaos-based image encryption scheme is proposed, which uses the imitating jigsaw method containing revolving and shifting operations. In this scheme, there are three processes in encryption: preprocessing, encryption process, and postprocessing. In the preprocessing, the original image is partitioned into 64 × 64 pixel image blocks and then randomly revolved and shifted under control sequences which are generated by the hyperchaotic Lorenz system whose initial conditions are calculated by original image and keys. Therefore, the preprocessing is sensitive to plain image against differential attacks. In the encryption process, the after-preprocessing image is partitioned into 32 × 32 pixel image blocks; next they are randomly revolved and encrypted by control sequence and key blocks which are generated by the skew tent map. In postprocessing, the after-encryption image is partitioned into 16 × 16 pixels’ image blocks, and they are randomly revolved and shifted again under control sequences which are related with encrypted image and keys. The postprocessing further increases the diffusion characteristics. Moreover, the test experiment and security analyses are given; the results show that our proposed cryptosystem has both security and speed performance.


---

## Body

## 1. Introduction

With the rapid development of electronic technology, digital information is being applied in all the fields in the society. Digital image is becoming the most widely used information carrier in our daily life with many advantages, such as intuition and vividness. At the same time, a series of security problems of image information threaten the safety of peoples’ life and property. Therefore, the information security of digital image has become a research focus in recent years. Because the image data has many special characteristics which are different from text structure data, such as high redundancy, strong correlation, and bulk data capacity, traditional text encryption algorithms usually have low efficiency on image encryption [1]. Therefore, the image encryption scheme must be designed by considering those characteristics.Since the chaos theory was first proposed by Lorenz [2], many chaotic phenomena were found in many fields, such as physics, astronomy, chemistry, biology, and medicine. In recent years, the chaotic encryption attracts more and more researcher’s attention. After Matthews [3] using the chaotic system to design the first image encryption scheme, many chaotic image encryption schemes are proposed in the recent years [3–38]. Fridrich [26] gave a two-dimensional chaotic symmetric ciphers scheme. Lian et al. [27] proposed a block cipher using a chaotic standard map. At the same period, many chaotic encryption schemes were put forward, such as [19–24]. Many of these schemes have been proved to have some security problems, such as weak plaintext sensitivity, small key space, and easy statistical attack.In the past five years, many splendid image encryption schemes were presented. Hu et al. [4] proposed a chaotic image cipher scheme by using a plaintext-related permutation mechanism. In [5], an image encryption scheme was presented by using chaos sequence to control the encoding plain image to DNA sequence, and then they were encrypted by cycle operation of DNA sequence. In [6], Hua et al. proposed a new 2D logistic-sine-coupling map and then designed an image encryption scheme using this chaotic system. In [7], Gao et al. gave a new 2D logistic ICMIC cascade map and then proposed a bit-level image encryption algorithm based on this map. Chai et al. [8] used the memristive chaotic system, elementary cellular automata, and compressive sensing to design an image encryption cryptosystem. Ye et al. [9] proposed an image encryption scheme by using SHA-3 hash function and double Arnold chaotic maps. Luo et al. [10] designed a plain image-related cryptosystem by using the tent map to generate two ergodicity sequences to control the permutation and diffusion processes. In [11], Hua et al. proposed an image encryption scheme for medical image by using high-speed scrambling and pixel adaptive diffusion. Khelifi et al. [12] presented an encryption scheme for image data sharing in cloud. In [13], Wang and Zhang used the hyperchaotic system to design an image encryption scheme which expanded the plain image into two compound images and then diffused them at the bit level. In [14], an image encryption scheme was presented which encrypted the image from four directions by interweaving pairs of rows and columns. In [15], an image encryption scheme was designed by using rows and columns switch. In [16], Liu et al. designed a self-adaptive selective permutation and inter-intra-block feedback diffusion and then used them by designing an image encryption scheme. Wu et al. [17] proposed a color image encryption scheme using the nonlinear chaotic algorithm (NCA) map-based coupled map lattice (CML) and DNA operation. Wang et al. [18] used chaos and simulated annealing algorithm to design the image encryption scheme. Li et al. [29] proposed a plaintext related image encryption scheme based on the hyperchaotic system and hash function. In [30], Wu et al. proposed an image encryption algorithm by using Henon-Sine map and DNA approach. Ye et al. [31] proposed an image encryption scheme by using quaternion discrete fractional Hartley transform and an improved pixel adaptive diffusion. In [32], Zhu et al. use block compressive sensing and singular value decomposition embedding to balance the security, compression, and robustness. In [33], an image encryption scheme is proposed by using 2D multiple parameter fractional discrete Fourier transform and 3D Arnold transform. You et al. [34] proposed a parallel image encryption scheme and implemented by OpenCL. Ouyang et al. [35] proposed a method of impulsive synchronization of coupled delayed neural networks with actuator saturation and designed an image encryption scheme by using this method. In [36], a compressed sensing strategy based on a semitensor product was proposed and a visual security image encryption scheme was designed. In [37], an image encryption scheme was proposed by using compressive sensing and random number insertion. Zhang et al. [38] proposed a plaintext-related image encryption scheme by using perceptron-like network. Li et al. [39] proposed an efficient bit-level permutation method and designed a chaos-based color image encryption scheme. Yavuz et al. [40] proposed an effective image encryption algorithm using two independent chaotic functions and some logical operations. Yavuz [41] proposed a content sensitive dynamic function and used this mechanism to design an image encryption scheme. Amina et al. [42] proposed an image encryption scheme using logistic-tent system. Ravichandran et al. [43] presented an image encryption scheme based on combined logistic-tent system. Lakshmi et al. [44] proposed a Hopfield attractor-based image encryption scheme using neural networks. Banu et al. [45] proposed an image encryption based on chaotic attractors on frequency domain by integer wavelet transform (IWT) and fused with deoxyribonucleic acid (DNA) sequence on the spatial domain. Alawida et al. [46] proposed a new chaotification method which combined two chaotic maps and designed an image encryption scheme using this method. Alawida et al. [47] used a deterministic finite state machine to enhance chaotic properties of tent map and proposed an image encryption scheme using this new chaotic system. Artiles et al. [48] combined the block cipher and chaotic system to design an image encryption scheme; the drawback of this scheme is less efficiency. Wang et al. [49] proposed an image encryption algorithm using logistic-dynamic mixed linear-nonlinear coupled map lattices. Luo et al. [50] presented an image encryption scheme using improved baker map and logistic map.As we all know, a good image encryption scheme not only should have an excellent security performance but also need to have an outstanding encryption speed performance. The main contributions of our work are as follows:(1)
We proposed an efficient image encryption scheme based on chaos theory and imitating jigsaw operation(2)
We give a complete security analysis and performance analysis(3)
The proposed scheme is proved to have good encryption and decryption efficiencies compared with those of others’ worksThe organization of this paper is as follows: in Section2, we give a detailed description of the encryption and decryption algorithms. In Section 3, we simulate our proposed cryptosystem and use some security analyses to prove our work is secure. Section 4 concludes this paper.


## 2. Encryption and Decryption Algorithms

In our proposed image cryptosystem, there are three processes in both encryption and decryption algorithms: preprocessing process, encryption or decryption process, and postprocessing process. In preprocessing and postprocessing processes, we use the hyperchaotic Lorenz system to generate the control sequences of revolving and shifting image blocks. In the encryption or decryption process, we use the skew tent system to generate the control sequence of revolving image blocks and the security key for encryption or decryption.Remark 1.
In our proposed scheme, we use the hyperchaotic system and skew tent map to control the encryption process. However, the other chaotic systems can also be extended in our scheme, and the only difference is the size of the key space.
The hyperchaotic Lorenz system [51] is given by(1)x˙=ay−x+w,y˙=cx−y−xz,z˙=xy−bz,w˙=−yz+γw,where a, b, c, and γ are the parameters of the system. When a = 10, b = 8/3, c = 28, and γ∈−1.52,−0.06, the system goes into chaos. Figure 1 shows attractors of the hyperchaotic Lorenz system.
The skew tent system [52] is given by(2)tn+1=tnp,tn∈0,p,1−tn1−p,tn∈p,1,where p is the parameter of the skew tent system. Whenp∈0,0.5∪0.5,1, the system can generate a chaotic sequencetn∈0,1.Figure 1
Hyperchaotic attractors in (a)x-y plane, (b) x-z plane, (c) x-w plane, (d) z-w plane, (e) y-w plane, and (f) y-z plane.
(a)(b)(c)(d)(e)(f)


### 2.1. Encryption Algorithm

The whole encryption scheme as shown in Figure2 has two parts: image data processing before encryption part and encryption algorithm part. The purpose of data processing before encryption is to make input images suitable for processing rules of encryption algorithms. The details are as follows:Step 1: we supposed the inputted imageIM is an M0 × N0 8 bit gray image and check whether M0 and N0 can be divided exactly by 64.Step 2: ifM0 cannot be divided exactly by 64, but N0 can, then execute Step 3a. If N0 cannot be divided exactly by 64, but M0 can, then execute Step 3b. And, if both M0 and N0 cannot be divided exactly by 64, then execute Step 3c (only one of the Steps 3a, 3b, and 3c can be executed).Step 3a: take an integer number between 0 and 63 and denote it asnm, to make M0 + nm to be divided exactly by 64. Build an nm × N0 matrix NBM whose each element is equal nm. Combine the two matrixes IM and NBM to be a new (M0 + nm) × N0 matrix, as shown in Figure 3.Step 3b: take an integer number between 0 and 63 and denote it asnn, to make N0 + nn to be divided exactly by 64. Build a M0 × nn matrix NBN whose each element is equal nn. Combine the two matrixes IM and NBN to be a new M0 × (N0 + nn) matrix, as shown in Figure 3.Step 3c: take an integer number between 0 and 63 and denote it asnm, to make M0 + nm to be divided exactly by 64. Take an integer number between 0 and 63 and denote it as nn, to make N0 + nn to be divided exactly by 64. Generate a new (M0 + nm) × (N0 + nn) matrix by IM, NBN, NBM, and NBT as Figure 3, where elements in matrix NBM are equal to nm, elements in matrix NBN are equal to nn, and elements in matrix NBT are equal to nm + nn.Step 4: finish the data processing with outputtingM × N image matrix IM1.Figure 2
Encryption scheme.Figure 3
The rules of matrix combination.
(a)(b)(c)After data processing, we put the outputted-image matrix into encryption algorithm. There are three processes in encryption algorithm: preprocessing process, encryption process, and postprocessing process. The encryption algorithm is shown in Algorithm1.Algorithm 1: Encryption algorithm.
Input: image IM1 and initial key [k1,k2,…,k9](1)
[M N] ⟵ size (IM1);(2)
PartitioningIM1 as 64 × 64 pixels image blocks[preBlock (1), preBlock (2), …, preBlock (BN1)], where BN1=M/64×N/64(3)
S1⟵SUMIM1Generate initial conditions of the hyperchaotic Lorenz system:x0⟵modk1×S1,80−40×k2+k6;y0⟵modk2×S1,80−40×k3+k7;z0⟵modk3×S1,80+1×k4+k8;w0⟵modk4×S1,500−250×k5+k9;(4)
Iterate equation (1) withx0,y0,z0,w0.Generate revolving control sequenceRS1⟵modfloory+100×108,4Generate shifting control sequenceXS1⟵modfloorx+100×108,BN1+1(5)
fori=1toBN1thenpreBlocki⟵imrotatepreBlocki,90×RS1iend for(6)
Generate a new sequenceX1 by removing repeated elements from XS1 and putting the absent numbers at the end.(7)
fori=1toBN1/2thenpreBlockX1i↔preBlockX1BN1−i+1end for(8)
RestructurepreBlock to an image matrix IM2(9)
PartitioningIM2 as 32 × 32 pixels’ image blocks[encBlock (1), encBlock (2),…, encBlock (BN2)], where BN2=M/32×N/32(10)
Generate system parameterp and initial condition t0 of skew tent map:p⟵modk1+k2+k3×k4+k5,1;t0⟵modk5+k6+k7×k8+k9,1(11)
Iterate equation (2) withp,t0.Generate revolving control sequenceRS2⟵modfloort+100×108,4Generate key sequenceKS⟵modfloort×1012,256(12)
Reshape key sequenceKS to be a 32 × 32 blocks[keyBlock (1), keyBlock (2),…, keyBlock (BN2)](13)
fori=1toBN2thenencBlocki⟵imrotateencBlocki,90×RS2iend for(14)
cBlock1⟵encBlock1⊕keyBlock1fori=2toBN2thencBlocki⟵encBlocki⊕keyBlocki⊕cBlocki−1end for(15)
RestructurecBlock to an image matrix IM3(16)
PartitioningIM3 as 16 × 16 pixels’ image blocks:[postBlock (1), postBlock (2),…, postBlock (BN3)], where BN3=M/16×N/16(17)
S2⟵SUMIM3Generate initial conditions of hyper-chaotic Lorenz system:x0⟵modk6×S2,80−40×k4+k1;y0⟵modk7×S2,80−40×k3+k2;z0⟵modk8×S2,80+1×k2+k3;w0⟵modk9×S2,500−250×k1+k4;(18)
Iterate equation (1) withx0,y0,z0,w0.Generate revolving control sequenceRS3⟵modfloory+100×108,4Generate shifting control sequenceXS2⟵modfloorx+100×108,BN3+1(19)
fori=1toBN3thenpostBlocki⟵imrotatepostBlocki,90×RS3iend for(20)
Generate a new sequenceX2 by removing repeated elements from XS2, and putting the absent numbers at the end.(21)
fori=1toBN3/2thenpostBlockX2i↔postBlockX2BN3−i+1end for(22)
RestructurepostBlock to an image matrix CMOutput: cipher image CMThe detailed description of encryption algorithm is as follows:Step 1: input the data processed imageIM1 and initial key k1,k2,…,k9 into the encryption algorithm.Step 2: the preprocessing process begins.IM1 is partitioned as 64 × 64 pixels image blocks, and there are BN1=M/64×N/64 blocks; they are denoted as preBlock (1), preBlock (2), …, preBlock (BN1).Step 3: add all the gray values of pixels of theIM1, and the summation is denoted as S1. The initial conditions of the hyperchaotic Lorenz system are generated by equations (3)–(6):(3)x0=modk1×S1,80−40×k2+k6,(4)y0=modk2×S1,80−40×k3+k7,(5)z0=modk3×S1,80+1×k4+k8,(6)w0=modk4×S1,500−250×k5+k9,where mod (a, b) means the remainder of a/b (similarly hereinafter).Step 4: under initial conditions which are generated in Step 3, equation (1) is iterated by using the fourth-order Runge-Kutta method with 0.002 step size. The revolving control sequence RS1 and the shifting control sequence XS1 are generated by equations (7) and (8), respectively:(7)RS1=modfloory+100×108,4,(8)XS1=modfloorx+100×108,BN1+1,Step 5: image blocks are revolved by using the following equation:(9)preBlocki=imrotatepreBlocki,90×RS1i,whereimrotateP,m means image P is rotated m degrees in the anticlockwise direction (similarly hereinafter) andiis the serial number of elements in the sequences preBlock and RS1.Step 6: remove the repeated elements fromXS1 and then put the absent numbers at the end to generate a new sequence X1.Step 7: substitutepreBlockX1i withpreBlockX1BN1−i+1, wherei=1,2,…,BN1/2.Step 8: generate a new imageIM2 by restructuring preBlock. The preprocessing process is finished.Step 9: The encryption process begins.IM2 is partitioned as 32 × 32 pixels image blocks, and there are BN2=M/32×N/32 blocks; they are denoted as encBlock (1), encBlock (2),…, encBlock (BN2).Step 10: generate system parameterp and initial condition t0 of skew tent map by equations (10) and (11), respectively:(10)p=modk1+k2+k3×k4+k5,1,(11)t0=modk5+k6+k7×k8+k9,1,Step 11: equation (2) was iterated under system parameter p and initial condition t0. The revolving control sequence RS2 and the key sequence KS are generated by equations (12) and (13), respectively:(12)RS2=modfloort+100×108,4,(13)KS=modfloort×1012,256.Step 12: reshape key sequence KS to be BN2 key blocks with 32 × 32 and denote them askeyBlock (1), keyBlock (2),…, keyBlock (BN2).Step 13: Revolve the image blocks by using the following equation:(14)encBlocki=imrotateencBlocki,90×RS2i.Step 14: encrypt image blocks by the following equation:(15)cBlocki=encBlocki⊕keyBlocki,i=1,cBlocki=encBlocki⊕keyBlocki⊕cBlocki−1,2≤i≤BN2.Step 15: generate a new imageIM3 by restructuring cBlock. The encryption process is finished.Step 16: the postprocessing process begins.IM3 is partitioned as 16 × 16 pixels image blocks, and there are BN3=M/16×N/16 blocks; they are denoted as postBlock (1), postBlock (2), …, postBlock (BN3).Step 17: add all the gray values of pixels of theIM3, and the summation is denoted as S2. The initial conditions of the hyperchaotic Lorenz system are generated by the following equations:(16)x0=modk6×S2,80−40×k4+k1,(17)y0=modk7×S2,80−40×k3+k2,(18)z0=modk8×S2,80+1×k2+k3,(19)w0=modk9×S2,500−250×k1+k4.Step 18: under initial conditions which are generated in Step 17, equation (1) is iterated by using the fourth-order RungeKutta method with 0.002 step size. The revolving control sequence RS3 and the shifting control sequence XS2 are generated by equations (20) and (21), respectively:(20)RS3=modfloory+100×108,4,(21)XS2=modfloorx+100×108,BN3+1.Step 19: image blocks are revolved by the following equation:(22)postBlocki=imrotatepostBlocki,90×RS3i.Step 20: remove the repeated elements fromXS2 and then put the absent numbers at the end to generate a new sequence X2.Step 21: substitutepostBlockX2i withpostBlockX2BN3−i+1, wherei=1,2,…,BN3/2.Step 22: generate cipher imageCM by restructuring postBlock. The postprocessing process is finished.Step 23: output the cipher image, and the encryption algorithm is finished.


### 2.2. Decryption Algorithm

The decryption scheme as shown in Figure4 has two parts as encryption: the decryption algorithm part and data processing part. The decryption algorithm is the inverse process of the encryption algorithm and also has three processes: preprocessing process, decryption process, and postprocessing process. The decryption algorithm is shown in Algorithm 2.Figure 4
Decryption scheme.Algorithm 2: Decryption algorithm.
Input: cipher image CM1 and initial key [k1,k2,…,k9](1)
[M N]⟵size (CM1);(2)
PartitioningCM1 as 16 × 16 pixels image blocks:[preCBlock (1), preCBlock (2), …, preCBlock (BN4)], where BN4=M/16×N/16(3)
S3⟵SUMCM1Generate initial conditions of the hyperchaotic Lorenz system:x0⟵modk6×S3,80−40×k4+k1;y0⟵modk7×S3,80−40×k3+k2z0⟵modk8×S3,80+1×k2+k3;w0⟵modk9×S3,500−250×k1+k4(4)
Iterate equation (1) withx0,y0,z0,w0.Generate revolving control sequenceRS4⟵modfloory+100×108,4Generate shifting control sequenceXS3⟵modfloorx+100×108,BN4+1(5)
Generate a new sequenceX3 by removing repeated elements from XS3 and putting the absent numbers at the end.(6)
fori=1toBN4/2thenpreCBlockX3i↔preCBlockX3BN4−i+1end for(7)
fori=1toBN4thenpreCBlocki⟵imrotatepreCBlocki,−90×RS4iend for(8)
RestructurepreCBlock to an image matrix CM2(9)
PartitioningCM2 as 32 × 32 pixels’ image blocks:[decCBlock (1), decCBlock (2),…, decCBlock (BN5)], where BN5=M/32×N/32(10)
Generate system parameterp and initial condition t0 of skew tent map:p⟵modk1+k2+k3×k4+k5,1;t0⟵modk5+k6+k7×k8+k9,1(11)
Iterate equation (2) withp,t0.Generate revolving control sequenceRS5⟵modfloort+100×108,4Generate key sequenceKS1⟵modfloort×1012,256(12)
Reshape key sequenceKS1 to be a 32 × 32 blocks[keyCBlock (1), keyCBlock (2),…, keyCBlock (BN5)](13)
fori=BN5to2step−1thenpBlocki⟵decCBlocki⊕keyCBlocki⊕pBlocki−1end forpBlock1⟵decCBlock1⊕keyCBlock1(14)
fori=1toBN5thendecCBlocki⟵imrotatedecCBlocki,−90×RS5iend for(15)
RestructurepBlock to an image matrix CM3(16)
PartitioningCM3 as 64 × 64 pixels’ image blocks:[postCBlock (1), postCBlock (2), …, postCBlock (BN6)], where BN6=M/64×N/64(17)
S4⟵SUMCM3Generate initial conditions of the hyperchaotic Lorenz system:x0⟵modk1×S4,80−40×k2+k6;y0⟵modk2×S4,80−40×k3+k7;z0⟵modk3×S4,80+1×k4+k8;w0⟵modk4×S4,500−250×k5+k9;(18)
Iterate equation (1) with x0,y0,z0,w0.Generate revolving control sequenceRS6⟵modfloory+100×108,4.Generate shifting control sequenceXS4⟵modfloorx+100×108,BN6+1(19)
Generate a new sequenceX4 by removing repeated elements from XS4 and putting the absent numbers at the end.(20)
fori=1toBN6/2thenpostCBlockX4i↔postCBlockX4BN6−i+1end for(21)
fori=1toBN6thenpostCBlocki⟵imrotatepostCBlocki,−90×RS6iend for(22)
RestructurepostCBlock to an image matrix PMOutput: plain image PMThe detail description of the decryption algorithm as follows:Step 1: input cipher imageCM1 and initial key k1,k2,…,k9 into decryption algorithm, and the cipher image is supposed to be M × N 8 bit gray image.Note: inputted security keys are defined ask1,k2,…,k9∈0,1, which are used to generate parameter and initial values of the hyperchaotic Lorenz system and skew tent map. To avoid weak key problem [53], we require each input key to be 15 decimal places.Step 2: the preprocessing process begins. PartitionCM1 as 16 × 16 pixels image blocks, and there are BN4=M/16×N/16 blocks; and they are denoted as preCBlock (1), preCBlock (2), …, preCBlock (BN4).Step 3: add all the gray values of pixels of theCM1, and the summation is denoted as S3. The initial conditions of the hyperchaotic Lorenz system are generated by equations (23)–(26):(23)x0=modk6×S3,80−40×k4+k1,(24)y0=modk7×S3,80−40×k3+k2,(25)z0=modk8×S3,80+1×k2+k3,(26)w0=modk9×S3,500−250×k1+k4.Step 4: under initial conditions which are generated in Step 3, equation (1) is iterated by using the fourth-order Runge-Kutta method with 0.002 step size. The revolving control sequence RS4 and the shifting control sequence XS3 are generated by equations (27) and (28), respectively:(27)RS4=modfloory+100×108,4,(28)XS3=modfloorx+100×108,BN4+1.Step 5: remove the repeated elements fromXS3 and then put the absent numbers at the end to generate a new sequence X3.Step 6: substitutepreCBlockX3i withpreCBlockX3BN4−i+1, wherei=1,2,…,BN4/2.Step 7: image blocks are revolved by the following equation:(29)preCBlocki=imrotatepreCBlocki,−90×RS4i.Step 8: generate a new imageCM2 by restructuring preCBlock. The preprocessing process is finished.Step 9: the decryption process begins. PartitionCM2 as 32 × 32 pixels image blocks, and there are BN5=M/32×N/32 blocks; denote them as decCBlock (1), decCBlock (2),…, decCBlock (BN5).Step 10: generate system parameterp and initial condition t0 of skew tent map by equations (30) and (31), respectively:(30)p=modk1+k2+k3×k4+k5,1,(31)t0=modk5+k6+k7×k8+k9,1.Step 11: iterate equation (2) under system parameter p and initial condition t0. The revolving control sequence RS5 and the key sequence KS1 are generated by equations (32) and (33), respectively:(32)RS5=modfloort+100×108,4,(33)KS1=modfloort×1012,256.Step 12: reshape key sequenceKS1 to be BN5 key blocks with 32 × 32 and denote them as keyCBlock (1), keyCBlock (2),…, keyCBlock (BN5).Step 13: decrypt the image blocks by the following equation:(34)pBlocki=decCBlocki⊕keyCBlocki,i=1,pBlocki=decCBlocki⊕keyCBlocki⊕pBlocki−1,2≤i≤BN5.Step 14: revolve the image blocks by using the following equation:(35)decCBlocki=imrotatedecCBlocki,−90×RS5i.Step 15: generate a new imageCM3 by restructuring pBlock. The decryption process is finished.Step 16: the preprocessing process begins. PartitionCM3 as 64 × 64 pixels image blocks, and there are BN6=M/64×N/64 blocks; denote them as postCBlock (1), postCBlock (2), …, postCBlock (BN6).Step 17: add all the gray values of pixels of theCM3, and the summation is denoted as S4. The initial conditions of the hyperchaotic Lorenz system are generated by the following equations:(36)x0=modk1×S4,80−40×k2+k6,(37)y0=modk2×S4,80−40×k3+k7,(38)z0=modk3×S4,80+1×k4+k8,(39)w0=modk4×S4,500−250×k5+k9.Step 18: under initial conditions which are generated in Step 18, iterate equation (1) by using the fourth-order RungeKutta method with 0.002 step size. The revolving control sequence RS6 and the shifting control sequence XS4 are generated by equations (7) and (8), respectively:(40)RS6=modfloory+100×108,4,(41)XS4=modfloorx+100×108,BN6+1.Step 19: remove the repeated elements from XS4 and then put the absent numbers at the end to generate a new sequenceX4.Step 20: substitutepostCBlockX4i withpostCBlockX4BN6−i+1, where i=1,2,…,BN6/2.Step 21: revolve the image blocks by the following equation:(42)postCBlocki=imrotatepostCBlocki,−90×RS6i.Step 22: generate plain imagePM by restructuring postCBlock. The postprocessing process is finished.Step 23: output image matrixPM, and the decryption algorithm is finished.After decryption algorithm part, we also need to run data processing to get the plain image. The purpose of this section is to remove the pixels when added by data processing before the encryption part; the detailed description is as follows:Step 1: check the relationship of three pixels’ value which are located in (1, N), (M, 1), and (M, N). We denote these three pixel value asnn, nm, and nt, respectively. If nt is not equal to nn, nm, or nn + nm, then execute Step 2a. If nt is equal to nn, then execute Step 2b. If nt is equal to nm, then execute Step 2c. If nt is equal to nm + nn, then execute Step 2d (only one of the Steps 2a, 2b, 2c, and 2d can be executed)Step 2a: do nothing withPM, and the matrix DPM will be equal to PM.Step 2b: check some elements’ value in matrixPM which locate from rows 1 to M and columns N-nn + 1 to N. If all those elements’ value are equal to nn, then matrix DPM is equal to a part of matrix PM from rows 1 to M and columns 1 to N-nn. Otherwise, the matrix DPM is equal to PM.Step 2c: check some elements’ value in matrixPM which locate from rows M-nm + 1 to M and columns 1 to N. If all those elements’ value are equal to nm, then matrix DPM is equal to a part of matrix PM from rows 1 to M-nm and columns 1 to N. Otherwise, the matrix DPM is equal to PM.Step 2d: check some elements’ value in matrixPM which locate from rows M-nm + 1 to M and columns N-nn + 1 to N. If all those elements’ value are equal to nm + nm, then matrix DPM is equal to a part of matrix PM from rows 1 to M-nm and columns 1 to N-nn. Otherwise, the matrix DPM is equal to PM.Step 3: output the plain imageDPM, and the whole decryption scheme is finished.


## 2.1. Encryption Algorithm

The whole encryption scheme as shown in Figure2 has two parts: image data processing before encryption part and encryption algorithm part. The purpose of data processing before encryption is to make input images suitable for processing rules of encryption algorithms. The details are as follows:Step 1: we supposed the inputted imageIM is an M0 × N0 8 bit gray image and check whether M0 and N0 can be divided exactly by 64.Step 2: ifM0 cannot be divided exactly by 64, but N0 can, then execute Step 3a. If N0 cannot be divided exactly by 64, but M0 can, then execute Step 3b. And, if both M0 and N0 cannot be divided exactly by 64, then execute Step 3c (only one of the Steps 3a, 3b, and 3c can be executed).Step 3a: take an integer number between 0 and 63 and denote it asnm, to make M0 + nm to be divided exactly by 64. Build an nm × N0 matrix NBM whose each element is equal nm. Combine the two matrixes IM and NBM to be a new (M0 + nm) × N0 matrix, as shown in Figure 3.Step 3b: take an integer number between 0 and 63 and denote it asnn, to make N0 + nn to be divided exactly by 64. Build a M0 × nn matrix NBN whose each element is equal nn. Combine the two matrixes IM and NBN to be a new M0 × (N0 + nn) matrix, as shown in Figure 3.Step 3c: take an integer number between 0 and 63 and denote it asnm, to make M0 + nm to be divided exactly by 64. Take an integer number between 0 and 63 and denote it as nn, to make N0 + nn to be divided exactly by 64. Generate a new (M0 + nm) × (N0 + nn) matrix by IM, NBN, NBM, and NBT as Figure 3, where elements in matrix NBM are equal to nm, elements in matrix NBN are equal to nn, and elements in matrix NBT are equal to nm + nn.Step 4: finish the data processing with outputtingM × N image matrix IM1.Figure 2
Encryption scheme.Figure 3
The rules of matrix combination.
(a)(b)(c)After data processing, we put the outputted-image matrix into encryption algorithm. There are three processes in encryption algorithm: preprocessing process, encryption process, and postprocessing process. The encryption algorithm is shown in Algorithm1.Algorithm 1: Encryption algorithm.
Input: image IM1 and initial key [k1,k2,…,k9](1)
[M N] ⟵ size (IM1);(2)
PartitioningIM1 as 64 × 64 pixels image blocks[preBlock (1), preBlock (2), …, preBlock (BN1)], where BN1=M/64×N/64(3)
S1⟵SUMIM1Generate initial conditions of the hyperchaotic Lorenz system:x0⟵modk1×S1,80−40×k2+k6;y0⟵modk2×S1,80−40×k3+k7;z0⟵modk3×S1,80+1×k4+k8;w0⟵modk4×S1,500−250×k5+k9;(4)
Iterate equation (1) withx0,y0,z0,w0.Generate revolving control sequenceRS1⟵modfloory+100×108,4Generate shifting control sequenceXS1⟵modfloorx+100×108,BN1+1(5)
fori=1toBN1thenpreBlocki⟵imrotatepreBlocki,90×RS1iend for(6)
Generate a new sequenceX1 by removing repeated elements from XS1 and putting the absent numbers at the end.(7)
fori=1toBN1/2thenpreBlockX1i↔preBlockX1BN1−i+1end for(8)
RestructurepreBlock to an image matrix IM2(9)
PartitioningIM2 as 32 × 32 pixels’ image blocks[encBlock (1), encBlock (2),…, encBlock (BN2)], where BN2=M/32×N/32(10)
Generate system parameterp and initial condition t0 of skew tent map:p⟵modk1+k2+k3×k4+k5,1;t0⟵modk5+k6+k7×k8+k9,1(11)
Iterate equation (2) withp,t0.Generate revolving control sequenceRS2⟵modfloort+100×108,4Generate key sequenceKS⟵modfloort×1012,256(12)
Reshape key sequenceKS to be a 32 × 32 blocks[keyBlock (1), keyBlock (2),…, keyBlock (BN2)](13)
fori=1toBN2thenencBlocki⟵imrotateencBlocki,90×RS2iend for(14)
cBlock1⟵encBlock1⊕keyBlock1fori=2toBN2thencBlocki⟵encBlocki⊕keyBlocki⊕cBlocki−1end for(15)
RestructurecBlock to an image matrix IM3(16)
PartitioningIM3 as 16 × 16 pixels’ image blocks:[postBlock (1), postBlock (2),…, postBlock (BN3)], where BN3=M/16×N/16(17)
S2⟵SUMIM3Generate initial conditions of hyper-chaotic Lorenz system:x0⟵modk6×S2,80−40×k4+k1;y0⟵modk7×S2,80−40×k3+k2;z0⟵modk8×S2,80+1×k2+k3;w0⟵modk9×S2,500−250×k1+k4;(18)
Iterate equation (1) withx0,y0,z0,w0.Generate revolving control sequenceRS3⟵modfloory+100×108,4Generate shifting control sequenceXS2⟵modfloorx+100×108,BN3+1(19)
fori=1toBN3thenpostBlocki⟵imrotatepostBlocki,90×RS3iend for(20)
Generate a new sequenceX2 by removing repeated elements from XS2, and putting the absent numbers at the end.(21)
fori=1toBN3/2thenpostBlockX2i↔postBlockX2BN3−i+1end for(22)
RestructurepostBlock to an image matrix CMOutput: cipher image CMThe detailed description of encryption algorithm is as follows:Step 1: input the data processed imageIM1 and initial key k1,k2,…,k9 into the encryption algorithm.Step 2: the preprocessing process begins.IM1 is partitioned as 64 × 64 pixels image blocks, and there are BN1=M/64×N/64 blocks; they are denoted as preBlock (1), preBlock (2), …, preBlock (BN1).Step 3: add all the gray values of pixels of theIM1, and the summation is denoted as S1. The initial conditions of the hyperchaotic Lorenz system are generated by equations (3)–(6):(3)x0=modk1×S1,80−40×k2+k6,(4)y0=modk2×S1,80−40×k3+k7,(5)z0=modk3×S1,80+1×k4+k8,(6)w0=modk4×S1,500−250×k5+k9,where mod (a, b) means the remainder of a/b (similarly hereinafter).Step 4: under initial conditions which are generated in Step 3, equation (1) is iterated by using the fourth-order Runge-Kutta method with 0.002 step size. The revolving control sequence RS1 and the shifting control sequence XS1 are generated by equations (7) and (8), respectively:(7)RS1=modfloory+100×108,4,(8)XS1=modfloorx+100×108,BN1+1,Step 5: image blocks are revolved by using the following equation:(9)preBlocki=imrotatepreBlocki,90×RS1i,whereimrotateP,m means image P is rotated m degrees in the anticlockwise direction (similarly hereinafter) andiis the serial number of elements in the sequences preBlock and RS1.Step 6: remove the repeated elements fromXS1 and then put the absent numbers at the end to generate a new sequence X1.Step 7: substitutepreBlockX1i withpreBlockX1BN1−i+1, wherei=1,2,…,BN1/2.Step 8: generate a new imageIM2 by restructuring preBlock. The preprocessing process is finished.Step 9: The encryption process begins.IM2 is partitioned as 32 × 32 pixels image blocks, and there are BN2=M/32×N/32 blocks; they are denoted as encBlock (1), encBlock (2),…, encBlock (BN2).Step 10: generate system parameterp and initial condition t0 of skew tent map by equations (10) and (11), respectively:(10)p=modk1+k2+k3×k4+k5,1,(11)t0=modk5+k6+k7×k8+k9,1,Step 11: equation (2) was iterated under system parameter p and initial condition t0. The revolving control sequence RS2 and the key sequence KS are generated by equations (12) and (13), respectively:(12)RS2=modfloort+100×108,4,(13)KS=modfloort×1012,256.Step 12: reshape key sequence KS to be BN2 key blocks with 32 × 32 and denote them askeyBlock (1), keyBlock (2),…, keyBlock (BN2).Step 13: Revolve the image blocks by using the following equation:(14)encBlocki=imrotateencBlocki,90×RS2i.Step 14: encrypt image blocks by the following equation:(15)cBlocki=encBlocki⊕keyBlocki,i=1,cBlocki=encBlocki⊕keyBlocki⊕cBlocki−1,2≤i≤BN2.Step 15: generate a new imageIM3 by restructuring cBlock. The encryption process is finished.Step 16: the postprocessing process begins.IM3 is partitioned as 16 × 16 pixels image blocks, and there are BN3=M/16×N/16 blocks; they are denoted as postBlock (1), postBlock (2), …, postBlock (BN3).Step 17: add all the gray values of pixels of theIM3, and the summation is denoted as S2. The initial conditions of the hyperchaotic Lorenz system are generated by the following equations:(16)x0=modk6×S2,80−40×k4+k1,(17)y0=modk7×S2,80−40×k3+k2,(18)z0=modk8×S2,80+1×k2+k3,(19)w0=modk9×S2,500−250×k1+k4.Step 18: under initial conditions which are generated in Step 17, equation (1) is iterated by using the fourth-order RungeKutta method with 0.002 step size. The revolving control sequence RS3 and the shifting control sequence XS2 are generated by equations (20) and (21), respectively:(20)RS3=modfloory+100×108,4,(21)XS2=modfloorx+100×108,BN3+1.Step 19: image blocks are revolved by the following equation:(22)postBlocki=imrotatepostBlocki,90×RS3i.Step 20: remove the repeated elements fromXS2 and then put the absent numbers at the end to generate a new sequence X2.Step 21: substitutepostBlockX2i withpostBlockX2BN3−i+1, wherei=1,2,…,BN3/2.Step 22: generate cipher imageCM by restructuring postBlock. The postprocessing process is finished.Step 23: output the cipher image, and the encryption algorithm is finished.


## 2.2. Decryption Algorithm

The decryption scheme as shown in Figure4 has two parts as encryption: the decryption algorithm part and data processing part. The decryption algorithm is the inverse process of the encryption algorithm and also has three processes: preprocessing process, decryption process, and postprocessing process. The decryption algorithm is shown in Algorithm 2.Figure 4
Decryption scheme.Algorithm 2: Decryption algorithm.
Input: cipher image CM1 and initial key [k1,k2,…,k9](1)
[M N]⟵size (CM1);(2)
PartitioningCM1 as 16 × 16 pixels image blocks:[preCBlock (1), preCBlock (2), …, preCBlock (BN4)], where BN4=M/16×N/16(3)
S3⟵SUMCM1Generate initial conditions of the hyperchaotic Lorenz system:x0⟵modk6×S3,80−40×k4+k1;y0⟵modk7×S3,80−40×k3+k2z0⟵modk8×S3,80+1×k2+k3;w0⟵modk9×S3,500−250×k1+k4(4)
Iterate equation (1) withx0,y0,z0,w0.Generate revolving control sequenceRS4⟵modfloory+100×108,4Generate shifting control sequenceXS3⟵modfloorx+100×108,BN4+1(5)
Generate a new sequenceX3 by removing repeated elements from XS3 and putting the absent numbers at the end.(6)
fori=1toBN4/2thenpreCBlockX3i↔preCBlockX3BN4−i+1end for(7)
fori=1toBN4thenpreCBlocki⟵imrotatepreCBlocki,−90×RS4iend for(8)
RestructurepreCBlock to an image matrix CM2(9)
PartitioningCM2 as 32 × 32 pixels’ image blocks:[decCBlock (1), decCBlock (2),…, decCBlock (BN5)], where BN5=M/32×N/32(10)
Generate system parameterp and initial condition t0 of skew tent map:p⟵modk1+k2+k3×k4+k5,1;t0⟵modk5+k6+k7×k8+k9,1(11)
Iterate equation (2) withp,t0.Generate revolving control sequenceRS5⟵modfloort+100×108,4Generate key sequenceKS1⟵modfloort×1012,256(12)
Reshape key sequenceKS1 to be a 32 × 32 blocks[keyCBlock (1), keyCBlock (2),…, keyCBlock (BN5)](13)
fori=BN5to2step−1thenpBlocki⟵decCBlocki⊕keyCBlocki⊕pBlocki−1end forpBlock1⟵decCBlock1⊕keyCBlock1(14)
fori=1toBN5thendecCBlocki⟵imrotatedecCBlocki,−90×RS5iend for(15)
RestructurepBlock to an image matrix CM3(16)
PartitioningCM3 as 64 × 64 pixels’ image blocks:[postCBlock (1), postCBlock (2), …, postCBlock (BN6)], where BN6=M/64×N/64(17)
S4⟵SUMCM3Generate initial conditions of the hyperchaotic Lorenz system:x0⟵modk1×S4,80−40×k2+k6;y0⟵modk2×S4,80−40×k3+k7;z0⟵modk3×S4,80+1×k4+k8;w0⟵modk4×S4,500−250×k5+k9;(18)
Iterate equation (1) with x0,y0,z0,w0.Generate revolving control sequenceRS6⟵modfloory+100×108,4.Generate shifting control sequenceXS4⟵modfloorx+100×108,BN6+1(19)
Generate a new sequenceX4 by removing repeated elements from XS4 and putting the absent numbers at the end.(20)
fori=1toBN6/2thenpostCBlockX4i↔postCBlockX4BN6−i+1end for(21)
fori=1toBN6thenpostCBlocki⟵imrotatepostCBlocki,−90×RS6iend for(22)
RestructurepostCBlock to an image matrix PMOutput: plain image PMThe detail description of the decryption algorithm as follows:Step 1: input cipher imageCM1 and initial key k1,k2,…,k9 into decryption algorithm, and the cipher image is supposed to be M × N 8 bit gray image.Note: inputted security keys are defined ask1,k2,…,k9∈0,1, which are used to generate parameter and initial values of the hyperchaotic Lorenz system and skew tent map. To avoid weak key problem [53], we require each input key to be 15 decimal places.Step 2: the preprocessing process begins. PartitionCM1 as 16 × 16 pixels image blocks, and there are BN4=M/16×N/16 blocks; and they are denoted as preCBlock (1), preCBlock (2), …, preCBlock (BN4).Step 3: add all the gray values of pixels of theCM1, and the summation is denoted as S3. The initial conditions of the hyperchaotic Lorenz system are generated by equations (23)–(26):(23)x0=modk6×S3,80−40×k4+k1,(24)y0=modk7×S3,80−40×k3+k2,(25)z0=modk8×S3,80+1×k2+k3,(26)w0=modk9×S3,500−250×k1+k4.Step 4: under initial conditions which are generated in Step 3, equation (1) is iterated by using the fourth-order Runge-Kutta method with 0.002 step size. The revolving control sequence RS4 and the shifting control sequence XS3 are generated by equations (27) and (28), respectively:(27)RS4=modfloory+100×108,4,(28)XS3=modfloorx+100×108,BN4+1.Step 5: remove the repeated elements fromXS3 and then put the absent numbers at the end to generate a new sequence X3.Step 6: substitutepreCBlockX3i withpreCBlockX3BN4−i+1, wherei=1,2,…,BN4/2.Step 7: image blocks are revolved by the following equation:(29)preCBlocki=imrotatepreCBlocki,−90×RS4i.Step 8: generate a new imageCM2 by restructuring preCBlock. The preprocessing process is finished.Step 9: the decryption process begins. PartitionCM2 as 32 × 32 pixels image blocks, and there are BN5=M/32×N/32 blocks; denote them as decCBlock (1), decCBlock (2),…, decCBlock (BN5).Step 10: generate system parameterp and initial condition t0 of skew tent map by equations (30) and (31), respectively:(30)p=modk1+k2+k3×k4+k5,1,(31)t0=modk5+k6+k7×k8+k9,1.Step 11: iterate equation (2) under system parameter p and initial condition t0. The revolving control sequence RS5 and the key sequence KS1 are generated by equations (32) and (33), respectively:(32)RS5=modfloort+100×108,4,(33)KS1=modfloort×1012,256.Step 12: reshape key sequenceKS1 to be BN5 key blocks with 32 × 32 and denote them as keyCBlock (1), keyCBlock (2),…, keyCBlock (BN5).Step 13: decrypt the image blocks by the following equation:(34)pBlocki=decCBlocki⊕keyCBlocki,i=1,pBlocki=decCBlocki⊕keyCBlocki⊕pBlocki−1,2≤i≤BN5.Step 14: revolve the image blocks by using the following equation:(35)decCBlocki=imrotatedecCBlocki,−90×RS5i.Step 15: generate a new imageCM3 by restructuring pBlock. The decryption process is finished.Step 16: the preprocessing process begins. PartitionCM3 as 64 × 64 pixels image blocks, and there are BN6=M/64×N/64 blocks; denote them as postCBlock (1), postCBlock (2), …, postCBlock (BN6).Step 17: add all the gray values of pixels of theCM3, and the summation is denoted as S4. The initial conditions of the hyperchaotic Lorenz system are generated by the following equations:(36)x0=modk1×S4,80−40×k2+k6,(37)y0=modk2×S4,80−40×k3+k7,(38)z0=modk3×S4,80+1×k4+k8,(39)w0=modk4×S4,500−250×k5+k9.Step 18: under initial conditions which are generated in Step 18, iterate equation (1) by using the fourth-order RungeKutta method with 0.002 step size. The revolving control sequence RS6 and the shifting control sequence XS4 are generated by equations (7) and (8), respectively:(40)RS6=modfloory+100×108,4,(41)XS4=modfloorx+100×108,BN6+1.Step 19: remove the repeated elements from XS4 and then put the absent numbers at the end to generate a new sequenceX4.Step 20: substitutepostCBlockX4i withpostCBlockX4BN6−i+1, where i=1,2,…,BN6/2.Step 21: revolve the image blocks by the following equation:(42)postCBlocki=imrotatepostCBlocki,−90×RS6i.Step 22: generate plain imagePM by restructuring postCBlock. The postprocessing process is finished.Step 23: output image matrixPM, and the decryption algorithm is finished.After decryption algorithm part, we also need to run data processing to get the plain image. The purpose of this section is to remove the pixels when added by data processing before the encryption part; the detailed description is as follows:Step 1: check the relationship of three pixels’ value which are located in (1, N), (M, 1), and (M, N). We denote these three pixel value asnn, nm, and nt, respectively. If nt is not equal to nn, nm, or nn + nm, then execute Step 2a. If nt is equal to nn, then execute Step 2b. If nt is equal to nm, then execute Step 2c. If nt is equal to nm + nn, then execute Step 2d (only one of the Steps 2a, 2b, 2c, and 2d can be executed)Step 2a: do nothing withPM, and the matrix DPM will be equal to PM.Step 2b: check some elements’ value in matrixPM which locate from rows 1 to M and columns N-nn + 1 to N. If all those elements’ value are equal to nn, then matrix DPM is equal to a part of matrix PM from rows 1 to M and columns 1 to N-nn. Otherwise, the matrix DPM is equal to PM.Step 2c: check some elements’ value in matrixPM which locate from rows M-nm + 1 to M and columns 1 to N. If all those elements’ value are equal to nm, then matrix DPM is equal to a part of matrix PM from rows 1 to M-nm and columns 1 to N. Otherwise, the matrix DPM is equal to PM.Step 2d: check some elements’ value in matrixPM which locate from rows M-nm + 1 to M and columns N-nn + 1 to N. If all those elements’ value are equal to nm + nm, then matrix DPM is equal to a part of matrix PM from rows 1 to M-nm and columns 1 to N-nn. Otherwise, the matrix DPM is equal to PM.Step 3: output the plain imageDPM, and the whole decryption scheme is finished.


## 3. Simulation and Security Analysis

In this section, we evaluated our proposed scheme by software simulation running in MATLAB 2015b. The system parameters which are given in equation (1) are a = 10, b = 8/3, c = 28, and γ = -1, and the inputted keys are k1 = 0.132312432152369, k2 = 0.723357645512358, k3 = 0.234342634695632, k4 = 0.432313435498574, k5 = 0.832312114474569, k6 = 0.642312345436958, k7 = 0.532345341689841, k8 = 0.932378647316581, and k9 = 0.232373784321657. The test images are 512 × 512 pixels with 8 bit gray level, and the simulation results are shown in Figure 5. In following subsections, many commonly used security analyses will be discussed.Figure 5
The simulation results of encryption and decryption: (a, d) plain images; (b, e) cipher images; (c, f) decrypted images.
(a)(b)(c)(d)(e)(f)


### 3.1. Key Space Analysis

The key space of a cryptosystem is the very important factor on security when brute-force attack is happening. In our scheme, the cryptosystem needs input k1, k2, k3, k4, k5, k6, k7, k8, and k9∈0,1 as security key. If we supposed the change step of each inputted key are10−15, then the total key space is calculated as S=1059≈2455, which is larger enough on security [4–6].


### 3.2. Differential Attack

To resist differential attack, an image cryptosystem is required to have a good plaintext sensitivity. If the inputted image has only one-bit changed, the corresponding encrypted image is totally different, then the cryptosystem is considered to have enough plaintext sensitivity to resist differential attack. To measure the difference between two image, NPCR (number of pixels change rate) and UACI (unified average changing intensity) are put forward [8–11].The NPCR and UACI are given by(43)NPCR=∑i=1M∑j=1NDi,jM×N×100%,Di,j=0,C1i,j=C2i,j,1,C1i,j≠C2i,j,UACI=1M×N∑i=1M∑j=1NC1i,j−C2i,j255×100%,where C1i,j and C2i,j represent two cipher-images obtained from encrypting two one-pixel different images. M and N represent the height and width of images, respectively.The NPCR means the percentage of different pixels at same position between two corresponding encrypted images which are obtained by two images with one-bit difference, and the UACI represents the average intensity of the difference between two same position’s pixels which are obtained from two cipher images.In order to evaluate whether the NPCR and UACI images passed the tests, the critical values of NPCR and UACI are defined [54, 55]. For a significance levelα, a critical NPCR score Nα∗ is obtained by(44)Nα∗=Q−Φ−1αQ/HQ+1,where H is the total number of pixels in an image and Q represents the largest allowed pixel value in the image. An image encryption scheme can be considered to pass the NPCR if the obtained NPCR is larger than Nα∗.The critical UACI intervalUα∗−,Uα∗+ can be calculated by(45)Uα∗−=μU−Φ−1α2σU,Uα∗+=μU+Φ−1α2σU,where(46)μU=Q+23Q+3,σU=Q+2Q2+2Q+318Q+12QH.If the obtained UACI falls into rangeUα∗−,Uα∗+, the corresponding encryption algorithm is considered to have a high security level. For images with size 512 × 512, when we set the significance level α=0.05, the critical value of NPCR is N0.05∗=99.5893% and U0.05∗−,U0.05∗+=33.3730%,33.5541%.In this section, the NPCR and UACI are calculated by two cipher images obtained by encrypting two images, the one obtained by random changing one pixel of another. We tested NPCR and UACI 100 times, and the results are shown in Table1. According to the results in Table 1, it is no doubt that our cryptosystem is plaintext sensitive enough on resisting the differential attack.Table 1
The results of NPCR and UACI.
ImageNPCR (%)UACI (%)MinMaxAverageStd.N0.05∗ 99.5893MinMaxAverageU0.05∗+=33.5541Lena99.593599.632699.61610.0123Pass33.391833.571733.4709PassBaboon99.594399.634299.61090.0129Pass33.393233.591333.4792PassPepper99.591299.639199.60900.0121Pass33.398533.557433.4664PassAirplane99.596299.632399.60950.0131Pass33.380533.535333.4593PassBoat99.593199.639999.61010.0147Pass33.374633.554633.4654Pass


### 3.3. Statistical Analysis

#### 3.3.1. Histogram Analysis

If the histogram of the corresponding cipher image shows uniform distribution, the cryptosystem has good ability on resisting the statistical attack. In other words, there is no obvious statistical distinction of the count of pixels in each gray level. The distribution of plain images’ histograms and cipher images’ histograms is shown in Figure6. We use the chi-squared test to evaluate the uniformity of encrypted image’s histogram [43, 56]. When we set the significance level α=0.05, the chi-squared test results of cipher images is given in Table 2. The histogram analysis result shows that our proposed cryptosystem has good diffused property on resisting the statistical attack.Figure 6
Histograms of (a, c) plain images ”Lena” and “Baboon” and (b, d) their corresponding cipher images.
(a)(b)(c)(d)Table 2
Histogram uniformity evaluation by the chi-squared test.
ImagesP valueDecision (H = 0 or 1) α=0.05Lena0.18881410; AcceptBaboon0.11172460; Accept


#### 3.3.2. Correlation Coefficient

As we all know, the adjacent pixels in plain image have a strong correlation. However, there is less correlation among adjacent pixels in cipher image [5–10].The correlation coefficient is given by(47)rab=cova,bDaDb,where a and b are two adjacent pixels gray values, and(48)Ea=1N∑i=1Nai,Da=1N∑i=1Nai−Ea2,cova,b=1N∑i=1Nai−Eabi−Eb.In this test, 10000 pairs of adjacent pixels are randomly selected for calculating the correlation coefficient. The correlation coefficient results are shown in Table2, and the correlation distribution of image “Lena” is shown in Figure 7 and Table 3Figure 7
Correlation distributions of the (ac) plain image and (df) cipher image. (a) Figure 4(d) in the horizontal direction, (b) Figure 4(e) in the vertical direction, (c) Figure 4(f) in the diagonal direction.
(a)(b)(c)(d)(e)(f)Table 3
Correlation coefficients.
ImagesHorizontalVerticalDiagonalPlainCipherPlainCipherPlainCipherLena0.9845−0.00130.96990.00050.95850.0016Baboon0.76080.00320.86180.00120.7238−0.0004


### 3.4. Key Sensitivity Analysis

The key sensitivity analysis is considered to be a measurement of the diffusion property of the cryptosystem. In our proposed scheme, there are nine inputted keys: k1, k2, k3, k4, k5, k6, k7, k8, and k9∈0,1. In this test, the plain image ‘Lena’ is first time encrypted with initial keys which are assigned at the beginning of Section 3, the second time encrypted with modifying k1’=k1+10−15, and the third time encrypted with modifying k2’=k2+10−15. And then, the differences between the ciphers encrypted by modified keys and initial keys are figured. The test result is shown in Figure 8, and the NPCR and UACI between ciphers generated by different keys are shown in Table 4. The result of test clearly shows that our proposed cryptosystem has good key sensitivity on resisting the exhaustive attack.Figure 8
Key sensitivity analysis in encryption. (a) Original image. (b) Encrypted image with initial keys. (c) Encrypted image with modifyingk1’=k1+10−15. (d) Cipher image with modifying k2’=k2+10−15. (e) Image of |b-c|. (f) image of |b-d|.
(a)(b)(c)(d)(e)(f)Table 4
Results of NPCR and UACI between ciphers.
CiphersNPCR (%)N0.05∗ 99.5893UACI (%)U0.05∗−=33.3730U0.05∗+=33.5541Figures8(b) and 8(c)99.6063Pass33.4369PassFigures8(b) and 8(d)99.6120Pass33.4494Pass


### 3.5. Information Entropy Analysis

#### 3.5.1. Global Information Entropy

The global information entropy is used to indicate the uncertainty degree of image information [9, 57]. The global information entropy can be calculated by(49)Hs=∑i=02K−1Psilog21Psi,where K is the image bit depth, e.g., K = 8, for an 8 bit gray image, and Psi means the probability ofsi. The ideal case of 8 bit gray image information entropy is Hs=8 bits. The entropy test result is shown in Table 5. According to the test results, our entropies are very close to the ideal value 8. Thus, our cryptosystem shows good performance on resisting the entropy attack.Table 5
The global entropy test results.
ImagesLenaBaboonPepperAirplaneBoatEntropy7.99934207.99930057.99938247.99932697.9994635


#### 3.5.2. Local Shannon Entropy

Global Shannon entropy reflects the total randomness of image, and it has certain limitations in some occasions. Therefore, local Shannon entropy (LSE) was proposed by Wu et al. [58, 59]. To measure local entropy, we first randomly select k nonoverlapping image blocks B1,B2,…,Bk with TB pixels from image I; then, the LSE is given by(50)Hk,TB¯I=∑i=1kHBik,where HBi is the Shannon entropy of image blockBi and can be calculated by equation (49).For our tests, we select parametersk,TB=30,1936, and then the ideal value of LSE is 7.902469317. The significance α=0.05, and we consider the tests passed when the test LSE values fall into (7.901901305, 7.903037329). The LSE test results are shown in Table 6.Table 6
The local Shannon entropy test results.
ImagesLenaBaboonPepperAirplaneBoatLSE7.902783177.902945347.902193427.902652127.90301576(7.901901305, 7.903037329)PassPassPassPassPass


### 3.6. NIST SP800-22 Tests

In our scheme, control sequences are generating by the hyperchaotic Lorenz system (HCLS) and skew tent map (STM). Therefore, the randomness of iterative sequences which generated by these two chaotic system is directly affecting the performance of the image cryptosystem. Here, we use SP800-22 [60] to test the randomness of binary sequences generated by the hyperchaotic Lorenz system and skew tent map. The test results are shown in Table 7.Table 7
NIST SP800-22 test results.
Test itemsHCLSResultSTMResultP value≥0.01P value≥0.01Frequency0.43304Pass0.32631PassBlock frequency0.93008Pass0.88263PassRuns0.86392Pass0.75258PassLongest runs0.97571Pass0.89365PassBinary matrix rank0.50984Pass0.71245PassDiscrete Fourier transform0.16365Pass0.32123PassNonoverlapping template0.28953Pass0.12545PassOverlapping template0.57548Pass0.36585PassMaurer’s universal statistical0.38361Pass0.45852PassLinear complexity0.63612Pass0.23562PassSerial∗0.13252Pass0.31142PassApproximate entropy0.83427Pass0.63253PassCumulative sums∗0.99253Pass0.85652PassRandom excursions∗0.71533Pass0.35262PassRandom excursions variant∗0.56579Pass0.45253Pass∗The average values of multiple tests.


### 3.7. Performance Analysis and Comparisons

The simulation and tests are implemented in MATLAB R2015b, which is worked on a MacBook with Inter (R) Core i7, CPU 1.4 GHz, and 16 GB memory, and the software running system is macOS (High Sierra 10.13.1). As we all known, there are many factors affecting the speed of encryption and decryption except algorithm itself, such as operating system, hardware environment, programming language, and code optimization. Thus, in this performance comparison, we not only give the comparison of time cost but also give the comparison of other correlation factors. Furthermore, we also give the comparison of encryption throughput and number of cycles to make a more intuitive performance description. The speed analysis result is shown in Table8, and the security comparisons with other works are shown in Table 9. The speed test and the comparisons show that our proposed cryptosystem not only has good speed on encryption but also has good security performance.Table 8
Speed comparison.
AlgorithmsCPU speed (GHz)Memory size (GB)Program languageEncryption time (ms) (512 × 512)Encryption throughput (MBps)Number of cyclesOur work1.416Matlab1381.8111682Ref [61]2.54Matlab6130.4085846Ref [42]3.08C1391.7991591Ref [62]2.716C1661.5061710Ref [28]3.08C3900.6414463Ref [6]2.68Matlab4840.5174800Ref [63]2.48C2031.2321859Ref [41]2.48C852.941778Table 9
Security comparison.
AlgorithmsCipher correlation coefficientsGlobal entropyLocal entropyKey spacePlaintext sensitivityHorizontalVerticalDiagonalNPCR (%)UACI (%)Our work−0.00130.00050.00167.99937.902783245599.6133.47Ref. [28]0.00100.00540.00567.9992-252099.6033.50Ref. [15]−0.03310.00570.01697.9972-29099.6133.40Ref. [10]0.00640.00780.00297.9993-1015 × 225699.5933.46Ref. [18]0.00260.00190.00287.99927.902552264099.6033.48Ref. [40]−0.028870.014590.036587.9993-258299.6233.41Ref. [41]0.0019870.00449−0.00877.99937.901558257299.6333.48Ref. [42]0.01190.00920.00137.9993-1030 × 238499.6433.61Ref. [44]0.0030.00180.00067.9977.90241011299.6233.44Ref. [45]0.001930.00180.003427.998-1023899.6833.47Ref. [46]−0.0017−0.0084−0.00197.99757.9051231299.6233.50Ref. [47]−0.000026−0.00031−0.021-7.9028-99.9633.69Ref. [49]0.004851−0.0020−0.002707.99937.902481225099.56533.450Ref. [50]0.000580.00061−0.00037.9974-253299.6033.49


## 3.1. Key Space Analysis

The key space of a cryptosystem is the very important factor on security when brute-force attack is happening. In our scheme, the cryptosystem needs input k1, k2, k3, k4, k5, k6, k7, k8, and k9∈0,1 as security key. If we supposed the change step of each inputted key are10−15, then the total key space is calculated as S=1059≈2455, which is larger enough on security [4–6].


## 3.2. Differential Attack

To resist differential attack, an image cryptosystem is required to have a good plaintext sensitivity. If the inputted image has only one-bit changed, the corresponding encrypted image is totally different, then the cryptosystem is considered to have enough plaintext sensitivity to resist differential attack. To measure the difference between two image, NPCR (number of pixels change rate) and UACI (unified average changing intensity) are put forward [8–11].The NPCR and UACI are given by(43)NPCR=∑i=1M∑j=1NDi,jM×N×100%,Di,j=0,C1i,j=C2i,j,1,C1i,j≠C2i,j,UACI=1M×N∑i=1M∑j=1NC1i,j−C2i,j255×100%,where C1i,j and C2i,j represent two cipher-images obtained from encrypting two one-pixel different images. M and N represent the height and width of images, respectively.The NPCR means the percentage of different pixels at same position between two corresponding encrypted images which are obtained by two images with one-bit difference, and the UACI represents the average intensity of the difference between two same position’s pixels which are obtained from two cipher images.In order to evaluate whether the NPCR and UACI images passed the tests, the critical values of NPCR and UACI are defined [54, 55]. For a significance levelα, a critical NPCR score Nα∗ is obtained by(44)Nα∗=Q−Φ−1αQ/HQ+1,where H is the total number of pixels in an image and Q represents the largest allowed pixel value in the image. An image encryption scheme can be considered to pass the NPCR if the obtained NPCR is larger than Nα∗.The critical UACI intervalUα∗−,Uα∗+ can be calculated by(45)Uα∗−=μU−Φ−1α2σU,Uα∗+=μU+Φ−1α2σU,where(46)μU=Q+23Q+3,σU=Q+2Q2+2Q+318Q+12QH.If the obtained UACI falls into rangeUα∗−,Uα∗+, the corresponding encryption algorithm is considered to have a high security level. For images with size 512 × 512, when we set the significance level α=0.05, the critical value of NPCR is N0.05∗=99.5893% and U0.05∗−,U0.05∗+=33.3730%,33.5541%.In this section, the NPCR and UACI are calculated by two cipher images obtained by encrypting two images, the one obtained by random changing one pixel of another. We tested NPCR and UACI 100 times, and the results are shown in Table1. According to the results in Table 1, it is no doubt that our cryptosystem is plaintext sensitive enough on resisting the differential attack.Table 1
The results of NPCR and UACI.
ImageNPCR (%)UACI (%)MinMaxAverageStd.N0.05∗ 99.5893MinMaxAverageU0.05∗+=33.5541Lena99.593599.632699.61610.0123Pass33.391833.571733.4709PassBaboon99.594399.634299.61090.0129Pass33.393233.591333.4792PassPepper99.591299.639199.60900.0121Pass33.398533.557433.4664PassAirplane99.596299.632399.60950.0131Pass33.380533.535333.4593PassBoat99.593199.639999.61010.0147Pass33.374633.554633.4654Pass


## 3.3. Statistical Analysis

### 3.3.1. Histogram Analysis

If the histogram of the corresponding cipher image shows uniform distribution, the cryptosystem has good ability on resisting the statistical attack. In other words, there is no obvious statistical distinction of the count of pixels in each gray level. The distribution of plain images’ histograms and cipher images’ histograms is shown in Figure6. We use the chi-squared test to evaluate the uniformity of encrypted image’s histogram [43, 56]. When we set the significance level α=0.05, the chi-squared test results of cipher images is given in Table 2. The histogram analysis result shows that our proposed cryptosystem has good diffused property on resisting the statistical attack.Figure 6
Histograms of (a, c) plain images ”Lena” and “Baboon” and (b, d) their corresponding cipher images.
(a)(b)(c)(d)Table 2
Histogram uniformity evaluation by the chi-squared test.
ImagesP valueDecision (H = 0 or 1) α=0.05Lena0.18881410; AcceptBaboon0.11172460; Accept


### 3.3.2. Correlation Coefficient

As we all know, the adjacent pixels in plain image have a strong correlation. However, there is less correlation among adjacent pixels in cipher image [5–10].The correlation coefficient is given by(47)rab=cova,bDaDb,where a and b are two adjacent pixels gray values, and(48)Ea=1N∑i=1Nai,Da=1N∑i=1Nai−Ea2,cova,b=1N∑i=1Nai−Eabi−Eb.In this test, 10000 pairs of adjacent pixels are randomly selected for calculating the correlation coefficient. The correlation coefficient results are shown in Table2, and the correlation distribution of image “Lena” is shown in Figure 7 and Table 3Figure 7
Correlation distributions of the (ac) plain image and (df) cipher image. (a) Figure 4(d) in the horizontal direction, (b) Figure 4(e) in the vertical direction, (c) Figure 4(f) in the diagonal direction.
(a)(b)(c)(d)(e)(f)Table 3
Correlation coefficients.
ImagesHorizontalVerticalDiagonalPlainCipherPlainCipherPlainCipherLena0.9845−0.00130.96990.00050.95850.0016Baboon0.76080.00320.86180.00120.7238−0.0004


## 3.3.1. Histogram Analysis

If the histogram of the corresponding cipher image shows uniform distribution, the cryptosystem has good ability on resisting the statistical attack. In other words, there is no obvious statistical distinction of the count of pixels in each gray level. The distribution of plain images’ histograms and cipher images’ histograms is shown in Figure6. We use the chi-squared test to evaluate the uniformity of encrypted image’s histogram [43, 56]. When we set the significance level α=0.05, the chi-squared test results of cipher images is given in Table 2. The histogram analysis result shows that our proposed cryptosystem has good diffused property on resisting the statistical attack.Figure 6
Histograms of (a, c) plain images ”Lena” and “Baboon” and (b, d) their corresponding cipher images.
(a)(b)(c)(d)Table 2
Histogram uniformity evaluation by the chi-squared test.
ImagesP valueDecision (H = 0 or 1) α=0.05Lena0.18881410; AcceptBaboon0.11172460; Accept


## 3.3.2. Correlation Coefficient

As we all know, the adjacent pixels in plain image have a strong correlation. However, there is less correlation among adjacent pixels in cipher image [5–10].The correlation coefficient is given by(47)rab=cova,bDaDb,where a and b are two adjacent pixels gray values, and(48)Ea=1N∑i=1Nai,Da=1N∑i=1Nai−Ea2,cova,b=1N∑i=1Nai−Eabi−Eb.In this test, 10000 pairs of adjacent pixels are randomly selected for calculating the correlation coefficient. The correlation coefficient results are shown in Table2, and the correlation distribution of image “Lena” is shown in Figure 7 and Table 3Figure 7
Correlation distributions of the (ac) plain image and (df) cipher image. (a) Figure 4(d) in the horizontal direction, (b) Figure 4(e) in the vertical direction, (c) Figure 4(f) in the diagonal direction.
(a)(b)(c)(d)(e)(f)Table 3
Correlation coefficients.
ImagesHorizontalVerticalDiagonalPlainCipherPlainCipherPlainCipherLena0.9845−0.00130.96990.00050.95850.0016Baboon0.76080.00320.86180.00120.7238−0.0004


## 3.4. Key Sensitivity Analysis

The key sensitivity analysis is considered to be a measurement of the diffusion property of the cryptosystem. In our proposed scheme, there are nine inputted keys: k1, k2, k3, k4, k5, k6, k7, k8, and k9∈0,1. In this test, the plain image ‘Lena’ is first time encrypted with initial keys which are assigned at the beginning of Section 3, the second time encrypted with modifying k1’=k1+10−15, and the third time encrypted with modifying k2’=k2+10−15. And then, the differences between the ciphers encrypted by modified keys and initial keys are figured. The test result is shown in Figure 8, and the NPCR and UACI between ciphers generated by different keys are shown in Table 4. The result of test clearly shows that our proposed cryptosystem has good key sensitivity on resisting the exhaustive attack.Figure 8
Key sensitivity analysis in encryption. (a) Original image. (b) Encrypted image with initial keys. (c) Encrypted image with modifyingk1’=k1+10−15. (d) Cipher image with modifying k2’=k2+10−15. (e) Image of |b-c|. (f) image of |b-d|.
(a)(b)(c)(d)(e)(f)Table 4
Results of NPCR and UACI between ciphers.
CiphersNPCR (%)N0.05∗ 99.5893UACI (%)U0.05∗−=33.3730U0.05∗+=33.5541Figures8(b) and 8(c)99.6063Pass33.4369PassFigures8(b) and 8(d)99.6120Pass33.4494Pass


## 3.5. Information Entropy Analysis

### 3.5.1. Global Information Entropy

The global information entropy is used to indicate the uncertainty degree of image information [9, 57]. The global information entropy can be calculated by(49)Hs=∑i=02K−1Psilog21Psi,where K is the image bit depth, e.g., K = 8, for an 8 bit gray image, and Psi means the probability ofsi. The ideal case of 8 bit gray image information entropy is Hs=8 bits. The entropy test result is shown in Table 5. According to the test results, our entropies are very close to the ideal value 8. Thus, our cryptosystem shows good performance on resisting the entropy attack.Table 5
The global entropy test results.
ImagesLenaBaboonPepperAirplaneBoatEntropy7.99934207.99930057.99938247.99932697.9994635


### 3.5.2. Local Shannon Entropy

Global Shannon entropy reflects the total randomness of image, and it has certain limitations in some occasions. Therefore, local Shannon entropy (LSE) was proposed by Wu et al. [58, 59]. To measure local entropy, we first randomly select k nonoverlapping image blocks B1,B2,…,Bk with TB pixels from image I; then, the LSE is given by(50)Hk,TB¯I=∑i=1kHBik,where HBi is the Shannon entropy of image blockBi and can be calculated by equation (49).For our tests, we select parametersk,TB=30,1936, and then the ideal value of LSE is 7.902469317. The significance α=0.05, and we consider the tests passed when the test LSE values fall into (7.901901305, 7.903037329). The LSE test results are shown in Table 6.Table 6
The local Shannon entropy test results.
ImagesLenaBaboonPepperAirplaneBoatLSE7.902783177.902945347.902193427.902652127.90301576(7.901901305, 7.903037329)PassPassPassPassPass


## 3.5.1. Global Information Entropy

The global information entropy is used to indicate the uncertainty degree of image information [9, 57]. The global information entropy can be calculated by(49)Hs=∑i=02K−1Psilog21Psi,where K is the image bit depth, e.g., K = 8, for an 8 bit gray image, and Psi means the probability ofsi. The ideal case of 8 bit gray image information entropy is Hs=8 bits. The entropy test result is shown in Table 5. According to the test results, our entropies are very close to the ideal value 8. Thus, our cryptosystem shows good performance on resisting the entropy attack.Table 5
The global entropy test results.
ImagesLenaBaboonPepperAirplaneBoatEntropy7.99934207.99930057.99938247.99932697.9994635


## 3.5.2. Local Shannon Entropy

Global Shannon entropy reflects the total randomness of image, and it has certain limitations in some occasions. Therefore, local Shannon entropy (LSE) was proposed by Wu et al. [58, 59]. To measure local entropy, we first randomly select k nonoverlapping image blocks B1,B2,…,Bk with TB pixels from image I; then, the LSE is given by(50)Hk,TB¯I=∑i=1kHBik,where HBi is the Shannon entropy of image blockBi and can be calculated by equation (49).For our tests, we select parametersk,TB=30,1936, and then the ideal value of LSE is 7.902469317. The significance α=0.05, and we consider the tests passed when the test LSE values fall into (7.901901305, 7.903037329). The LSE test results are shown in Table 6.Table 6
The local Shannon entropy test results.
ImagesLenaBaboonPepperAirplaneBoatLSE7.902783177.902945347.902193427.902652127.90301576(7.901901305, 7.903037329)PassPassPassPassPass


## 3.6. NIST SP800-22 Tests

In our scheme, control sequences are generating by the hyperchaotic Lorenz system (HCLS) and skew tent map (STM). Therefore, the randomness of iterative sequences which generated by these two chaotic system is directly affecting the performance of the image cryptosystem. Here, we use SP800-22 [60] to test the randomness of binary sequences generated by the hyperchaotic Lorenz system and skew tent map. The test results are shown in Table 7.Table 7
NIST SP800-22 test results.
Test itemsHCLSResultSTMResultP value≥0.01P value≥0.01Frequency0.43304Pass0.32631PassBlock frequency0.93008Pass0.88263PassRuns0.86392Pass0.75258PassLongest runs0.97571Pass0.89365PassBinary matrix rank0.50984Pass0.71245PassDiscrete Fourier transform0.16365Pass0.32123PassNonoverlapping template0.28953Pass0.12545PassOverlapping template0.57548Pass0.36585PassMaurer’s universal statistical0.38361Pass0.45852PassLinear complexity0.63612Pass0.23562PassSerial∗0.13252Pass0.31142PassApproximate entropy0.83427Pass0.63253PassCumulative sums∗0.99253Pass0.85652PassRandom excursions∗0.71533Pass0.35262PassRandom excursions variant∗0.56579Pass0.45253Pass∗The average values of multiple tests.


## 3.7. Performance Analysis and Comparisons

The simulation and tests are implemented in MATLAB R2015b, which is worked on a MacBook with Inter (R) Core i7, CPU 1.4 GHz, and 16 GB memory, and the software running system is macOS (High Sierra 10.13.1). As we all known, there are many factors affecting the speed of encryption and decryption except algorithm itself, such as operating system, hardware environment, programming language, and code optimization. Thus, in this performance comparison, we not only give the comparison of time cost but also give the comparison of other correlation factors. Furthermore, we also give the comparison of encryption throughput and number of cycles to make a more intuitive performance description. The speed analysis result is shown in Table8, and the security comparisons with other works are shown in Table 9. The speed test and the comparisons show that our proposed cryptosystem not only has good speed on encryption but also has good security performance.Table 8
Speed comparison.
AlgorithmsCPU speed (GHz)Memory size (GB)Program languageEncryption time (ms) (512 × 512)Encryption throughput (MBps)Number of cyclesOur work1.416Matlab1381.8111682Ref [61]2.54Matlab6130.4085846Ref [42]3.08C1391.7991591Ref [62]2.716C1661.5061710Ref [28]3.08C3900.6414463Ref [6]2.68Matlab4840.5174800Ref [63]2.48C2031.2321859Ref [41]2.48C852.941778Table 9
Security comparison.
AlgorithmsCipher correlation coefficientsGlobal entropyLocal entropyKey spacePlaintext sensitivityHorizontalVerticalDiagonalNPCR (%)UACI (%)Our work−0.00130.00050.00167.99937.902783245599.6133.47Ref. [28]0.00100.00540.00567.9992-252099.6033.50Ref. [15]−0.03310.00570.01697.9972-29099.6133.40Ref. [10]0.00640.00780.00297.9993-1015 × 225699.5933.46Ref. [18]0.00260.00190.00287.99927.902552264099.6033.48Ref. [40]−0.028870.014590.036587.9993-258299.6233.41Ref. [41]0.0019870.00449−0.00877.99937.901558257299.6333.48Ref. [42]0.01190.00920.00137.9993-1030 × 238499.6433.61Ref. [44]0.0030.00180.00067.9977.90241011299.6233.44Ref. [45]0.001930.00180.003427.998-1023899.6833.47Ref. [46]−0.0017−0.0084−0.00197.99757.9051231299.6233.50Ref. [47]−0.000026−0.00031−0.021-7.9028-99.9633.69Ref. [49]0.004851−0.0020−0.002707.99937.902481225099.56533.450Ref. [50]0.000580.00061−0.00037.9974-253299.6033.49


## 4. Conclusions

We proposed an efficient chaos-based image encryption scheme using the jigsaw method which contains two operations of image blocks: revolving and shifting. In the proposed encryption scheme, the preprocessing makes sure our scheme has enough plain image sensitivity on resisting differential attack. The encryption process guarantees our cryptosystem has full diffusion on resisting the statistical analysis. The postprocessing process further increases the diffusion characteristic. In addition, some common security analyses and speed comparisons show that our image cryptosystem has both security and speed performance.



---

*Source: 8824915-2021-02-20.xml*