# Security Enhancement for Data Migration in the Cloud
## 4 Proposed Model
### Overview of the Decoding Process  
During the decoding process, the verification step is first observed in Figure 3a. This step consists of checking the integrity of the file and deconcatenating the \(m\) correct slices data required for reconstructing \(F^{\prime}\). In the case of slice corruption, an authentication message will be displayed, and the corresponding slice data will be replaced by another one.  
After the verification step done, we apply IDA to the \(m\) resulting slices as shown in Figure 3b, to reconstruct the encrypted data \(F^{\prime}\) and finally recovert the original data file \(F\) having the encryption key \(\kappa\) with \(AES_{256}\) as detailed in Figure 3. For convenience, we assume no error due to malice or accidents existing in the first \(m\) slices use for recombination. Consider \(\delta^{\prime}\) an \(m\times\omega\) submatrix of \(\delta\) and \(G^{\prime}\) be an \(m\times m\) principal submatrix of \(G\). According to [PERSON]'s IDA [8], \(G\) is a Cauchy matrix in which any square submatrix is nonsingular. Thus, \(G^{\prime}\) is invertible. Let \(G^{\prime-1}\) be the inverse of \(G^{\prime}\), and, computing \(G^{\prime-1}\cdot\delta^{\prime}\), results in \(\Omega\).  
\begin{table}
\begin{tabular}{l} \hline \hline
**Procedure** \\ \hline
**Input:** Original data \(F\); key \(\kappa\), Threshold \((m,n)\) \\
**Output:**\(F^{\prime\prime}\) \\ _(Note that \(AES_{256}\) is the encryption algorithm, \(SHA_{512}\) is the hashing algorithm)_ \\ _compute the encrypted version of the original data file \(F\) using \(AES_{256}\) under \(\kappa\)_ \\ \(F^{\prime}\):= \(AES_{256}\) with \(F\) and \(\kappa\) \\ _Let \(1 DA_{CRS}\) be the slicing algorithm that return a vector \(F^{\prime\prime}\) under the threshold (\(m\),\(n\))_ \\ \(F^{\prime\prime}\):= \(1 DA_{CRS}\) with \(F^{\prime}\), and \(n\) \\
**set** indexCount \(\mathbf{to}\) 1 \\
**set**\(F^{\prime\prime}\) := new initial list \\
**for** each \(f_{i}\) in \(F^{\prime\prime}\)**do** \\
**set**\(f_{i}^{\prime}\) := **call**\(SHA_{512}\) with \(f_{i}\) \\ _concatenate the data \(f_{i}\) with the corresponding hash value \(f_{i}^{\prime}\)_ \\
**set**\(concat_{(f_{i},f_{i}^{\prime})}\) := \(f_{i}+f_{i}^{\prime}\) \\ _Append to \(F^{\prime\prime\prime}\) the concatenated data \(concat_{(f_{i},f_{i}^{\prime})}\)_ \\ \(F^{\prime\prime\prime}[indexCount]\) := \(concat(f_{i},f_{i}^{\prime})\) \\
**increment** indexCount \\
**return:**\(F^{\prime\prime\prime}\) \\
**end procedure.** \\ \hline \hline \end{tabular}
\end{table}
Table 2: Encoding algorithm pseudo code.  
Figure 3: Decoding steps: (**a**) Verification step; (**b**) reconstruction step.  
\[G^{\prime-1}\cdot\delta^{\prime} =\begin{pmatrix}\partial_{11}&\partial_{12}&\cdots&\partial_{1m}\\ \partial_{21}&\partial_{22}&\cdots&\partial_{2m}\\ \vdots&\vdots&\ddots&\vdots\\ \partial_{m1}&\partial_{m2}&\cdots&\partial_{mm}\end{pmatrix}\cdot\begin{pmatrix} f_{11}&f_{12}&\cdots&f_{1\omega}\\ f_{21}&f_{22}&\cdots&f_{2\omega}\\ \vdots&\vdots&\ddots&\vdots\\ f_{m1}&f_{m2}&\cdots&f_{m\omega}\end{pmatrix}\] \[=\begin{pmatrix}\mathrm{Y}_{1}&\mathrm{Y}_{m+1}&\cdots&\mathrm{Y} _{(\omega-1)\cdot m+1}\\ \mathrm{Y}_{2}&\mathrm{Y}_{m+2}&\cdots&\mathrm{Y}_{(\omega-1)\cdot m+2}\\ \vdots&\vdots&\ddots&\vdots\\ \mathrm{Y}_{m}&\mathrm{Y}_{2m}&\cdots&\mathrm{Y}_{\omega\cdot m}\end{pmatrix}= \Omega,\]  
where \(\mathrm{Y}_{j}=\sum_{t=1}^{m}\partial_{it}\cdot f_{tk};1\leqslant j\leqslant S ;i\equiv j\bmod[m];k=\left[\frac{j}{m}\right]\).  
Hence, \(F^{\prime}\) is reconstructed having the first \(m\) slices data as shown in Equation (1).  
Finally, using AES-256, we can recompute \(F\) with the same secret key \(\kappa\) used during the encryption step in Figure 2, \(F=\Delta(F^{\prime},\kappa)\). Because the secret value is kept by the user or IT manager, an opponent cannot modify an intercepted piece of data and cannot generate a false message [5]. Table 3 shows the decoding algorithm.