Input: Input data blocks each with the size of 1024KB; Non-Redundant Tag (NRT) |
Output: Detecting the duplicate cipher chunks in the cloud storage. |
Data Owner |
Begin |
1. The data owner receives the Non-Redundant Tag (NRT) from the nearby fog node. |
2. Data owners generate keys to encrypt the data chunk |
a. Data owner generates the value ‘n’ using Pseudo-Random Number |
Generator (PRNG), Here ‘n’ defines the message space and keyspace Zn. |
b. Data owner generates two random vectors ( and). Here, (a0, a1 … |
ax-1) is used to represent the input message (m) and (b0, b1 … bx-1) is |
used to represent the homomorphic output vector. |
c. Data owners keep for decryption (i.e. Private Key) and sends to the |
Cloud Service Provider to perform additive homomorphic encryption on |
the ciphertext. |
3. Encrypts the data chunks using the private keys () |
a. Generate a random number r ∈ Zn. |
b. To encrypt a single data chunk ‘m’, Enc (m, r) = (m + r) mod n is used |
whereas to encrypt an array of input data chunks, Ciphertext () = Enc |
() is used. |
c. Ciphertext () is transferred to the server along with homomorphic vector |
(b0, b1 … bx-1). |
End |
Cloud Service Provider |
Begin |
1. CSP collects the index table information from the fog nodes. |
2. Receives the information about the percentage of non-zero bit in the index table |
for each data chunk from the fog nodes. |
3. Receives the ciphertext from the data owner along with vector (b0, b1 … bx-1) and stores it as, (cipher text, offset) pair (i.e.) (ci, bi). |
4. From the information gathered from Step. 2 (CSP side), Cloud Service Provider |
identifies the high risk (Possibility of redundancy) data chunks. |
5. Additive Homomorphic operations are performed on high risk data chunks. |
a. Consider any two key value pair (t1 and t2) with high risk where t1 = (c1, |
o1) and t2 = (c2, o2), then the redundancy check can be performed using |
additive homomorphic encryption by calculating, t1 + t1 = (c1 + c2; o1 + |
o2) == t2 + t2 = (c1 + c2; o1 + o2) (this could be performed ‘n’ time for |
more accurate results) |
6. If the values are the same, then the data chunks are decided to be redundant data |
chunks. So, the duplicate data block is removed. |
End |