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…

Email Security Best Practices - 2019 Edition

Don’t Get Phished.

Email is the most commonly exploited attack vector, costing organizations millions annually. And for SMBs, the damage can prove fatal: 60% fold within 6 months of falling victim to a cyber attack. Don’t be one of them.


*** This is a Security Bloggers Network syndicated blog from Hashed Out by The SSL Store™ authored by Casey Crane. Read the original post at: https://www.thesslstore.com/blog/what-is-homomorphic-encryption/