Homomorphic encryption

A homomorphic encryption (HE) scheme allows computation on encrypted data: given and , one can produce for in 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 . (IND-CCA2 security is incompatible with non-trivial homomorphism: applies to the challenge ciphertext and queries the decryption oracle on the result — folklore. IND-CCA1-secure FHE is known, e.g. from LWE in the ROM — CRRV17.)

Variations

Partially homomorphic encryption (PHE)

Supports homomorphism over a restricted class: only additions or only multiplications, but not both.

Additively homomorphic encryption

Supports only additions, e.g. Paillier from DCR — Pai99.

Multiplicatively homomorphic encryption

Supports only multiplications, e.g. ElGamal — ElGamal85, IND-CPA under DDH — TY98. Unpadded RSA is multiplicatively homomorphic but deterministic, hence not IND-CPA secure — standard.

Somewhat homomorphic encryption (SHE)

Supports both additions and multiplications, but only up to a bounded number (bounded by the multiplicative depth of the circuit).

Bootstrappable SHE

An SHE scheme is bootstrappable if contains its own decryption circuit augmented by one NAND gate, for all ciphertexts — Gen09.

Leveled fully homomorphic encryption

Supports all polynomial-size circuits of depth at most , where is fixed at key generation. Leveled FHE from LWE — BV11; without bootstrapping — 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 there is a polynomial such that every ciphertext output by has length at most , independent of the evaluated function — BV11. Gentry’s original FHE is compact.

Strongly homomorphic encryption

An HE scheme is strongly homomorphic if is distribution-preserving: for all and , the output of on fresh encryptions is statistically close to a fresh encryption — BL13.

Other results

Participates in

Builds on Homomorphic encryption

Produces Homomorphic encryption

Barriers