## 3 Our Proposed Scheme
### Encryption Scheme
### Decryption Scheme

The block diagram of decryption scheme is shown in Figure 3, the detailed processes are as follows:

_Step 1:_ Input a cipher image \(\mathbf{C}\), and an initial key \(\mathbf{K}\) into the decryption scheme. _Step 2:_ Put initial key \(\mathbf{K}\) into Algorithm 1 to generate a rules selection control sequence \(\mathbf{RSCS}\). _Step 3:_ Change the plain image matrix \(\mathbf{C}\) into an array \(\mathbf{CA}\) by rows. _Step 4:_ Input image array \(\mathbf{CA}\) and rules selection control sequence \(\mathbf{RSCS}\) into Algorithm 2 to randomly encode the image array \(\mathbf{CA}\) under the DNA encode rules which are shown in Table 1, and generate a cipher image DNA sequence \(\mathbf{CIDS}\). _Step 5:_ Put initial key \(\mathbf{K}\) into Algorithm 5 to generate a key DNA sequence \(\mathbf{KDS}\). _Step 6:_ Input cipher image DNA sequence \(\mathbf{CIDS}\) and key DNA sequence \(\mathbf{KDS}\) into Algorithm 8 to do reverse DNA diffusion operation, and generate a reverse diffused sequence \(\mathbf{RDS}\). ```
INPUT cipher image DNA sequence \(\mathbf{CIDS}\) and key DNA sequence\(\mathbf{KDS}\). Build a DNA substraction operation table \(\mathbf{ST}\)(see Table 3) and a DNA XOR operation table \(\mathbf{XT}\) (see Table 4). \(len\gets length(\mathbf{CIDS})\) for\(i=len\)to\(2\)do if\(mod(i,2)=0\)then \(\mathbf{T}(i)\leftarrow\mathbf{XT}(\mathbf{CIDS}(i),\mathbf{KDS}(i))\); \(\mathbf{T}(i)\leftarrow\mathbf{XT}(\mathbf{T}(i),\mathbf{CIDS}(i-1))\); else \(\mathbf{T}(i)\leftarrow\mathbf{XT}(\mathbf{CIDS}(i),\mathbf{CIDS}(i-1))\); \(\mathbf{T}(i)\leftarrow\mathbf{ST}(\mathbf{T}(i),\mathbf{KDS}(i-1))\); endif endfor \(\mathbf{T}(1)\leftarrow\mathbf{XT}(\mathbf{CIDS}(1),\mathbf{KDS}(1))\); \(\mathbf{T}(1)\leftarrow\mathbf{ST}(\mathbf{T}(1),\mathbf{KDS}(1))\); \(\mathbf{RDS}\leftarrow\mathbf{T}\) OUTPUT reverse diffused sequence \(\mathbf{RDS}\). ```

**Algorithm 8** Reverse DNA diffusion algorithm. _Step 7:_ Input reverse diffused sequence \(\mathbf{RDS}\) and initial key \(\mathbf{K}\) into Algorithm 3 to generate permutation control sequence \(\mathbf{PCS}\). _Step 8:_ Input reverse diffused sequence \(\mathbf{RDS}\) and permutation control sequence \(\mathbf{PCS}\) into Algorithm 4 to do reverse permutation, and get a reverse permutated image sequence \(\mathbf{RPIS}\). _Step 9:_ Put reverse permutated image sequence \(\mathbf{RPIS}\) and rules selection control sequence \(\mathbf{RSCS}\) into Algorithm 7 to decode DNA sequence to a recovered image array \(\mathbf{RIA}\). Figure 2: The block diagram of the encryption scheme. ## 4 Simulation and Security Analysis

In this section, we evaluate our proposed scheme by software simulation, and all of the simulation and security tests are implemented in MATLAB R2016a. Our tests were worked on a personal computer with Inter(R) Core i5-8500 CPU 3.00 GHz, 8 GB memory and the software was run on the operation system of Window 10 home edition. For simulation, we select initial key as 'FE02 DE31 AB456 ACFB223013 CADAB589092342 FEFD' in hexadecimal, and parameters of hyper chaotic system which, given in Equation (2), are \(a=10\), \(b=8/3\), \(c=28\) and \(\gamma=-1\). The images for testing are \(512\times 512\) pixels with 8-bit gray level. The simulation results are shown in Figure 4. The plain images of 'Lena', 'Baboon', 'Pepper', 'Airplane' and 'Lake' are shown in Figure 4a-e, the corresponding cipher images are shown in Figure 4f-j and the recovery images from decryption are shown in Figure 4k-o. In the following subsections, we provide several commonly used security test result to prove our proposed image encryption scheme has an excellent security performance. ### Key Space Analysis

Key space is an important security index to evaluate the cryptosystem on whether it has enough capability to resist a brute-force attack. In our scheme, we use two PWLCM systems for generating DNA random encode rules selection sequence and key stream, and use the HCLS system for generating the permutation control sequence.