1 Introduction

Communications has always been an important aspect in the acquisition of new knowledge and the development of humanity. The need to be able to send a message securely is probably as old as the communications themselves.

From a historical point of view, it is during conflicts between nations that this need has been most acute lively. In our modern world, where various methods of communication are used regularly, the need for confidentiality is more present than ever in a multitude of levels. For example, it is normal for a firm to want to protect its new software against piracy, that banking institutions want to ensure that transactions are and that all individuals want their personal data protected. The need for secure communications has given rise to the science we call cryptology.

The encryption operation transforms plain text into encrypted text, called a cryptogram, using a key (called the encryption key). Decryption is the processing of data that transforms encrypted text into plain text. Cryptography is the science of creating such encryption systems. Cryptanalysis is the complementary science of determining certain properties of these systems in order to reconstruct the plain text, All accepted algorithms incline to Shanon’s recommendation “confusing diffusion permutation” and also to Kerchof’s principle “the algorithm must be known, the security of the algorithm is based on the confusion of the encryption key.

Cryptology includes cryptography and cryptanalysis, often in the absence of the necessary parameters for decryption. Encryption is generally performed using a well-defined algorithm and a unique key.

With the development of innovative technologies in the field of information sciences and the digital world, all data is increasingly shared on the Internet or stored on magnetic media. On the other hand, unauthorized access to information or private information has become an issue in the virtual world. Security issues have raised many concerns not only among researchers, and people using the Internet. Encryption has become an effective way to avoid attacks. However, traditional encryption standards, such as DES and AES, are generally designed for textual information. They are considered unsuitable for information with a high correlation between data, such as image and video data.

The fundamental architecture of image encryption based on chaotic systems was first proposed by Fredrich in 1998. Within this structure, two unrelated steps are performed in a single encryption cycle. These are the phases of confusion and diffusion. First, a random permutation of all pixels leads to a large reduction in the correlation between adjacent pixels. However, confusion operations are carried out in a closed manner. Sometimes, a one-dimensional chaotic or random sequence is used to systematically modify the value of each pixel by an XOr operator and a chain with the already encrypted pixels. After this step, the basic elements of the image, the bit or pixel values, will be evenly distributed.

Since the image is introduced and processed in digital form, that its applications have continued to increase. It has become exploited by a wide public, both professionals and amateurs alike. But given the extent of the computer resources allowing the free circulation of information, the ease of transmission of confidential data, man has been pushed to improve more and more encryption algorithms to secure his confidential data. But all his techniques bow to Shanon’s recommendations [1] For permutation, some approaches use Arnold’s method [2], others use improvements to Hill’s classic method [3], and still others use static permutation matrixes [4]. For confusion, most algorithms use the operator Xor noted between the plain text and the encryption key [5]. Few color image encryption methods use diffusion to avoid differential attacks. Today, faced with the great mathematical advance of chaos theory, we are experiencing a wave of algorithms based on the construction of recurring suites with a chaotic aspect [6] that is developing more and more at high speed. Chang’e Dong [7] offers color image encryption based on the construction of a coupled chaotic map. Wanga et al. [8] proposed a crypto system based on a multitude of chaotic maps that define an effective result. All these approaches use a Lyapunov exponent calculation [5] to check the installation of chaos and sensitivity to initial conditions. Most encryption algorithms operating on blocks used the Feistel scheme with several turns. RC4, RC6, DES used more than four towers [9]. In our approach, we will apply two Feistel towers on 24-bit.

Most encryption techniques and systems have been implemented on the modular arithmetic basis. However, these techniques have been extensively exploited and are under attack. This has encouraged researchers to invent other techniques based on the use of some DNA property. DNA cryptography is a new field of instinctive cryptography that has emerged from DNA computer research. Some algorithms used for DNA cryptography have limitations in that they still use modular arithmetic cryptography at some of their stages or are based on biological laboratory experiments, which is not appropriate in the digital computing environment. To fill this gap, we describe a new algorithm for color image encryption based on chaos, DNA transformation and the biological property of the RNA.

In 1994, Adleman [10] included the first scientist who conducted DNA experiments and as a result a new generation of DNA research was developed. Many researchers have retrieved the information side of DNA to use it in computer-based investigations. At the same time, DNA use in cryptography is beginning to surface and is being used as a medium in bioinformatics [11]. Gehani et al. [12] presented an image encryption algorithm for DNA strand cryptography.

Zhang et al. [13] have proposed a color image encryption using DNA characteristics and an enforcement of DNA sequence processing to encode the pixels in the image. They used chaotic and hyper-chootic maps to effectively carry out their approach [14].

Virtually all encryption schemes use chaotic systems combined with DNA performance and fixed value allocation for nucleotides [15] (A = 0; C = 1; G = 2; T = 3), this weakens the technique. However, in our approach, the nucleotide values will be selected pseudo randomly and will be related to the chaotic maps used. Others use the properties of genetic algorithms and DNA [16].

2 The proposed method

Based on chaos [17], our algorithm is an encryption system that takes as input a color image of size (n, m) and generates an encrypted image of the same size at the output. With this technology, a new encryption operating mode is being introduced based on the application of two Feistel rounds over each 12 nucleotides block. As a follow-up, a transition to nucleotides complementary and RNA property is applied for amino acid production. This initiative is structured into four main themes. The phases of this new methodology can be shown in the Fig. 1.

Fig. 1
figure 1

Steps for the encryption of a color image

  1. A.

    Step 1:

    1. (1)

      Development of chaotic maps:

For the generation of encryption keys, our strategy uses the two most widely deployed chaotic maps used in color image encryption, the Logistics Map and the Skew Tent Maps. This operation is highlighted in Fig. 2.

Fig. 2
figure 2

Building the encryptions keys

  1. (a)

    The logistics map

The use of the logistics map in image cryptography is due to the simplicity of its expression and the high sensitivity to initial condition. Its expression is described by Eq. 1

