In very simple words, Homomorphic Encryption (HE) is an encryption scheme that lets us compute on encrypted data/cipher text.
Generally Encryption Schemes have 3 methods/functions -:
1. Key Generation
But, Homomorphic Encryption comes with an additional capability to compute on encrypted data. More sophisticatedly, HE has an additional "Evaluation operation" that computes any arbitrary function f on cipher-text.
Let's understand it better with a scenario given below:
- Alice has data m. She needs to compute some arbitrary function F over m. She does not have the capability/resources to compute F over m.
- She does not want to take any risk with data m. So, she encrypts m with public key pk. She sends Enc(m) along with F over to the server.
- The evaluation function has to be performed on the cloud. Evaluation operation in HE computes Function F over the Encrypted data i.e. F(C) i.e. F(Enc(m)).
Result at Cloud = F(C)
- This result is sent back to Alice. But what Alice Needs is F(m) and not F(c). This is where the core property of HE comes in.
The Evaluation of F over C = Encryption of F(m).
F(C) = E(F(x))
This means, when you compute function F on ciphertext C, you get the encrypted form of computing F over plain text m.
- Therefore, When Alice receives Result = F(C), she gets Enc(F(m)) which is decrypted to know F(m).
HE can be defined in one line as an encryption scheme with the following property:
F(E(x)) = E(F(x))
F is the function that we need to compute on data.
E referes to Encryption. x is plain text.
I hope this clears the basic idea of Homomorphic Encryption (HE).
There’s more to come about Homomorphic Encryption . Stay updated.