## 3 Novel Tiny Symmetric Encryption Algorithm (NTSA)
The computation of v0, k1, v1, k3 are shown in the following equations. \(v0\) += ((v1 LSHIFT 4) AND k0) XOR (v1 AND kc) XOR ((v1 RSHIFT 5) AND k1)  
\(k1\) += (k0 XOR(xtract(v0))) where function xtract() returns value of array indexed v0. \(v1\) += ((v0 LSHIFT 4) AND k2) XOR (v0 AND kc) XOR ((v0 RSHIFT 5) AND k3)  
\(k3\) += (k2 XOR(xtract(v1))) where function xtract() returns value of array indexed v1. \(v0\) += ((v1 LSHIFT 4) AND k0) XOR (v1 AND kc) XOR ((v1 RSHIFT 5) AND k1)  
\(kc\) is recomputed each time as \(kc=kc-ksc\)  
**Algorithm 1** Novel tiny symmetric encryption algorithm (NTSA) symmetric encryption algorithm  
This process is repeated for 32 cycles and after the last cycle the values of partial keys k1 and k3 are the new values computed and these new partial keys and the cipher text are sent to the decryption process. The NTSA symmetric decryption algorithm uses the cipher text, the key that was already agreed upon by the two parties in communication and the newly computed partial keys k1 and k3 for the decryption purpose. The key constant is initialized to 0 XC6 EF3720. The key schedule constant ksc is computed as floor (\(2^{31}/\O\)). The golden ratio \(\O\) is 1.618033988749895. The 32-bit blocks v1 and v0 are recomputed each time for 32 cycles and partial keys k3 and k1 are recomputed for odd and even rounds respectively to induce key confusion. The computation of k3, v1, k1 and v0 are shown in the following equations. \(k3\) - = (k2 XOR(xtract(v1))) where function xtract() returns value of array indexed v1  
\(v1\) - = ((v0 LSHIFT 4) AND k2) XOR (v0 AND kc) XOR ((v0 RSHIFT 5) AND k3)  
\(k1\) - = (k0 XOR(xtract(v0))) where function xtract() returns value of array indexed v0  
\(v0\) - = ((v1 LSHIFT 4) AND k0) XOR (v1 AND kc) XOR ((v1 RSHIFT 5) AND k1)  
\(kc\) is recomputed each time as \(kc=kc-ksc\)  
**Algorithm 2** The key constant (ksc)  
\(k3\) - = (k2 XOR(xtract(v1))) where function xtract() returns value of array indexed v0. \(v1\) - = ((v0 LSHIFT 4) AND k2) XOR (v0 AND kc) XOR ((v0 RSHIFT 5) AND k3)  
\(k1\) - = (k0 XOR(xtract(v0))) where function xtract() returns value of array indexed v0  
\(v0\) - = ((v1 LSHIFT 4) AND k0) XOR (v1 AND kc) XOR ((v1 RSHIFT 5) AND k1)  
\(kc\) is recomputed each time as \(kc=kc-ksc\)  
**Algorithm 3** The key constant (ksc)  
\(k3\) - = (k2 XOR(xtract(v1))) where function xtract() returns value of array indexed v1  
\(v1\) - = ((v0 LSHIFT 4) AND k2) XOR (v0 AND kc) XOR ((v0 RSHIFT 5) AND k3)  
\(k1\) - = (k0 XOR(xtract(v0))) where function xtract() returns value of array indexed v0  
\(v0\) - = ((v1 LSHIFT 4) AND k0) XOR (v1 AND kc) XOR ((v1 RSHIFT 5) AND k1)  
\(k2\) - = (k2 XOR(xtract(v1)))This process is repeated for 32 cycles and after the last cycle the 32-bit block v0 and v1 contains the decrypted contents. ```
_Encrypt (plaintext v, key k): 1: Start 2: Assign key constant kc = 0 XC6 EF3720 3: Assign k1 = newk1 and k3 = newk3 4: Assign cycle=0 5: Partial key k3 is recomputed as k3 = (k2 XOR(xtract(v1))) where function xtract() returns value of array indexed v1. 6: 32-bit block v1 is recomputed as v1 = ((v0 LSHIFT 4) AND k2) XOR (v0 AND kc) XOR ((v0 RSHIFT 5) AND k3) 7: Partial key k1 is recomputed as k1 = (k0 XOR(xtract(v0))) where function xtract() returns value of array indexed v0. 8: 32-bit block v0 is recomputed as v0 = ((v1 LSHIFT 4) AND k0) XOR (v1 AND kc) XOR ((v1 RSHIFT 5) AND k1) 9: kc = kc - ksc 10: Increment cycle by 11: Repeat step 5 through step 10 until cycle=32 12: Return
```  
**Algorithm 2** NTSA symmetric decryption algorithm  
Figures 5 and 6 show the structure of NTSA encryption and decryption algorithm. Figure 5: Structure of NTSA encryption algorithm. Figure 6: \(Cont.\)  
The notation:  
in v\({}^{\text{O}}\)0,1; O indicates an odd round, and 0,1 indicate the 0_th_ cycle, round 1;  
in v\({}^{\text{E}}\)1,1; E indicates an even round, and 1,1 indicate the 1_st_ cycle, round 1. For computing v\({}^{\text{O}}\)0,1, the second half of the plaintext v1 is used and shift, AND, and XOR operations are performed on v1.