As mentioned above, the data owner can encrypt the data before sending it to the cloud. With ordinary encryption, this prevents the cloud provider from operating on the data, limiting the cloud's role to simple storage. Homomorphic encryption overcomes this limitation: it is an encryption technique that allows a party that holds ciphertexts to perform certain operations on the ciphertexts, which mirror the corresponding operations on the plaintexts. In the case of simple homomorphic encryption, there is just one operation on the plaintext that has a corresponding operation on the ciphertext. For example, plain RSA has that property. Suppose ciphertext c1 is the encryption under a public key pk of plaintext m1, and c2 is the encryption under the same key of m2; that is
c1=enc(pk,m1) and c2=enc(pk,m2).
Turn MathJax on