Homomorphic Encryption
Introduction
Homomorphic encryption allows mathematical operations to be performed on data in its encrypted form, without the need to decrypt the data. This is possible because the encryption scheme preserves the structure of the data, allowing mathematical operations to be performed on the ciphertext in a way that is consistent with the operations performed on the plaintext. For example, if two numbers are added together in plaintext, the same operation can be performed on their encrypted representations, resulting in an encrypted version of the sum. This property allows for the secure computation of functions on encrypted data, without revealing the underlying data to the party performing the computation.
There are three major types of homomorphic encryption
Partially Homomorphic Encryption (PHE): Allows only one operation to be performed on the encrypted data and for an infinite number of times
Somewhat Homomorphic Encryption (SHE): Allows both additions and multiplications to be performed on the encrypted data but only for a finite number of times
Fully homomorphic encryption (FHE): Allows additions, multiplications, and other arbitrary mathematical operations to be performed on the encrypted data and for an infinite number of times
As the computations are being performed on encrypted data, homomorphic encryption algorithms are usually super compute-intensive and come with a significant performance overhead. Thanks to advancements in software such as batching/packaging and in hardware such as SIMD, GPU, FPGA, and ASIC, the cost of performance is getting reduced by a factor of 10 every year (see the image below).
Schemes
In the context of encryption, a scheme typically refers to a specific method or algorithm for encrypting and decrypting data. The 3 major popular schemes in homomorphic encryption are
TFHE: Allows operations on single values at the bit level
BGV/BGF: Allows exact arithmetic on vectors of numbers (fixed point)
CKKS: Allows approximate arithmetic on vectors of numbers (floating point, real numbers)
A few homomorphic encryption implementations are openfhe, SEAL, Palisade, Lattigo, Concrete, etc
Usecases
Homomorphic encryption is a relatively new technology, and as such, it is not yet widely used. However, there are a growing number of organizations and individuals who are exploring its potential uses. Some examples of potential applications of homomorphic encryption include:
Secure cloud computing: Homomorphic encryption could be used to allow sensitive data to be processed in the cloud without revealing it to the cloud provider.
Secure multiparty computation: Homomorphic encryption could be used to enable multiple parties to jointly compute a function on their encrypted data, without revealing their data to each other.
Privacy-preserving data analysis: Homomorphic encryption could be used to allow data to be analyzed without revealing the underlying data to the party performing the analysis.
Private Information Retrieval: Homomorphic encryption could be used to execute queries privately on public/private databases.
Better Model Generation: Homomorphic encryption in conjunction with secret sharing could be leveraged to vertically combine data from multiple sources for the generation of better models.
Overall, while homomorphic encryption is not yet widely used, it has the potential to enable a wide range of applications in areas where security and privacy are of critical importance.
Companies
Companies that are trying to commercialize homomorphic encryption are
Duality, a startup leveraging homomorphic encryption to provide services that help clients share data and perform computations without compromising privacy. They have utilized homomorphic encryption and secure multiparty computation to perform large-scale genome-wide association studies in a secure way beating the state-of-the-art system by at least one order of magnitude. Google fully integrated their fully homomorphic encryption transpiler with duality’s open-source library to enable application developers to leverage the technology with minimal knowledge.
EnVeil, a startup that is trying to develop tools to support higher-order operations on top of additions and multiplication operations
There are many smaller startups that are trying to leverage the technology e.g., Zama.ai, ShieldIO, etc














