What is Homomorphic Encryption?
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)

What is Homomorphic Encryption?

Homomorphic encryption solves a vulnerability inherent in all other approaches to data protection

Imagine if you work in the financial services industry — or, maybe you already do. Every day, your organization handles a lot of personally identifiable information (PII) and financial data — information that needs to be encrypted both when it is stored (data at rest) and when it is being transmitted (data in transit). While modern encryption algorithms are virtually unbreakable (because they require so much processing power that it makes the process of breaking it too costly and time-consuming to be feasible), they also make it impossible to process the data without first decrypting it — and decrypting your data could leave it vulnerable to hackers.

As such, regardless of whether you’re working with data at rest or data in transit, traditional public key encryption requires that data must be decrypted before it can be analyzed or manipulated. But what if we told you that there is a type of encryption that completely side-steps the need for decrypting the data before you use it — meaning that data integrity and privacy are protected while you process data in use?

Yeah, you can stop skimming — we know that caught your attention. There is a way to provide the best and most personalized services to your customers while still preserving their privacy and confidentiality. It’s known as homomorphic encryption (HE). But what exactly is homomorphic encryption and what are some real-world applications for it in data security?

Let’s hash it out.

What is Homomorphic Encryption?

In a nutshell, homomorphic encryption is a method of encryption that allows any data to remain encrypted while it’s being processed and manipulated. It enables you or a third party (such as a cloud provider) to apply functions on encrypted data without needing to reveal the values of the data. A homomorphic cryptosystem is like other forms of public encryption in that it uses a public key to encrypt data and allows only the individual with the matching private key to access its unencrypted data (though there are also examples of symmetric key homomorphic encryption as well). However, what sets it apart from other forms of encryption is that it uses an algebraic system to allow you or others to perform a variety of computations (or operations) on the encrypted data.

In practice, most homomorphic encryption schemes work best with data represented as integers and while using addition and multiplication as the operational functions. This means that the encrypted data can be manipulated and analyzed as though it’s in plaintext format without actually being decrypted. In other words, HE can enable your employees (or a third party) to work with and use the encrypted data without having access to or knowing the contents of the decrypted data. They can compute and process the encrypted data to get an encrypted answer, but only you can decrypt the ciphertext and understand what it means. Homomorphic encryption requires few rounds of interactions and uses arithmetic circuits (which focus on additions and multiplication, allowing you to add and multiply numbers) rather than Boolean circuits like other methods of secure computation (such as two-party computation [2PC] or general multi-party computation [MPC]).

Real-World Challenges That Homomorphic Encryption Can Help Solve

In an ideal world, homomorphic encryption has a multitude of practical, real-world applications —everything from electronic voting systems to analyzing medical data to enabling private queries in search engines. Some applications for homomorphic encryption include:

  • Securing Data Stored in the Cloud. Let’s go back to the idea that you own or work at a financial services company that collects, stores, and uses sensitive personal and financial information. Your organization uses this data to deem whether customers qualify for lending. You want to store this information in the cloud to free up IT resources but don’t fully trust the security of your cloud software-as-a-service (SaaS) provider. (Considering that cloud storage isn’t always as secure as we’d like, that isn’t a far-fetched concern.) Using homomorphic encryption, you can secure the data that you store in the cloud while also retaining the ability to calculate and search ciphered information that you can later decrypt without compromising the integrity of the data as a whole. It’s a win-win scenario for your business as well as your customers.
  • Enabling Data Analytics in Regulated Industries. Homomorphic encryption allows data to be encrypted and outsourced to commercial cloud environments for research and data-sharing purposes — all while protecting user or patient data privacy. It can be used for businesses and organizations across a variety of industries including financial services, retail, information technology, and healthcare to allow people to use data without seeing its unencrypted values. For example, homomorphic encryption allows predictive analytics service providers to safely analyze medical data without putting data privacy at risk.
  • Improving Election Security and Transparency. Researchers are working on how to use homomorphic encryption to make democratic elections more secure and transparent. For example, the Paillier encryption scheme, which uses addition operations, would be best suited for voting-related applications because it allows users to add up various values in an unbiased way while keeping their values private. This technology could not only protect data from manipulation, it could allow it to be independently verified by authorized third parties.

Homomorphic encryption helps to protect the integrity of your data by allowing others to manipulate its encrypted form while no one (aside from you as the private key holder) can understand or access its decrypted values. Compare this to the encryption methods used by traditional cloud storage and computation solutions, which cannot run computations on encrypted data. This means that the cloud provider and/or app would require access to unencrypted data to perform computational functions on it. This practice exposes your organization’s or customers’ sensitive data to potentially insecure cloud operators and hackers who want your data.

Now that’s what we call progress — but it’s going to take some time before we see the application of homomorphic encryption on a larger scale.

Types of Homomorphic Encryption

There are three main types of homomorphic encryption. The primary difference between them boils down to the types and frequency of mathematical operations that can be performed on their ciphertext. The three types of homomorphic encryption include:

  • Partially Homomorphic Encryption
  • Somewhat Homomorphic Encryption
  • Fully Homomorphic Encryption

