# Securing IoT Devices against Differential-Linear (DL) Attack Used on Serpent Algorithm
## 5 Results and Analysis  
On Serpent, the results revealed that the DL attack was possible. The main building blocks that performed all possibilities of the DL attack were the size of the S-Boxes. The Serpent's S-Boxes were \(4\times 4\), indicating 4-bit inputs and 4-bit outputs. The experiment determined that it was straightforward to build a _DLCT_ utilizing 4 \(\times\) 4 Serpent S-Boxes (refer to Table 9 and Figure 7). The experiment used a C++ program to generate a _DLCT_ of 4 \(\times\) 4 and 4 \(\times\) 32 S-Box. The validation of the code was examined by using a 4 \(\times\) 4 Serpent S-Box and a new generated 4 \(\times\) 32 S-Box of Mag_Serpent algorithm. The purpose of validating the code was to confirm the correctness of the written C++ experimental output _DLCT_ compared to the theoretical outputs. Note that the _DLCT_ of 4 \(\times\) 4 S-Box is a matrix of 2\({}^{4}\)\(\times\) 2\({}^{4}\) = 16 \(\times\) 16 matrix with 256 entities (refer to Table 9 and Figure 7). The experiment continued on a newly developed 4 \(\times\) 32 S-Box of Mag_Serpent algorithm. The program malfunctioned after five hours before _DLCT_ was executed. No computer or machine could compute the _DLCT_ matrix of 2\({}^{4}\)\(\times\) 2\({}^{32}\) = 16 \(\times\) 4,294,967,296, which is expected to contain 68,719,476,736 entities. Without the _DLCT_, it was impracticable to conduct a DL attack on a newly developed 4 \(\times\) 32 S-Box of Mag_Serpent algorithm. On Serpent, results revealed that the DL attack was possible. The main building blocks that performed all possibilities of the DL attack were the size of the S-Boxes. The Serpent's S-Boxes were 4 \(\times\) 4, indicating 4-bit inputs and 4-bit outputs. The experiment determined that it was straightforward to build a _DLCT_ utilizing the 4 \(\times\) 4 Serpent S-Boxes (refer to Table 9 and Figure 7). A _DLCT_ of 4 \(\times\) 4 S-Box has a first integer of 16, which is (\(2^{4}\)) considering the fact that S-Box required four-bit outputs as the most distinguished parameter. Sixteen is a byte donated as 00010000 in binary notation. If each 4 \(\times\) 4 S-Box _DLCT_ is treated as a byte, then the memory required to construct a 4 \(\times\) 4 S-Box _DLCT_ was 8-bit \(\times\) 256 = 256 bytes. Note that 256 is the number of items displayed on a 4 \(\times\) 4 S-Box _DLCT_. A machine or computer can efficiently handle 4096 bytes (refer to Table 9 and Figure 7). From the above computations, S-Box required thirty-two bits as the first parameter. The study presumed that the _DLCT_ of 4 \(\times\) 32 S-Box would have the first number item as 4,294,967,296, which is (\(2^{32}\)). The number 4,294,967,296 is a triple word comprising 5 bytes donated as 000000001000000000000000000000000000000000 in binary notation. If each 4 \(\times\) 32 S-Box _DLCT_ element was treated as a triple-word, then the memory required to build 4 \(\times\) 32 S-Box _DLCT_ would be 40 \(bits\)\(\times\)\(2^{4}\)\(\times\)\(2^{32}\) = 343,597,383,680 bytes. Note that 343597383680 was an expected number of entities displayed on a 4 \(\times\) 32 S-Box _DLCT_. A machine or computer cannot easily handle a computation memory of 343597383680 bytes of each item. Hence, the C++ _DLCT_ of the 4 \(\times\) 32 S-Box program malfunctioned before execution. Refer to Table 9 and Figure 7.  
_DLCT_ of the Serpent S-Box was a table of \(2^{4}\) rows \(\times\)\(2^{4}\) columns with high probabilities of comprehending a key. The experiment used the C++ program to generate the _DLCT_ of 4 \(\times\) 4 Serpent S-Box. After examining the method, the results confirmed that attacking the Serpent algorithm using _DLCT_ was achievable. The study applied the newly created 32-output-bit S-Boxes on Serpent found on IoT devices to block a DL attack (refer to Table 9 and Figure 7). The new 32-bit output S-Boxes prevented the construction of _DLCT_, which was presumed to be a \(2^{4}\)\(\times\)\(2^{32}\) matrix, since the new output bits increased from 4 bit to 32 bit.