# Lightweight Integrity Preserving Scheme for Secure Data Exchange in Cloud-Based IoT Systems
## 4 Proposed Scheme
### Security Proofs  
The underlying principle in the scheme that we are proposing is that in order for the IoT-cloud system to generate a correct response, which is then received by the semi-trust server, the data must be stored correctly. **Definition 1**. : _It is argued that offence algorithms, such as GenProof(\(\sigma\)), should not be held by the IoT-cloud system. This is because these algorithms might allow smart device users to gain accurate evidence of validation and to compute the outcome employed in VerifyProof()._  
Hence, in Definition 1, we show that the IoT-cloud system will not create a correct proven result by using _GenProof_ (\(\sigma\), \(Ck\)). Next, we demonstrate that the verification algorithm _VerifyProof_ (\(Ak\), \(Vk\)) will fail in the absence of the correctly proven result. **Theorem 1**. : _One argues that the IoT-cloud system is unable to create an accurate reaction in the absence of a file._  
Proof of Theorem 1.: Confirms that the IoT-cloud system performs sufficiently with a consistent and correct methodology without deviating from the dictated procedures. Nonetheless, the IoT-cloud system might ignore or intentionally remove infrequently retrieved information files that are recovered and owned by typical smart device users. Furthermore, the IoT-cloud system can conceal information, deceptions, or manipulation created by hackers or Byzantine malfunctions in order to sustain its status [16]. For example, the IoT-cloud system possesses file \(\sigma\) without possessing file \(F\). As a result, the IoT-cloud system has \(\sigma\). However, the IoT-cloud system cannot create \(Cf\) without \(F\). The offense algorithm _GenProof_(\(\sigma\), \(Ck\)) cannot create \(Ak\) as \(Ak\) must be calculated using the equation \(Ak=\sigma\)_XOR_Cf_. \(Cf\) can only be calculated through \(Cf=H(F\mid Ck)\), which means that the IoT-cloud system is unable to create an accurate reaction if it does not have the right file. \(\square\)  
**Theorem 2**. : _Argues that in the absence of an accurate \(Ak\), the verification algorithm VerifyProof_ (\(P\), \(sk\)) _will not be able to generate the proof correctly._  
Proof of Theorem 2.: Suggests that the verification algorithm _VerifyProof_ (\(P\), \(sk\)) contrasts the audit key \(Ak\) and the \(Vk\) key. The semi-trust server currently stores \(Vk\), but the IoT-cloud system transmits \(Ak\). When the IoT-cloud system is unable to transmit an audit key \(Ak\), the algorithm outcomes will be incorrect. When an attacker acquires \(Ak\) during transmission, the key \(Ak\) can no longer be employed as it is a one-time key. \(\square\)  
**Theorem 3**. : _Argues that the suggested encouragement system is a one-time key._  
Proof of Theorem 3.: Argues that once the audit is complete, the IoT-cloud system possesses two keys, \(Ck\) and \(Ak\), but especially \(Ak\). In order to maintain \(Ak\), the IoT-cloud system can erase a file. Therefore, when the semi-trusted server sends the audit of this specific file again, the IoT-cloud system will send the audit key _Ak_ file. Thus, the proposed system uses a one-time key generated by the key chain method. The semi-trust server for a single file alters both of the keys created through the key chain method (_Ck_ and _Ak_) to create n keys through the following equations:  
\[\text{If }j=0\text{, }\text{C}k_{0}=H(Wk\mid\mid c)\]  
\[V\;ki_{0}=H(Wk\mid\mid v\mid\mid F\;ILEID)\]  
\[\text{If }j>0\text{, }\text{C}k_{j}=H(Wk\mid\mid c\mid\mid\text{C}k_{j-1}),\]  
\[V\;k_{ij}=H(Wk\mid\mid v\mid\mid F\;ILEID\mid V\;k_{ij(-1)})\qquad\text{when }(0 \leq j\leq n)\]  
The semi-trust server repeatedly executes the upload phase through the key chain method. Within this stage, the semi-trust server possesses the nth metadata (\(\varphi=\{\sigma j\}\), \(0\leq j\leq n\)) for a single file and transmits \(\varphi\) and \(F\) to the IoT-cloud system. Within the integrity checking process, the semi-trust server unsystematically selects a single _Ckj_ to transfer to the IoT-cloud system.