# Securing IoT Devices against Differential-Linear (DL) Attack Used on Serpent Algorithm
## 5 Results and Analysis
That is, a \(2^{4}\)\(\times\)\(2^{32}\) = 256 \(\times\) 4,294,967,296 matrix is required to construct _DLCT_, which needs high computer memory in order to compute and display such a matrix. The experiment demonstrated that it was impracticable to construct a _DLCT_ of a new 32-bit output S-Box using Equation (2) if the Blocker Function is embedded on Serpent's structure, since the maximum size limitation was limited and the memory required had been exceeded. The C++ program of the _DLCT_ with respect to new S-Boxes dashed before _DLCT_ was finally constructed due to the memory limitation of a computer. An ordinary computer cannot construct a matrix of 256 columns \(\times\) 4,294,967,296 rows. The experiment also confirmed that it was impractical to construct a matrix of 256 \(\times\) 4,294,967,296, since a computer has a maximum memory of \(2^{64}\), which is impossible. If there is no _DLCT_, there will be no DL attacks. Therefore, in this study, securing Serpent against DL attacks by using the Blocker Function and 32-bit output S-Boxes worked successfully. The experiment showed that when the Blocker Function was inserted in Serpent's infrastructure, all positions of 32-bit S-Boxes were unchangeable. For instance, a new 32-bit output \(S_{0}(X)\) cannot be changed nor substituted with any arbitrarily new 32-bit output S-Box such as \(S_{1}(X)\), \(S_{2}(X)\),..., or \(S_{7}(X)\). The newly generated S-Boxes cannot be replaced by any 32-bit output S-Box taken from other known algorithms, even though the sizes are equal. In this study, all procedures used to attack the original Serpent using DL attacks were studied and conducted. The C++ programs were written to confirm if an original Serpent could be attacked using _DLCT_ and DL attacks. The C++ programs confirmed and executed the same results defined and provided in Table 9. Table 9 was the theoretical results found by [PERSON] et al. [6] when the original Serpent was attacked using 4-bit output S-Boxes defined in Table 1. All procedures used to attack an original Serpent by [PERSON] et al. [6] were conducted using C++ programs. In this study, the C++ programs confirmed and validated the theoretical results defined in [6]. The experimental results found in this study are given in Figure 7. Table 9 and Figure 7 had the same elements. Table 9 provides the theoretical _DLCT_, as explained by [PERSON] et al. [6], and Figure 7 provides the experimental _DLCT_ results conducted in this study. The serpent was attacked on rounds 10 and 11, whereas Mag_Serpent resisted being attacked all rounds during the DL attack process (refer to Table 18 and Figure 8). The C++ experiment showed that a DL attack was possible with respect to the original Serpent before new S-Boxes and Blocker approaches were implemented, but after the implementation of the novelty of using new 32-bit output S-Boxes and Blocker Function, the DL attack was blocked on a new modified Serpent called Mag_Serpent (refer to Tables 19 and 20). In cryptography, the Avalanche Effect is a satisfactory characteristic of algorithms [21]. If one input bit is inverted (flipped), the output bits have to improve significantly. Such a small adjustment in either the plaintext or the key should produce an excessive variation in the ciphertext in strong algorithms [21]. The Avalanche Effect is advanced in order to  
Figure 8: Results of DL attack. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Name of Algorithms** & \
\begin{tabular}{c} **Before 32-Bit Output S-Boxes** \\ **and Blocker Were applied** \\ \end{tabular} &
\begin{tabular}{c} **After 32-Bit Output S-Boxes** \\ **and Blocker Were Applied** \\ \end{tabular} \\ \hline \multirow{2}{*}{Serpent} & Construction of _DLCT_ was feasible & Construction of _DLCT_ was infeasible due to the requirement of memory \\ \hline \hline \end{tabular}
\end{table} 
Table 19: Results of feasibility of constructing _DLCT_ before and after 32-bit output S-Boxes and Blocker were applied.