Partially homomorphic encryption (PHE) helps sensitive data remain confidential by only allowing select mathematical functions to be performed on encrypted values. This means that one operation can be performed an unlimited number of times on the ciphertext. Partially homomorphic encryption (with regard to multiplicative operations) is the foundation for RSA encryption, which is commonly used in establishing secure connections through SSL/TLS. Some examples of PHE include ElGamal encryption (a multiplication scheme) and Paillier encryption (an addition scheme).

A somewhat homomorphic encryption (SHE) scheme is one that supports limited operations (for example, either addition or multiplication) up to a certain complexity, but these operations can only be performed a set number of times. This is the precursor to fully homomorphic encryption, which we’ll discuss more in depth momentarily. 

What is Fully Homomorphic Encryption?

Fully homomorphic encryption (FHE), while still in the development stage, has a lot of potential for making functionality consistent with privacy by helping to keep information secure and yet still accessible. Born from a somewhat homomorphic encryption scheme, this holy grail of cryptography is capable of using any efficiently computable functions (such as addition and multiplication, not just one or the other) any number of times and makes secure multi-party computation more efficient. Unlike other forms of homomorphic encryption, it can handle arbitrary computations on your ciphertexts.

The goal behind fully homomorphic encryption is to allow anyone to use encrypted data to perform useful operations without access to the encryption key. In particular, this concept has applications for improving cloud computing security. If you want to store encrypted, sensitive data in the cloud but don’t trust your cloud provider or want to run the risk of a hacker breaking in your cloud account/app, it provides you with a way to pull, search, and manipulate your data without having to allow the cloud provider or Google access to the data on the files you want to access.

Craig Gentry, an American computer scientist and Research Fellow at Algorand Foundation, describes his version of homomorphic encryption — fully homomorphic encryption — in terms of a glovebox analogy:

“So, basically, anybody can come and they can stick their hands inside the gloves and manipulate what’s inside the locked box. They can’t pull it out, but they can manipulate it; they can process it. They can take raw materials and produce a necklace or something inside the box. And, you know, they finish and [the person with the private key] has to come with the secret key and open it up, and only they can extract the finished product out of there.”

So Why Aren’t We Using Fully Homomorphic Encryption? Well, It’s Still Pretty Slow…

The catch of using this form of encryption is that its versatility comes at the expense of speed. Unfortunately, in its current state, homomorphic encryption is impractically slow. In the encryption race, it’s running in last place. This is, in part, because homomorphic encryption has a larger computational overhead than plaintext operations.

With the goal of making homomorphic encryption widespread, IBM released its first version of its HElib C++ library in 2016 — but it reportedly “ran ‘100 trillion times’ slower than plaintext operations.” Since that time, IBM has continued working to combat this issue and have now come up with a version that is 75 times faster… but even that is still incredibly slow in comparison to working with unencrypted data. Researchers, like Gentry, are working to find ways to speed up the process for data in use/data in process applications. One data security company, ENVEIL, proclaims to use homomorphic encryption as part of their framework for protecting data in use. Another company, a startup named Duality, is working to create business products that will allow companies to share raw data with third parties without them having access to it. We’ve never used either of their services, so we can’t speak to the success or functionality of their services.

To help software engineers with the process of utilizing a practical form of homomorphic encryption, Microsoft’s Cryptography Research group came up with Microsoft Simple Encrypted Arithmetic Library (Microsoft SEAL), an open-source homomorphic encryption library. This technology platform, written in C++, allows software engineers to create data storage and computation services for organizations that offer end-to-end encryption while never requiring them to share their key. The goal, Microsoft says, is to “put our library in the hands of every developer, so we can work together for more secure, private, and trustworthy computing.

Hopefully, between the work of these groups and researchers like Gentry, we’ll be able to see a faster version of fully homomorphic encryption on the horizon that we can apply to a variety of real-world applications across different industries.

The Origins of Homomorphic Cryptosystems

The origins of homomorphic encryption dates back to 1978 — shortly after Rivest, Shamir and Adleman presented RSA encryption — which is a long time in the world of technology. Rivest, Adleman, and Dertouzos came up with the concept of privacy homomorphisms. Their concept of encryption was shot down by Brickell and Yacobi nearly 10 years later. Other researchers have “had a go” at the topic — such as Feigenbaum and Merritt — but, really, no major progress was made until Gentry, a graduate student at Stanford University, decided to try his hand at creating an algebraically homomorphic encryption system as his graduate thesis.

Gentry, who is an esteemed MacArthur Foundation fellow and worked as Research scientist in the Cryptography Research Group at the IBM Thomas J. Watson Research Center, established the first fully homomorphic encryption scheme in 2009. His research was followed by others’ variations of homomorphic encryption schemes in the years to come.

Final Thoughts

The concept of homomorphic encryption — fully homomorphic encryption in particular — is one with a lot of promise for real-world applications across a variety of industries. However, the trick is finding a way to decrease the computational overhead and speed up the process for use on a larger scale. Regardless of the progress that is slowly being made in the area of homomorphic encryption, it’s vital that you also not neglect your data in storage and data in transit protections as well in the meantime.

As always, feel free to share any comments or questions below…


Casey Crane

Casey Crane is a regular contributor to and managing editor of Hashed Out. She has more than 15 years of experience in journalism and writing, including crime analysis and IT security. Casey also serves as the Content Manager at The SSL Store.