# DNA-PRESENT: An Improved Security and Low-Latency, Lightweight Cryptographic Solution for IoT
## 3 Proposed DNA-PRESENT Block Cipher
### DNA-PRESENT Encryption Process  
The PRESENT block cipher's SPN structure has been improved, with three additional layers aimed at increasing ciphertext diffusion. The challenge while adopting any diffusion layer is that it may slow the encryption process. However, the selected layer has already been used as a low-cost diffusion [38], and the shift operation will break the sequence of the cipher state. Moreover, it has been validated with gate requirements as a cost estimation, _generateRoundKeys()_ generates round keys using the enhanced key schedule presented and validated in [41]. The block diagram illustrating the encryption process is shown in Figure 9, and the pseudocode of encryption of DNA-PRESENT is given below, followed by the explanation of newly introduced diffusion layers. The encryption-decryption process of DNA-PRESENT is presented in Figure 9 and Algorithm 2, in which a total of 17 round keys are to be used, where 16 round keys are generated using the secret key and the secret key itself is the first round key. A similar process is repeated for decryption but in reverse order. In PRESENT and DNA-PRESENT, round keys are produced ahead of the encryption and decryption processes, with the sole difference being their utilization in reverse order. ```
1:generateRoundKeys()
2:for\(i=1\) to 16 do
3:addRoundKey(STATE,\(K_{i}\))
4:sBoxLayer(STATE)
5:LeftShiH(STATE)
6:DNAReplication(STATE)
7:RightShiH(STATE)
8:pLayer(STATE)
9:endfor
10:addRoundKey(STATE,\(K_{17}\))
```  
**Algorithm 2** Pseudocode of PRESENT block cipher Encryption  
Figure 9: Encryption and decryption of DNA-PRESENT block cipher. 1. **LeftShift0**: The STATE is the current value of the text, and at iteration \"\(i\)\", this value is updated by a left shift of 3 bits, \(\text{STATE}=\left[S_{63}\ldots S_{0}\right]\rightarrow\left[S_{60},S_{59}, \ldotsldots S_{0},\ldots S_{61}\right]\), as in Figure 10.
2. **DNAReplication(0)**: DNA is a unique entity in living organisms, and its replication process (from Figure 3) has been simulated to enhance the randomness in PRESENT cipher [18]. Four bases in DNA make up the entire human protein structure--Adenine (A), Cytosine (C), Guanine (G), and Thymine (T). The following basic steps are involved in the DNA replication process presented in Figure 11. * The STATE is fragmented in two halves each comprising 32 bits, as presented in Figure 11. The left half of 32 bits is \(\left[S_{31},S_{30},S_{29},\ldotsldots S_{0}\right]\), and the right half is \(\left[S_{63},S_{62},S_{61},\ldotsldots,S_{3}0\right]\). Following the natural DNA replication process in Figure 3, the new strand is built against the old strand. Hence, the left half stays unchanged; however, the right half undergoes replication. * Binary bits of the right half are converted into DNA base sequence using 00-A, 11-T, 10-C, and 01-G coding [60; 61]. [11000110] DNA encoding [TAGC] * The DNA sequence undergoes conversion to mRNA by substituting the base Thymine (T) with Uracil (U); this process is referred to as _\"Transcription\"_. [TAGC] mRNA sequence [UAGC] In the next step, mRNA is transformed into a tRNA sequence using the DNA complement rule for bases, carrying a conversion of bases as A-U, U-A, G-C, and C-G, which is called the Biological _\"Translation\"_ Process. [UAGC] tRNA sequence [AUCG] * _\"Reverse Transcription\"_ is applied on the obtained sequence where the Uracil base (U) is replaced with the Thymine (T) base. [AUCG] Reverse transcription [ATCG] After DNA replication, the sequence is converted into binary using A-00, T-11, C-10, and G-01 and combined with the original left half to create the updated STATE = \(\left[S_{31},S_{30},S_{29},\ldots,S_{2},S_{1},S_{0}\right]\).