This document provides an overview of homomorphic encryption. It begins by defining homomorphic encryption as a form of encryption that allows specific types of computations to be performed on ciphertext and generate an encrypted result that matches the operations performed on the plaintext when decrypted. It then discusses different types of homomorphic encryption including partially homomorphic (additive or multiplicative), fully homomorphic encryption, and provides examples like RSA, ElGamal, and Paillier. The document concludes by listing some applications of homomorphic encryption such as e-voting, biometric verification, and discusses Paillier encryption specifically.
2. Private Search
Delegate PROCESSING of data
without giving away ACCESS to it
► You: Encrypt the query, send to Google
(Google does not know the key, cannot “see” the query)
► Google: Encrypted query → Encrypted results
(You decrypt and recover the search results)
2 of 32
3. Private Cloud Computing
Delegate PROCESSING of data
without giving away ACCESS to it
(Input: x) (Program: P)
Enc(x), P → Enc(P(x))
Encrypt x
3 of 32
4. A form of encryption which allows specific types of
computations to be carried out on ciphertext and
generate an encrypted result which, when decrypted,
matches the result of operations performed on the
plaintext.
What is homomorphic encryption?
5.
6. Different types of HE
- Partially Homomorphic - (Additively or Multiplicatively)
- RSA
- ElGamal
- Paillier
- Fully Homomorphic
- Gentry’s System
9. A Symmetric Homomorphic
Encryption Scheme over Integers
Shared key: odd integer p
● To encrypt a bit m:
Choose at random large q, small r (|r| < p/2)
Cipher c = pq + 2r + m [ Ciphertext is close to a multiple of p ]
● To decrypt c:
Message m = (c mod p) mod 2
12. Paillier Encryption
- Pascal Paillier in 1999
- Probabilistic algorithm
- Additively homomorphic system
m = plaintext, c = ciphertext
E(m) is encryption of m, D(c) is decryption of c
D(E(m1) E(m2)) = m1 + m2