Homomorphic encryption
Encryption Enc is called homomorphic with respect to an operation * if Enc(x \_ y) = Enc(x) _ Enc(y) That is given encrypted forms of x and y, in order to compute encrypted form of x*y one does not need to decrypt Enc(x) and Enc(y)
Partial vs Fully homomorphic schemes
-
Partially homomorphic encryption: with respect just to one operation
-
RSA (unpadded) is homomorphic with respect to multiplication
-
Fully homomorphic schemes
- With respect to multiplication and addition
- Allow to perform arbitrary computations
- Existence is by no means obvious
Potential applications
CryptDB
- To query encrypted SQL database without decrypting;
- Selected fields can be encrypted;
- Low overhead: reducing throughput 15-25%;
Onion-layered SQL-aware encryption

- All data in CrypDB can be encrypted using several layers of encryption;
- Each layer may “release” some information about encrypted value