$$\left\{ {\begin{array}{*{20}l} { {\mathbf{u}}_{0} \in \left] {0,5 1} \right[, \mu \in \left[ {3,75 4} \right]} \hfill \\ { {\mathbf{u}}_{{{\mathbf{n}} + 1}} = \mu {\mathbf{u}}_{{\mathbf{n}}} \left( {1 - {\mathbf{u}}_{{\mathbf{n}}} } \right)} \hfill \\ \end{array} } \right.$$
(1)

It is known that the logistics map presents a chaotic aspect for \({\mathbf{u}}_{0} \in \left] {0,5 1} \right[, {\varvec{\upmu}} \in \left[ {3,75 4} \right]\). For the simulations of our approach, we have chosen, \(u_{0} = 0,7458121001\) as the initial value and \(\mu = 3.859412001\) as a control parameter.

  1. (b)

    The Skew Tent Map

The Skew tent map will be redefined as the Eq. (2)

$$\left\{ {\begin{array}{*{20}l} {{\mathbf{v}}_{0} \in \left] {0 1} \right[ p \in \left] {0,5 1} \right[} \hfill \\ {{\mathbf{v}}_{{{\mathbf{n}} + 1}} = \left\{ {\begin{array}{*{20}l} {\frac{{{\mathbf{v}}_{{\mathbf{n}}} }}{{\mathbf{p}}}} \hfill & {if\,0 \prec {\mathbf{v}}_{{\mathbf{n}}} \prec p} \hfill \\ {\frac{{1 - {\mathbf{v}}_{{\mathbf{n}}} }}{{1 - {\mathbf{p}}}}} \hfill & {if\,p \prec {\mathbf{v}}_{{{\mathbf{n}} \prec 1 }} } \hfill \\ \end{array} } \right.} \hfill \\ \end{array} } \right.$$
(2)

It is known that The Skew Tent Map presents a chaotic aspect for \(\varvec{v}_{0} \in \left] {0 1} \right[ \varvec{p} \in \left] {0,5 1} \right[\). For the simulations of our approach, we have chosen, v0 = 0.54865 as the initial value, and p = 0.8742120013 as a control parameter. In the end, the key space of our algorithm is \(u_{0} = 0,7458121001, \mu = 3.859412001\), for logistic map, and \(p = 0.8742120013, v_{0} = 0,548652012,\) for Skew tent map. In the simulation, we operate with a precision of 10-10, therefore, the global key size of the encryption key is significantly greater than 100 bits. This protects our algorithm from brutal attacks.

  1. (c)

    Writing chaotic nucleotide sequences:

Many encryption schemes based on DNA property affect the initial nucleotide values saved in Table \(\varvec{ }\left( {\varvec{IV}} \right)\varvec{ }\):

\(\left( {\varvec{IV}} \right)\)

Initial values

0

1

2

3

Nucleotide

A (adenine)

C (cytosine)

G (guanine)

T (thymine)

 

Complementary

T

G

C

A

This allocation of values to nucleotides weaknesses the cryptographic system. To reinforce our systems against attacks, the values assigned to nucleotides will be taken in pseudo random ways and highly sensitive to the chaotic maps used.

For the rewriting of the sequences of the logistics map, we will apply a first permutation \(\left( {\varvec{PR}} \right)\) on the second line of the main nucleotide table \(\left( {\varvec{IV}} \right)\), obtained by a descending sorting in the broad sense of the chaotic vector \(\left( {\varvec{PI}} \right)\) whose coordinates are:

(PI)

U(n)

U(m)

V(nm)

V(2nm)

We obtain a new table \(\varvec{ }\left( {\varvec{NT}} \right)\)) of the nucleotide values allocated to the logistic sequence specified by the algorithm 1:

$$\begin{aligned} & {\text{Algorithm}}\,1 \\ & \quad \left\{ {\begin{array}{*{20}l} {for\, i = 1 \,to\, 4} \hfill \\ {NT\left( {1;\varvec{i}} \right) = IV\left( {1;i} \right)} \hfill \\ { NT\left( {2;\varvec{i}} \right) = IV\left( {2;PR\left( \varvec{i} \right)} \right)} \hfill \\ {Next\, i} \hfill \\ \end{array} } \right. \\ \end{aligned}$$

For the rewriting of the sequences of the SKTM, we will apply a permutation \(\left( {\varvec{RP}} \right)\) on the second line of the main nucleotide table \(\left( {\varvec{NT}} \right)\), obtained by a descending sorting in the broad sense of the chaotic vector \(\left( {\varvec{IP}} \right)\) whose coordinates are:

(IP)

V(n)

V(m)

U(nm)

U(2nm)

This transformation creates a third line of the table \(\left( {\varvec{NT}} \right)\) of nucleotide values for the SKTM sequence, given by the algorithm 2

$$\begin{aligned} & {\text{Algorithm}}\,2 \\ & \quad \varvec{ }\left\{ {\begin{array}{*{20}l} {for\, i = 1\, to\, 4} \hfill \\ { NT\left( {3;\varvec{i}} \right) = NT\left( {2;RP\left( \varvec{i} \right)} \right)} \hfill \\ {Next\, i} \hfill \\ \end{array} } \right. \\ \end{aligned}$$

Example:

\(\left( {\varvec{PI}} \right)\varvec{ }\)

0.8858

0.87452

0.54215

0.92450

\(\left( {\varvec{IP}} \right)\varvec{ }\)

0.31457

0.92450

0.8858

0.80745

The generated \(\left( {\varvec{PR}} \right)\varvec{ }\) and \(\left( {\varvec{RP}} \right)\varvec{ }\) permutation is

\(\left( {\varvec{PR}} \right)\varvec{ }\)

4

1

2

3

\(\left( {\varvec{PR}} \right)\varvec{ }\)

1

4

3

2

Finally

\(\left( {\varvec{NT}} \right)\)

Final value

0

1

2

3

  

Nucleotides

T

A

C

G

\(\left( {\varvec{PR}} \right)\varvec{ }\)

For logistic map

Complementary

T

G

C

A

\(\left( {\varvec{RP}} \right)\varvec{ }\)

For SKTM

We confirm, that a change in the vector \(\left( {\varvec{IP}} \right)\) or vector \(\left( {\varvec{PI}} \right)\) would generate a new permutation and subsequently a new \(\varvec{ }\left( {\varvec{NT}} \right)\) table of nucleotide values, and consequently, new nucleotide values will be allocated to the encryption keys.

  1. (d)

    Conversion of chaotic values into nucleotides.

The transformation of the logistics sequence terms into nucleotides leads to the output of the size vector \(\left( {\varvec{NV}} \right)\) (1.12 nm), and the transition of the SKTM terms into nucleotides generates the size vector \(\left( {\varvec{VN}} \right)\) (1.12 nm). This routine is performed by the algorithm

$$\begin{aligned} & {\text{Algorithm}}\,3 \\ & \quad \left\{ {\begin{array}{*{20}l} {for\,i = 1\,to\,12\,nm} \hfill \\ {for\,k = 4\,to\,0} \hfill \\ {if\,u\left( \varvec{i} \right) - \frac{\varvec{k}}{4} \ge 0\,then} \hfill \\ {NV\left( \varvec{i} \right) = NT\left( {2,\varvec{k} + 1} \right)} \hfill \\ {VN\left( \varvec{i} \right) = NT\left( {3,\varvec{k} + 1} \right)} \hfill \\ {Exit\,for} \hfill \\ {end\,if} \hfill \\ {Next\,k,i} \hfill \\ \end{array} } \right. \\ \end{aligned}$$

In parallel, the construction of the displacement vector \(\left( {\varvec{CS}} \right)\) used in the first Feistel round as an element of \(\varvec{G}_{6}\) is dictated by algorithm 4

$$\begin{aligned} & {\text{Algorithm}}\,4 \\ & \quad \varvec{ }\left\{ {\begin{array}{*{20}l} {for\, i = 1 \,to\, nm} \\ {CS\left( \varvec{i} \right) = mod\left( {10^{12} \varvec{u}\left( \varvec{i} \right),5} \right) + 1} \\ {Next \,i } \\ {\forall \,i\, with\, 0 \le i \le \,nm CS\left( i \right) \ne 0} \\ \end{array} } \right. \\ \end{aligned}$$

Example:

Let’s be the chaotic \((\varvec{U}_{\varvec{i}}\)) and \((\varvec{V}_{\varvec{i}} )\) sequence:

Chaotic \((\varvec{U}_{\varvec{i}} )\) sequence

0.2925

0.68251

0.9658

0.0325

0.8952

0.4125

0.3215

0.5214

0.5602

0.7854

0.2153

0.6582

Chaotic \((\varvec{V}_{\varvec{i}} )\) sequence

0.2925

0.68251

0.9658

0.0325

0.8952

0.4125

0.3215

0.5214

0.5602

0.7854

0.2153

0.6582

By applying algorithms 3, 4, we obtain the following values

figure a

Therefore, the data of two identical vectors from two different chaotic maps, generates two different nucleotide vectors

  1. (e)

    Construction of the \(\left( {\varvec{CM}} \right)\varvec{ }\) confusing matrix

The first 6 nm vector measurements \(\left( {\varvec{VN}} \right)\) are transcribed into a matrix \(\left( {\varvec{CM}} \right)\varvec{ }\) of size (nm, 6). This matrix is considered as a confession matrix in the second Feistel round. This initiative is exemplified in Fig. 3.

Fig. 3
figure 3

Creation of the confusion matrix

This matrix is used as a confusion template in the second round.

  1. (f)

    Algebraic DNA operations

Our approach involves algebraic operation data on nucleotides. Submissive to the Kerchof principle; the three fundamental operations employed in this algorithm are provided in the Fig. 4

$$\varvec{We}\,\varvec{note}\,\varvec{that }\left\{ {\begin{array}{*{20}l} {\forall x,y,z in \left\{ {\varvec{A},\varvec{G},\varvec{C},\varvec{T}} \right\}} \hfill \\ {If z = x + y\,Then\,x = z - y} \hfill \\ {If z = x \otimes y\,Then\,x = z \otimes y} \hfill \\ { x \otimes x = A} \hfill \\ \end{array} } \right.$$
Fig. 4
figure 4

Algebraic DNA operations

  1. B.

    Step 2:

    1. (a)

      Setting the image to be encrypted

Before starting the encryption process of the original color image, it is recommended to prepare the original color image. This phase is illustrated by the diagram in the Fig. 5.

Fig. 5
figure 5

Setting the image to be encrypted

  1. (a)

    Translating the clear image to a vector

After extraction from the three \(\left( {\varvec{RGB}} \right)\varvec{ }\) spectral channels, their vector conversion \(\left( {\varvec{Vr}} \right),\left( {\varvec{Vg}} \right),\left( {\varvec{Vb}} \right)\) we convert into the \(\varvec{ X}\left( {\varvec{x}_{1} ,\varvec{x}_{2} , \ldots ,\varvec{x}_{{3\varvec{nm}}} } \right)\) size vector (1.3 nm), this operation is defined by the algorithm 6:

$$\begin{aligned} & {\text{Algorithm}}\,5 \\ & \quad \left\{ {\begin{array}{*{20}l} {for\, i = 1\, to\, nm} \\ {X\left( {3\varvec{i} - 2} \right) = \varvec{V}_{\varvec{r}} \left( i \right)} \\ { X\left( {3\varvec{i} - 1} \right) = \varvec{V}_{\varvec{g}} \left( \varvec{i} \right)} \\ {X\left( {3\varvec{i}} \right) = \varvec{V}_{\varvec{b}} \left( i \right)} \\ {Next \,i} \\ \end{array} } \right. \\ \end{aligned}$$
  1. (b)

    Writing clear pixels in nucleotides

To write the pixels of the image vector X in nucleotides, we apply the permutation \(\left( {\varvec{PR}} \right)\) on the second line of the table \(\left( {\varvec{NT}} \right)\). To determine the values of the nucleotide complements that will be assigned to the pixels, we apply the permutation \(\left( {\varvec{RP}} \right)\) on the second line of the table \(\left( {\varvec{TN}} \right)\). This phase is provided by the algorithm 7

$$\begin{aligned} & {\text{Algorithm}}\,6 \\ & \quad \left\{ {\begin{array}{*{20}l} {for \,i = 1 \,to \,4} \hfill \\ {TN\left( {1;\varvec{i}} \right) = NT\left( {1;\varvec{i}} \right)} \hfill \\ { TN\left( {2;\varvec{i}} \right) = NT\left( {2;\varvec{PR}\left( \varvec{i} \right)} \right)} \hfill \\ {TN\left( {3;\varvec{i}} \right) = NT\left( {3;\varvec{RP}\left( \varvec{i} \right)} \right)} \hfill \\ {Next\, i} \hfill \\ \end{array} } \right. \\ \end{aligned}$$

In our example, the final nucleotide values for the clear image are displayed in table \(\left( {\varvec{TN}} \right)\)

\(\left( {\varvec{TN}} \right)\)

Final value

0

1

2

3

Nucleotides

G

T

C

A

Complementary

A

T

G

C

To simplify the transaction of the integer values of the pixels of the vector X into nucleotides, we will use the matrix \(\left( {\varvec{MN}} \right)\varvec{ }\) described below

figure b

Initially, every pixel \(\varvec{ }\left( {\varvec{x}_{\varvec{k}} } \right)\) will be transformed into a hexadecimal value using the format \(\left( {\varvec{G}_{\varvec{k}} \varvec{D}_{\varvec{k}} } \right).\varvec{ }\) The Eq. 3 explains this process.

$$\varvec{ }\left\{ {\begin{array}{*{20}l} {\forall x\,With \,0 \le x \le 255 } \hfill \\ { \varvec{x}_{\varvec{k}} = \varvec{G}_{\varvec{k}} \varvec{D}_{\varvec{k}} } \hfill \\ {With} \hfill \\ {\left\{ {\begin{array}{*{20}l} {\varvec{G}_{\varvec{k}} = E\left( {\frac{{\varvec{x}_{\varvec{k}} }}{16}} \right)} \hfill \\ {\varvec{D}_{\varvec{k}} = \varvec{x}_{\varvec{k}} - 16*\varvec{G}_{\varvec{k}} } \hfill \\ \end{array} } \right.} \hfill \\ \end{array} } \right.$$
(3)

Later, each \(\left( {\varvec{G}_{\varvec{k}} } \right)\) block and \(\left( {\varvec{D}_{\varvec{k}} } \right).\) block will be transcribed into nucleotides values using the \(\left( {\varvec{MN}} \right)\varvec{ }\) matrix.

The decomposition of the pixel \(\left( {\varvec{x}_{\varvec{k}} } \right)\) produces the vector \(\varvec{ }\left( {\varvec{S}_{\varvec{k}} } \right)\) is expressed in the algorithm

$$\begin{aligned} & {\text{Algorithm}}\,7 \\ & \quad \left\{ {\begin{array}{*{20}l} {for \,i = 1 \,to\, 2} \hfill \\ {\varvec{s}_{\varvec{k}} \left( \varvec{i} \right) = MN\left( {\varvec{G}_{\varvec{k}} ,\varvec{i} + 2} \right)} \hfill \\ {\varvec{s}_{\varvec{k}} \left( {\varvec{i} + 2} \right) = MN\left( {\varvec{D}_{\varvec{k}} ,\varvec{i} + 2} \right)} \hfill \\ {Next \,i} \hfill \\ \end{array} } \right. \\ \end{aligned}$$

Example:

figure c
  1. (c)

    Decomposition of the nucleotide image vector into two matrices

It is known that every Feistel round needs two blocks of the same size for execution. One block is called left and another one says right. For this reason, in our approach, we will disaggregate the vector \(\left( \varvec{S} \right)\) obtained by converting pixels into nucleotides, partition it into two vectors \(\left( {\varvec{SG}} \right)\) and (SD) of size (1.6 nm) each, then translate (SG) into a matrix \(\left( {\varvec{MG}} \right)\) including the left block lines and the vector \(\left( {\varvec{SD}} \right)\) into the matrix \(\left( {\varvec{MD}} \right)\) of right blocks. Each matrix is of size (nm, 6). Therefore, this breakdown of the original image into two block nucleotide matrices is established by the scheme in Fig. 6:

Fig. 6
figure 6

Construction of the left and right matrix

  1. (d)

    Building The Initialization Vectors

Two boot \(\left( {\varvec{Vl}} \right)\) and \(\left( {\varvec{Vd}} \right)\) vectors are built. The first from the \(\left( {\varvec{MG}} \right)\) matrix and the second from the \(\left( {\varvec{MD}} \right)\) matrix. This process is controlled by the algorithm 9

\(\begin{aligned} & {\text{Algorithm}}\,8 \\ & \quad \left\{ {\begin{array}{*{20}l} {for \,i = 1 \,to \,6} \hfill \\ {Vl\left( i \right) = VN\left( {i + m} \right)} \hfill \\ {Vd\left( i \right) = NV\left( {i + n} \right)\,} \hfill \\ {for \,k = 2 \,to\, nm} \hfill \\ {Vl\left( \varvec{i} \right) = Vl\left( \varvec{i} \right) + MG\left( {k,i} \right)} \hfill \\ {Vd\left( \varvec{i} \right) = Vd\left( \varvec{i} \right) + MD\left( {k,i} \right)} \hfill \\ {Next \,k} \hfill \\ {Next \,i} \hfill \\ \end{array} } \right. \\ \end{aligned}\).

The vector \(\left( {\varvec{Vl}} \right)\) will be constructed for modifying the value of the first line of the \(\left( {\varvec{MG}} \right)\) matrix; when the vector \(\left( {\varvec{Vd}} \right)\) will change the value of the first line of the \(\left( {\varvec{MD}} \right)\) matrix. We note that the boot vectors are sensitive to the initial conditions used.

  1. A.

    Step 3:

    1. (2)

      Encryption the clear image

Figure 6, emphasizes the process of encryption of a color image by our approach. After separating the clear image into blocks of 12 nucleotides and modifying the value of the first block by the initialization vector, built from the clear image and the chaotic maps used. Two Feistel rounds are performed on each block. The first round, is a chaotic displacement of nucleotides by the component-based vector \(\left( {\varvec{CS}} \right)\) in \(\varvec{G}_{6}\), while the second is provided by a \(\left( {\varvec{CM}} \right)\) confusing matrix. At the end of the encryption procedure, a broadcast with the following clear block is established, to maximize the avalanche effect and protect the system from known differential attacks. Then, a transition to complementary nucleotides, followed by an application of m-RNA on the whole vector for the construction of amino acids, and t-RNA for the isolation of EXONS blocks and INTRONS blocks. The encryption steps for the color image are outlined in the diagram in the Fig. 7.

Fig. 7
figure 7

Encryption of the original image

The figure shown above can be translated by the algorithm 10

$$\begin{aligned} & {\text{Algorithm}}\,9 \\ & \quad \left\{ {\begin{array}{*{20}l} {for i = 1 to nm} \hfill \\ {U\left( i \right) = IV + U\left( i \right)} \hfill \\ {Do \,two \,Feistel \,rounds } \hfill \\ { Concatenate\, the\, two\, output\, blocks\, of\, the\, two\, towers} \hfill \\ {Do \,IV = U^{\prime}\left( i \right)} \hfill \\ { Go \,back \,to \,the \,beginning \,step} \hfill \\ { Diffusion \,with\, the\, next\, clear\, block} \hfill \\ {transition \,to\, complementary} \hfill \\ {Applying \,RNA_{m} } \hfill \\ {Applying\,RNA_{t} } \hfill \\ {Cypher \,image} \hfill \\ \end{array} } \right. \\ \end{aligned}$$
  1. (a)

    Analytical expression on the encryption function

    1. (a)

      First Feistel-Round

The first Feistel round applied to the nucleotide blocks is assisted by a chaotic displacement at the nucleotides level of a step derived from the coordinates of the vector \(\left( {\varvec{CS}} \right)\) previously fabricated as a component in the ring \(\varvec{G}_{6}\). It is displayed in the Fig. 8 below

Fig. 8
figure 8

First Feistel round

This round may be expressed by the following numerical expression

$$\varvec{\varphi }_{{\varvec{k }}}^{1} \left( {\varvec{MG}\left( {\varvec{k}:} \right),\varvec{MD}(\varvec{k}:} \right)) = \varvec{ }\left\{ {\begin{array}{*{20}l} {MG'\left( {k:} \right) = MD\left( {k:} \right)} \\ {MD'\left( {k:} \right) = MG\left( {k:} \right) \otimes \varvec{f}_{\varvec{k}} \left( {\varvec{MD}\left( {\varvec{k}:} \right)} \right)} \\ \end{array} } \right.$$
(4)

The mathematical expression of Eq. 4 is assigned by the algorithm 11

$$\begin{aligned} & {\text{Algorithm}}\,10 \\ & \quad \varvec{ }\left\{ {\begin{array}{*{20}l} {for \,i = 1 \,to\, 6} \hfill \\ {\varvec{f}_{\varvec{k}} (MD\left( {\varvec{k}:\varvec{ }} \right) = MD\left( {k:mod\left( {\varvec{i} + \varvec{LC}\left( \varvec{k} \right),6} \right)} \right)} \hfill \\ {Next \,i} \hfill \\ \end{array} } \right. \\ \end{aligned}$$

Finally: the first-round mathematical expression is obtained through the algorithm 12

$$\begin{aligned} & {\text{Algorithm}}\,11 \\ & \quad \varvec{\varphi }_{\varvec{k}}^{1} \left( {\varvec{MG}\left( {\varvec{k}:} \right),\varvec{MD}\left( {\varvec{k}:} \right)} \right) = \varvec{ }\left\{ {\begin{array}{*{20}l} {for \,i = 1 \,to\, 6} \hfill \\ {MG'\left( {\varvec{k},\varvec{i}} \right) = MD\left( {k,i} \right)} \hfill \\ {Next\, i} \hfill \\ {for \,i = 1\, to\, 6} \hfill \\ {MD'\left( {k;i} \right) = MG\left( {\varvec{k},\varvec{i}} \right) \otimes MD\left( {\varvec{k},\varvec{mod}\left( {\varvec{i} + \varvec{LC}\left( \varvec{k} \right),6} \right)} \right)} \hfill \\ {Next \,i} \hfill \\ \end{array} } \right. \\ \end{aligned}$$
  1. (b)

    Second Feistel-Round

The second Feistel round applied to the output block is accomplished by a confusion matrix \(\left( {\varvec{CM}} \right)\) at the nucleotide level by the operator (+). This is indicated in Fig. 9.

Fig. 9
figure 9

Second round

This may be seen as Eq. 5

$$\varvec{ \varphi }_{\varvec{k}}^{2} \left( {\varvec{MG'}\left( {\varvec{k}:} \right),\varvec{MD'}\left( {\varvec{k}:} \right)} \right) = \varvec{ }\left\{ {\begin{array}{*{20}l} {SG\left( {k:} \right) = MD'\left( {k:} \right)} \hfill \\ {SD\left( {k:} \right) = MG'\left( {k:} \right) \otimes \varvec{h}_{\varvec{k}} \left( {\varvec{MD'}\left( {\varvec{k}:} \right)} \right)} \hfill \\ \end{array} } \right.$$
(5)

This round may be expressed by the following numerical expression in the algorithm 13

$$\begin{aligned} & {\text{Algorithm}}\,12\\ & \quad \varvec{\varphi }_{\varvec{k}}^{2} \left( {\varvec{MG'}\left( {\varvec{k}:} \right),\varvec{MD'}\left( {\varvec{k}:} \right)} \right) = \varvec{ }\left\{ {\begin{array}{*{20}l} { for\, i = 1 \,to\, 6} \hfill \\ { SG\left( {k:i} \right) = MD^{\prime}\left( {k:i} \right)} \hfill \\ { Next\, i} \hfill \\ {for\, i = 1\, to \,6} \hfill \\ { SD\left( {\varvec{k}:} \right) = M\varvec{G^{\prime}}\left( {\varvec{k}:} \right) \otimes \left( {CM\left( {\varvec{k},\varvec{i}} \right) + M\varvec{D^{\prime}}\left( {\varvec{k}:\varvec{i}} \right)} \right)} \hfill \\ {Next\, i} \hfill \\ \end{array} } \right. \\ \end{aligned}$$

So, in our approach the mathematical expression of two Feistel’s rounds applied to block \(\varvec{U}_{\varvec{k}} \left( {\left( {\varvec{MG}\left( {\varvec{k}:} \right),\varvec{MD}(\varvec{k}:} \right)} \right)\) is given by algorithm 14: We pose \(\left\{ {\begin{array}{*{20}c} {FEistel2 = \varvec{\varphi }_{\varvec{k}}^{2} o \varvec{\varphi }_{\varvec{k}}^{1} )} \\ \end{array} } \right\}\).

At the end of the encryption mode using two Feistel rounds, a connection is established between the encrypted block and the next clear block. Such a technique greatly augments the avalanche impact and prevents known differential attacks on the system.

  1. (b)

    Transition to complementary

After concatenation of all the encrypted blocks, in such a way as to form the vector \(\left( \varvec{S} \right)\), a transition to the complementary is achieved. After this action a mistake is caused with the chaotic vector \(\left( {\varvec{CL}} \right)\). This is demonstrated by the algorithm 15

$$\begin{aligned} & {\text{Algorithm}}\,13 \\ & \quad \varvec{ }\left\{ {\begin{array}{*{20}l} { for\, i = 1 \,to\, 8\,nm} \\ { S\left( \varvec{i} \right) = \overline{{\varvec{S}\left( \varvec{i} \right)}} \otimes VN\left( \varvec{i} \right)} \\ {Next \,i} \\ \end{array} } \right. \\ \end{aligned}$$
  1. (3)

    Applying m-RNA

m-RNA is the transformation of nucleotides into amino acids whose total number is 64. It is the grouping by three nucleotides. This procedure is documented through the algorithm 16

$$\begin{aligned} & {\text{Algorithm}}\,14 \\ & \quad \left\{ {\begin{array}{*{20}l} { for\;k = 1\;to\;12nm} \hfill \\ { XR\left( \varvec{k} \right) = S\left( {3\varvec{k} - 2} \right)X\left( {3\varvec{k} - 1} \right)S\left( {3k} \right)} \hfill \\ {Next\;k} \hfill \\ \end{array} } \right. \\ \end{aligned}$$

The amino acid vector value \(\left( {\varvec{XR}} \right)\) is a component in \(\left( {\varvec{G}_{64} } \right)\).

Example

figure d
  1. (a)

    Applying t-RNA

The application of t-RNA on the \(\left( {\varvec{XR}} \right)\) vector is to isolate the EXONS from the INTRONS blocks. So, first it computes the two directions 5′ and 3′ then the stop codon by the following formulas

  1. (a)

    Design the direction 5’

Direction 5′ is the departure point for the codons to be scanned by the t-RNA of the transcribed gene at the output of the encryption operating mode. This direction indicates the index value of the first codon in the displaced gene. Its value is calculated by the Eq. 6

$$\varvec{D}5 = \varvec{Int}\left( {10^{10} \left( {\frac{{\left( {3\varvec{u}\left( {\varvec{n} + \varvec{m}} \right) + 2\varvec{v}\left( \varvec{m} \right) + \varvec{u}\left( \varvec{n} \right)} \right)}}{6}} \right)\varvec{ mod }3\varvec{nm}} \right) + 1$$
(6)

The transcribed gene is defined by a step shift equal to 4 nm-D5, so the first codon of the unexplained gene is the D5 codon.

The displacement of the codons in direction 5 is indicated by the algorithm 17

$$\begin{aligned} & {\text{Algorithm}}\,15 \\ & \quad \left\{ {\begin{array}{*{20}l} { for{\mkern 1mu} \,k = 1{\mkern 1mu} to\,{\mkern 1mu} 4\,nm} \hfill \\ { GN\left( \varvec{k} \right) = XR\left( {\left( {k + 4\,nm - D5} \right) mod 4\,nm} \right)} \hfill \\ {Next{\mkern 1mu}\, k} \hfill \\ \end{array} } \right. \\ \end{aligned}$$
  1. (b)

    Design the direction 3′

The reading direction 3′ of the t-RNA, represents the end of the transcribed gene. In our case, it is the \(\left( {\varvec{GN}} \right)\) codon value (4 nm).

So

$$\varvec{D}3 = \varvec{GN}\left( {4\,\varvec{nm}} \right)$$
(7)

This 3′ direction is computed to affect the level of the stop codon which will delimit the Exon genes and Intron genes.

  1. (c)

    Compute the stop codon

The codon stop is the codon which delimits Exons and Introns in reading the output gene. The reading is made in the 5′ to 3′ direction. the codon stop value is determined by the two chaotic maps already used for the formula:

$$\varvec{stop} = \varvec{Int}\left( {\left( {\frac{{\left( {\varvec{GN}\left( {\varvec{D}5} \right) + \varvec{D}3} \right)}}{5}} \right)\varvec{ modulo }63} \right)$$
(8)

We observe that the codon stop relies on the two directions of t-RNA readings. Reading the transcribed gene is performed by the t-RNA from the D5 codon to the first stop codon to form the first EXON block and continues until the second stop codon to form the INTRON first block and until the gene-end.

  1. (b)

    Applying r-RNA

For r-RNA, the EXONS blocks identified include some genetic information, So for our approach, they will be dynamically offset, while the INTRONS blocks detected do not incorporate any genetic information and will not be affected by our algorithm.

  1. (a)

    Compute the step of the shift

In our simulation, the step of the element displacement offset of an Exon block, depends on its position in the gene. It is depicted by the following formula:

$$\varvec{step}\left( \varvec{i} \right) = \varvec{CS}\left( \varvec{i} \right)\varvec{ modulo }\left( \varvec{L} \right)$$
(9)

L: represents a length the EXON block of position i. We note that: \(\forall \varvec{ i step}\left( \varvec{i} \right) \ne 0\).

Example: In \(\left( {\varvec{G}_{8} } \right)\)

figure e

The calculation of the two directions and the stop codon is shown in the table

figure f

this produces the gene shown in the vector \(\left( {GN} \right)\).

figure g

Exon and Intron Genes Extraction is given in the table

figure h

The output genus is

figure i
  1. B.

    Step 4:

    1. (4)

      Encrypted image decryption

Our approach is a symmetric encryption system. The encryption key will also be required to decrypt the color image from the encrypted image. We use the same key but with inversion of encryption procedures. After decomposing the encrypted image into 24-bit blocks. The decryption process begins with the last block and ends with the second block. A recalculation of the initialization vector is performed and the value of the first block is found. The reverse function of the two turns of Feistel applied in this algorithm is given by the Eq. 9

$$\left\{ {\begin{array}{*{20}l} {Feistel2\left( {\varvec{U}_{\varvec{k}} } \right) = \varvec{U^{\prime}}_{\varvec{k}} } \hfill \\ {So} \hfill \\ {\varvec{U}_{\varvec{k}} = \left( {\varvec{\varphi }_{\varvec{k}}^{2} \varvec{o \varphi }_{\varvec{k}}^{1} } \right)^{ - 1} \left( {\varvec{U^{\prime}}_{\varvec{k}} } \right) = \left( {\varvec{\varphi }_{\varvec{k}}^{1} } \right)^{ - 1} o \left( {\varvec{\varphi }_{\varvec{k}}^{2} } \right)^{ - 1} \left( {\varvec{U^{\prime}}_{\varvec{k}} } \right)} \hfill \\ \end{array} } \right.$$
(9)

The reciprocal of the two Feistel tours is given by the algorithm 17

$$\begin{aligned} & {\text{Algorithm}}\,16 \\ & \quad \varvec{Fistel}2(\left( {\varvec{MG}\left( {\varvec{k}:} \right)\varvec{MD}\left( {\varvec{k}:} \right)} \right) = \left( {\varvec{SG}\left( {\varvec{k }:} \right),\varvec{SD}\left( {\varvec{ k}:} \right)} \right) = \left\{ {\begin{array}{*{20}l} {SG\left( {\varvec{k}:} \right) = MG\left( {k:} \right) \otimes \left( {MS\left( {\varvec{k}:} \right) + MD\left( {\varvec{k}:} \right)} \right)} \hfill \\ {SD\left( {\varvec{k}:} \right) = MG\left( {\varvec{k}:} \right) \otimes \varvec{h}_{\varvec{k}} SG\left( {k;} \right)} \hfill \\ \end{array} } \right. \\ \end{aligned}$$

the final expression of the inverse function is given by the algorithm 18

$$\begin{aligned} & {\text{Algorithm}}\,17 \\ & \quad \varvec{So }\left( {\varvec{\varphi }_{\varvec{k}}^{2} \varvec{o\varphi }_{\varvec{k}}^{1} } \right)^{ - 1} \varvec{ }\left\{ {\begin{array}{*{20}l} {MG\left( {k:} \right) = SG\left( {k:} \right) \otimes \varvec{f}_{\varvec{k}} (SD\left( {k:} \right) \otimes \varvec{h}_{\varvec{k}} \left( {SG\left( {\varvec{k}:} \right)} \right)} \hfill \\ {MD\left( {k:} \right) = SD\left( {k:} \right) \otimes \varvec{h}_{\varvec{k}} \left( {\varvec{SG}\left( {\varvec{k}:} \right)} \right)} \hfill \\ \end{array} } \right. \\ \end{aligned}$$

This following table gives the original image and its histogram, as well as the encrypted image and its histogram

The following table illustrates the encryption of some of the most commonly used images in encryption theory

Example:

figure j

We note that all the histograms of the images tested in our approach have been flattened. Obtaining the uniform histograms of the encrypted images ensures that our system is protected from statistical attacks.

  1. C.

    Step 5:

    1. (1)

      Investigation of cryptosystem performance

A good system crypto must face all known attacks. Our approach has been tested on a database of color images of different sizes and formats. All encrypted images obtained have a flat histogram. This ensures that our crypto system is safe from statistical attacks.

  1. (a)

    Key space

If the precision of the computing is 10 decimal digits, then the size of the encryption key in our approach is \(10^{40} \approx 2^{120} \gg 2^{100}\) which is more than enough to protect our method from brutal attacks.

  1. (b)

    Secret key’s sensitivity Analysis

The high sensitivity of the encryption keys used in our system indicates that a very slight degradation of the encryption key automatically leads to an image that is so different from the original image. This confirmation can be viewed below the scheme in the Fig. 10.

Fig. 10
figure 10

Secret key’s sensitivity

We note that a \(10^{ - 15}\) change in a single encryption parameter of this technology is incapable of restoring the clear image by the same decryption process.

  1. c)

    Entropy Analysis

According to SHANON, information entropy is the amount of information encompassed or released by a random information source. In particular, the more redundant the source, the less information it contains. Therefore, the entropy is maximum for a source whose symbols are all equiprobable. The entropy expression is given by SHANNON by Eq. 10. For an \(\left( {MC} \right)\) image of size (n, m), we pose \(\left( {t = nm} \right)\) one gets:

$$\varvec{Entropy}\,\varvec{H}\,\left( {\varvec{MC}} \right) = \frac{1}{\varvec{t}}\mathop \sum \limits_{{\varvec{i} = 1}}^{\varvec{t}} - \varvec{p}\left( \varvec{i} \right)\log_{2} \left( {\varvec{p}\left( \varvec{i} \right)} \right)$$
(10)

Simulations performed on 70 identical-sized color images are represented graphically by the Fig. 11.

Fig. 11
figure 11

Entropy of 70 images of the same size

The entropy values of the images encrypted by our algorithm are around 8, it is the maximum value for a color image encoded on 8 bits. It confirms the uniformity of the histograms. This proves that this approach is safe from entropy attack.

Simulations conducted on 70 color images of varying sizes are represented in graphical format in Fig. 12.

Fig. 12
figure 12

Entropy of 70 images of the varying sizes

  1. (d)

    Correlation analysis

Correlation is a technique that compares two images to estimate the displacement of pixels in one image relative to another reference image. Adjacent pixels of a standard image of a clear image have a strong correlation. A good crypto image system must remove such correlation in order to avoid any statistical attack. The correlation expression is defined by Eq. 11

$$\varvec{correlation}\;\varvec{r} = \frac{{\text{cov} (\varvec{x},\varvec{y})}}{{\sqrt {\varvec{V}\left( \varvec{x} \right)} \sqrt {\varvec{V}\left( \varvec{y} \right)} }}$$
(11)
  1. (a)

    Horizontal correlation

Simulations made on 70 images of the database gave the horizontal correlation scores are displayed in Fig. 13.

Fig. 13
figure 13

Horizontal correlation of 70 images of the varying sizes

Figure 10 shows that the horizontal correlation values of the encrypted images are close to zero. This ensures high security against correlation attacks.

  1. (b)

    Vertical correlation

Simulations made on 70 images of the database gave the vertical correlation scores are displayed in Fig. 14.

Fig. 14
figure 14

Vertical correlation of 70 images of the varying sizes

Figure 11 shows that the vertical correlation values of the encrypted images are close to zero. This ensures high security against correlation attacks.

  1. (c)

    Diagonal correlation

Simulations made on 70 images of the database gave the diagonal correlation scores are displayed in Fig. 15

Fig. 15
figure 15

Diagonal correlation of 70 images of the varying sizes

Figure 11 shows that the diagonal correlation values of the encrypted images are close to zero. This ensures high security against correlation attacks.

  1. (2)

    Differential analysis

In general, an attacker can make a very small change on the clear image (for example, change only one bit, then study the change in the result obtained. In so doing, it may be able to find a relevant relationship with the original image and the encrypted image. If a small change in the clear image may cause a large change in the encrypted image, in terms of diffusion and confusion, in this case this differential attack would become ineffective and virtually useless. To test the influence of pixel change on the entire encrypted image by the proposed algorithm, two common measures were used: the pixel change rate (NPCR) and the unified average pixel change intensity (UACI). Note two encrypted images, whose corresponding free-to-air images differ by only one pixel, from \(\left( {\varvec{C}_{1} } \right)\) and \(\left( {\varvec{C}_{2} } \right)\), respectively. The expressions of these two statistical constants are given by Eqs. 12 and 13, for an image size (n, m)

The NPCR mathematical analysis of an image is given by the Eq. 12

$$\varvec{NPCR} = \left( {\frac{1}{{\varvec{nm}}}\mathop \sum \limits_{{\varvec{i},\varvec{j} = 1}}^{{\varvec{nm}}} \varvec{D}\left( {\varvec{i},\varvec{j}} \right)} \right)\varvec{*}100$$
(12)
$$\varvec{With}\,\varvec{D}\left( {\varvec{i},\varvec{j}} \right) = \left\{ {\begin{array}{*{20}l} 1 \hfill & {if\,\varvec{C}_{1} \left( {\varvec{i},\varvec{j}} \right) \ne \varvec{C}_{2} \left( {\varvec{i},\varvec{j}} \right)} \hfill \\ 0 \hfill & {if\,\varvec{C}_{1} \left( {\varvec{i},\varvec{j}} \right) = \varvec{C}_{2} \left( {\varvec{i},\varvec{j}} \right)} \hfill \\ \end{array} } \right.$$

The UACI mathematical analysis of an image is given by the Eq. 13

$$\varvec{UACI} = \left( {\frac{1}{{\varvec{nm}}}\mathop \sum \limits_{{\varvec{i},\varvec{j} = 1}}^{{\varvec{nm}}} \varvec{Abs}\left( {\varvec{C}_{1} \left( {\varvec{i},\varvec{j}} \right) - \varvec{C}_{2} \left( {\varvec{i},\varvec{j}} \right)} \right)} \right)\varvec{*}100$$
(13)

The figure (Fig. 16) shows the NPCR calculation of 70 images of different sizes.

Fig. 16
figure 16

NPCR of 70 images of the varying sizes

All detected values are inside the confidence interval \(\left[ {99,932 99,946} \right]\). These values are largely sufficient to affirm that our crypto system is protected from known differential attacks

The figure (Fig. 17) shows the UACI calculation of 70 images of different sizes

Fig. 17
figure 17

UACI of 70 images of the varying sizes

All detected values are inside the confidence interval \(\left[ {33;34 33,35} \right]\). These values are largely sufficient to affirm that our crypto system is protected from known differential attacks.

  1. (a)

    Avalanche effect

The avalanche effect is a required property in virtually all cryptographic hash functions and block coding algorithms. It causes progressively more important changes as the data is propagating in the structure of the algorithm. Therefore, by perturbing a single bit at the input, we can obtain a very different output, (about 1 bit out of 2 changed) explaining the name of this phenomenon. The avalanche effect makes it more difficult to reverse the function due to its chaotic properties (if well designed).

This constant determines the avalanche impact of the cryptographic structure in place. It is approximated by the Eq. 14

$$AE = \left( {\frac{{\mathop \sum \nolimits_{i} bit\,change}}{{\mathop \sum \nolimits_{i} bit\,total}}} \right)*100$$
(14)

Figure 13 depicts the evaluation of the AE score for 70 images examined by our approach.

All values returned from the AE by our method are all in the range of residual values \(\left[ {73,96\quad 74;02} \right]\). This guarantees that a one bit change in the clear image will be reflected by a change of at least 78% of the encrypted image’s bits.

  1. b)

    Signal-to-peak noise ratio (PSNR)

    1. (a)

      MSE

The image quality estimation to be based on the pixel change was obtained by processing the PSNR values and the MSE (Fig. 18). These are the error metrics used to compare the image and the cipher image.

Fig. 18
figure 18

Avalanche effect

Mean Square Error (MSE): This is the cumulative square deviation between the original image and the additional noise image. When the MSE level is reduced, the error is reduced.

This constant measure the distance between the pixels of the clear image and the encrypted image. It is calculated by the Eq. 15

$$\varvec{MSE} = \mathop \sum \limits_{{\varvec{i},\varvec{j}}} \left( {\varvec{P}\left( {\varvec{i},\varvec{j}} \right) - \varvec{C}(\varvec{i},\varvec{j}} \right)^{2}$$
(15)

\(\left( {P\left( {i,j} \right)} \right)\); pixel of the clear image

\(\left( {C\left( {i,j} \right)} \right)\): pixel of the cypher image

  1. (b)

    PSNR

The signal-to-peak noise ratio, often abbreviated PSNR, is a engineering term for the ratio between a signal’s maximum possible power and the power of distorted noise that affects the precision of its display. Since many signals have a very large dynamic range, the PSNR is generally stated in terms of the logarithmic decibel scale. The PSNR mathematical analysis of an image is given by the Eq. 16

$$\varvec{PSNR} = 20\varvec{Log}_{10} \left( {\frac{{\varvec{I}_{{\varvec{max}}} }}{{\sqrt {\varvec{MSE}} }}} \right)$$
(16)

For RGB color images, the definition of PSNR is the same except that the MSE is the sum of all square value changes. In the alternative, for color images, the image is transcoded into a separate color space and the PSNR is displayed for each channel in that color space. The acceptable PSNR values are the real numbers in the domain (5, 10). Simulations made on over 70 images of various magnitudes and formats returned the same results as depicted in the Fig. 19.

Fig. 19
figure 19

SNR of 70 images of the varying sizes

All values returned from the PSNR by our method are all in the range of residual values \(\left[ {5;4 12;10} \right]\).

  1. (c)

    Speed analysis

Assuming that the traditional DES and AES encryption algorithms operate in ECB mode, they are vulnerable to statistical attacks and selected plain text attacks. In addition, these two systems require no linking on clear and encrypted blocks, and are consequently deficient in the face of differential attacks. In this sense, we will compare the time complexity for reference images with these two crypto systems. In addition to safety parameters, runtime is an important factor in evaluating image encryption system performance. To approve and document the quality of our methodology in a timely fashion. And finally, thanks to these properties, we have selected the “Lena” grayscale image with three different sizes (256 × 256, 512 × 512 and 1024 × 1024). . The results are presented in the Table 1

Table 1 Execution time (in second)

We compare our results with the two classical algorithms AES and DES, we can affirm that the time of execution is reasonable. The test was performed on other images of different sizes, and we obtained acceptable scores. This is due to the low algorithm complexity of the implemented algorithms in our strategy.

  1. (1)

    Bio security

    1. (a)

      Nucleotide statistical analyses

In this part we will study the nucleotide presence frequency in the encrypted image.

  1. (a)

    Percentage nucleotides isolated

%

A

C

T

G

24

26

25

25

There is nearly uniformity in the distribution of nucleotides in the encrypted image.

  1. (b)

    Percentage of nucleotides used in pairs

figure k

We notice that the template is not symmetrical.

In a regrouping of two nucleotides we notice that:

figure l

The frequency of occurrence of a nucleotide in the first position is not identical to its incidence in the second position.

  1. (c)

    Percentage of codons

In a regrouping of nucleotides into codons, we get the following results.

figure m

from this table, we extract the frequency of the nucleotide position in the codon:

figure n

We notice that the template is not symmetrical. There is nearly uniformity in the distribution of codons in the encrypted image.

In our approach, we pseudo-randomly assigned nucleotides to the integer values of the original image, and to chaotic patterns without going through a DNA gene bank, which made it very difficult or indeed impossible to detect the gene of the DNA. In addition, the complementary values are also assigned in a pseudo-random way and do not obey the calculated classical complementary, so any reconstruction of these values requires knowledge of the encryption keys.

  1. (b)

    Math security

The large size of our encryption key protects the system from brutal attacks. In parallel, the different pseudo random choice of nucleotides for the transcription of chaotic maps and pixels of the original image complicates the detection and screening of nucleotides and their complementary ones. In addition, the key mask used in conjunction with (One Time Pad) OTP is the same sized as the clear image. It is widely believed that OTP is secured.

3 Conclusion

This article outlines a new method of color image encryption using several biological DNA and RNA property. Such a technique models the mathematical problem into a biological question. First, two Feistel rounds of 12 nucleotides have been applied to each block. The first is a chaotic shift of nucleotides, while the second is a confusion caused by a random matrix, followed by a diffusion with the next clear block, to increase avalanche response. In a second stage, a confusion of the output vector is established. A transition to complementary nucleotides is implemented, with amino acid formation. Finally, the 5′ and 3′ directions are computed and the stop codons are evaluated, the EXONS blocks are isolated from the INTRONS blocks. EXONS have been substituted, while INTRONS have been chaotically shifted. Simulations conducted on a significant number of color images allow us to ensure that our approach can overcome any known attack.