Research Article

FogDedupe: A Fog-Centric Deduplication Approach Using Multi-Key Homomorphic Encryption Technique

Algorithm 5

Multi-key homomorphic encryption–based target-level deduplication.
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