Fully Homomorphic Encryption


Fully Homomorphic Encryption (FHE) is an encryption technique that allows computations to be performed on encrypted data without the need to decrypt it first. This is achieved by encrypting the data with a key and then performing operations on the ciphertext while keeping it hidden from unauthorized users. FHE enables secure outsourced computation, where sensitive data can remain encrypted while being processed in the cloud, ensuring privacy and security of information. Additionally, FHE can be used for secure multiparty computation, which enables parties to collaborate on joint calculations without revealing their input information. Overall, FHE provides powerful cryptographic tools for protecting sensitive data during computation.

Microsoft SEAL: is a powerful library for fully homomorphic encryption (FHE) which allows computations to be carried out on encrypted data without ever decrypting it. It supports the packed ciphertext format and provides an API for executing basic arithmetic operations such as addition, multiplication, division, and more. 

Gentry’s Cryptosystem: is the first fully homomorphic encryption scheme that does not rely on any unproven assumptions about the difficulty of certain mathematical problems. It is based on ideal lattices and can support arbitrary Boolean circuits. 

Palantir Technologies: applied FHE technology in their secure multiparty computation protocol which enables two or more parties to jointly compute a function over their own private datasets while keeping them secure. The protocol uses a combination of secret sharing and fully homomorphic encryption to ensure data security without requiring the parties to transfer their data.

Simplified Example

Fully Homomorphic Encryption is like a secret code that you can use to write a message, but you can still read the message even though it's in code. Imagine you have a secret message written in a language you don't understand and you want to send it to a friend. The Fully Homomorphic Encryption would be like a code that you could use to encrypt the message, but you would still be able to read it after it's been encrypted. Your friend would also be able to read the message even though it's in code, because they also know the code. This way, you can both read and write the message but it's still kept a secret from others who don't know the code.