Homomorphic encryption
A homomorphic encryption (HE) scheme allows computation on encrypted data: given and , one can produce for some function class , without decrypting. A fully homomorphic encryption (FHE) scheme supports arbitrary polynomial-time functions. The first FHE construction was given by Gentry — Gen09.
Syntax
A homomorphic encryption scheme is a tuple of efficient algorithms with respect to message space and a supported function class :
- outputs a public key and secret key,
- encrypts a message under the public key,
- decrypts a ciphertext under the secret key,
- homomorphically evaluates on ciphertexts, producing such that .
Properties
Correctness
For all and all , decryption of the evaluated ciphertext returns the correct output:
Security
A homomorphic encryption scheme is IND-CPA secure if the standard PKE semantic security game is satisfied: no efficient adversary can distinguish from for any . (CCA security is incompatible with homomorphism.)
Variations
Partially homomorphic encryption (PHE)
Supports homomorphism over a restricted class: only additions (e.g., Paillier from DCR) or only multiplications (e.g., unpadded RSA), but not both.
Somewhat homomorphic encryption (SHE)
Supports both additions and multiplications, but only up to a bounded number (bounded by the multiplicative depth of the circuit).
Leveled fully homomorphic encryption
Supports all polynomial-size circuits of a-priori bounded depth (set at key generation time), without bootstrapping. First efficient construction from LWE — BGV12.
Fully homomorphic encryption (FHE)
Supports arbitrary polynomial-time computation via bootstrapping: a special homomorphic evaluation of the decryption circuit that refreshes the noise in a ciphertext. First construction based on ideal lattices — Gen09.
Compact FHE
An FHE scheme is compact if the ciphertext and the evaluation circuit’s output have bounded size, independent of the circuit being evaluated. Gentry’s original FHE is compact.
Other results
- First fully homomorphic encryption scheme from ideal lattices using bootstrapping — Gen09
- Leveled FHE without bootstrapping from LWE using modulus switching — BGV12
- FHE + DEPIR: doubly-efficient PIR and RAM computation from Ring-LWE — LMW23
- Additively homomorphic encryption from DCR — Pai99
- Multiplicatively homomorphic encryption from RSA — RSA78
- HE → rerandomizable encryption → SZK BPP — BL13
- Circular security: FHE schemes often need to encrypt their own secret key; the assumption that this is secure is called circular security and is not implied by standard assumptions