Homomorphic Encryption
What is Homomorphic Encryption ?
Homomorphic encryption algorithms are designed to allow mathematical operations to be performed on encrypted data. Homomorphic encryption is a form of encryption that allows users to perform computations on encrypted data without first decrypting it. Resulting computations are left in an encrypted form which, when decrypted, result in an identical output to that produced had the operations been performed on the unencrypted data. As we know that Data can be in one of three states:
- at rest
- in transit
- in use
Most encryption deals with the first two of these. This is due to the fact that data at rest or in transit is not actively changing. It has the same value when it’s decrypted as it did when it was encrypted. Data in use, on the other hand, doesn’t have this property. Almost all mathematical operations on ciphertexts would change the value of the corresponding plaintext. Ensuring that the plaintext changes in the “right way” is difficult.
Homomorphic Encryption is a relatively new technology and still has a long way to go for becoming a mainstream encryption technology.
Why Homomorphic Encryption ?
Homomorphic encryption is a big deal because it makes it possible to perform calculations on encrypted data. This means that data processing can be outsourced to a third party without the need to trust the third party to properly secure the data. Without the proper decryption key, the original data can’t be accessed. This ability to perform processing on encrypted data has the potential to solve many major business challenges faced by companies across all industries.
Importance of Homomorphic Encryption ?
Supply Chain Security: Homomorphic encryption can help a company to protect itself against these supply chain risks. If all data provided to trusted third parties for processing is encrypted, then a breach of that data poses no risk to the company. This allows an organization to outsource critical data processing with minimal risk.
Regulatory Compliance: Laws like the GDPR clearly state that their requirements do not apply to encrypted data. With homomorphic encryption, a company could potentially store and process data on systems outside the EU and then only decrypt it on servers in locations that comply with GDPR requirements.
Data Analytics: Homomorphic encryption provides a potential solution to this problem. With homomorphic encryption, a company like Facebook or even Innovaccer could perform the data analytics that it needs without the ability to view or access the original data. If encryption keys are controlled by users, this provides the potential for private, targeted advertising.
Types of Homomorphic Encryption ?
The goal of homomorphic encryption is to create an encryption algorithm that allows an infinite number of additions or multiplications of encrypted data. At the end of the process, the result should be the ciphertext that would be produced if the same operations were performed on the corresponding plaintexts and the result was encrypted.
Partially Homomorphic Encryption (PHE): Partially homomorphic encryption algorithms allow a certain operation to be performed an infinite number of times. For example, a particular algorithm may be additively homomorphic, meaning that adding two ciphertexts together produces the same result as encrypting the sum of the two plaintexts.
Somewhat Homomorphic Encryption (SHE): The next step up from partially homomorphic encryption is somewhat homomorphic encryption. A somewhat homomorphic encryption algorithm allows a finite number of any operation rather than an infinite number of a particular operation. For example, a somewhat homomorphic encryption algorithm may be able to support any combination of up to five additions or multiplications. However, a sixth operation of either type would create an invalid result.
Fully Homomorphic Encryption (FHE): Fully homomorphic encryption is the holy grail of homomorphic encryption. A fully homomorphic encryption algorithm allows an infinite number of additions or multiplications of ciphertexts while still producing a valid result.
Several open-source implementations of homomorphic encryption schemes exist today. Below are some of the implementations:
Microsoft SEAL: A widely used open source library from Microsoft that supports the BFV and the CKKS schemes. Microsoft SEAL is open source (MIT license)
OpenFHE: A widely-used open source library affiliated with NumFocus from a consortium of FHE developers that supports the major FHE schemes including BGV, BFV, CKKS, TFHE and FHEW, among others, with multiparty support.
PALISADE: A widely-used open source library from a consortium of DARPA-funded defense contractors that supports multiple homomorphic encryption schemes such as BGV, BFV, CKKS, TFHE and FHEW, among others, with multiparty support.
HELib: An early and widely used library from IBM that supports the CKKS and BGV scheme and bootstrapping.
FHEW / TFHE: Supports the TFHE scheme. (Please note that the FHEW and TFHE libraries are distinct from the FHEW and TFHE schemes which are also supported by other libraries listed on this page.)
HeaAn: This library implements the CKKS scheme with native support for fixed point approximate arithmetic.