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 LWEBGV12.

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 DCRPai99
  • Multiplicatively homomorphic encryption from RSARSA78
  • HE → rerandomizable encryption → SZK BPPBL13
  • 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