# Security Enhancement for Data Migration in the Cloud
## 5 Experimental And Result Evaluations  
To assess the actual performance, we analyzed the performance of our algorithm by measuring the computation time of the encoding and decoding process for a data file, depending on the size (51 KB to 347,778 KB) and a variability of threshold \((m,n);1\leq m\leq n\) and \(n\leq 256\). We carry out these experiments on a Windows 7 Operating System (Redmond, WA, USA) with 8-core Intel Xeon E5-1620 (Santa Clara, CA, USA) at 3.50 GHZ with 32 GB of memory. In Figure 4, we have shown the computation time of the encoding operation. The encoding time for our algorithm mainly depends on the size of the data and the value of the \((m,n)\) threshold. We obtained the computation time by summing the encryption time of \(x\) KB data plus the time to execute IDA with C-RS, and the time to hash and concatenate each slices file. The maximum encoding \begin{table}
\begin{tabular}{l} \hline \hline
**Procedure** \\ \hline
**Input:** vector \(H\); key \(\kappa\),value \(m\) \\
**Output:** Original data \(F\) \\ _(Note that_\(AES_{256}\) _is the encryption algorithm,_\(SHA_{512}\) _is the hashing algorithm)_ \\ _let integrityCheck function checks the integrity of a particular data concat_\((_{f_{i},f_{i}})\) \\
**set** indexCount **to** 1 \\
**set**\(F^{\prime}:=\) new initial list \\
**for** each \(concat(_{i,f_{i}^{\prime}})\) in \(H\)**do** \\
**if** integrityCheck with \(concat(_{f_{i},f_{i}^{\prime}})\)**then** \\ _deconcatenate_\(f_{i}\) _from concat_\((_{f_{i},f_{i}^{\prime}})\) \\   compute \(f_{i}:=concat(_{f_{i},f_{i}^{\prime}})\) - \(f_{i}^{\prime}\) \\
**else** \\   compute \(H[indexCount]\) \\ _Append to_\(F^{\prime\prime}[indexCount]\) _the concatenated data_\(f_{i}\) \\
**set**\(F^{\prime\prime}:=f_{i}\) \\ _Let_\(IDA_{CRS}\) _be the slicing algorithm that return a vector_ \(F^{\prime}\) _under_ \(m\) \\ _Reconstruct_ \(F^{\prime}\) _using_\(IDA_{CRS}\) \\ _\(F^{\prime}[indexCount]:=IDA_{CRS}\) with \(F^{\prime},m\) \\ _Compute the decrypted version of_ \(F\) _using_\(AES_{256}\) _under_ \(\kappa\) \\ _\(F:=AES_{256}\) with \(F^{\prime}\) and \(\kappa\)_ \\
**return:**\(F\) \\
**end procedure** \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Decoding algorithm pseudo code. time is 14.15 s for a large data file equal to 347,778 KB with \((200,254)\) threshold. We observed for different \((m,n)\) configurations and data less than 347,778 KB that our encoding algorithm yields the best performance, since the average encoding time is 1.966 s.  
In Figure 5, we have shown the running time of the decoding operation. As we have described in Section 5, the decoding time for \(x\) KB data file is equal to the sum of the different steps followed during the process. The maximum computation time is 24.30 s for 347,778 KB file with (2,3) and the average decoding time in this experiment is 2.907 s. The decoding process provides the highest performance for small and medium data size. However, the time required to decode \(x\) KB data depends primarily on the inner verification time and secondly on the reconstruction time. For large data size, these two processes become a bit computationally costly, but better than the preceding works. Depending on the value of \((m,n)\), when the threshold is small, the verification time increases and the reconstruction time decreases. In addition, when the threshold is large enough, the verification time decreases dramatically and the reconstruction time increases. Therefore, we recommend, for the best performance, to use a medium threshold. This will considerably reduce the decoding computation time. In Table 4 below, we displayed the average execution time for each inner step in the encoding and decoding processes. It is quite obvious that the encoding time is principally estimated by the slicing execution time, since it requires more parameters and computations than the other inner processes.