Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

encryption

What is homomorphic encryption?

Faizan Ahmed Khan

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Homomorphic encryption is an encryption technique that allows us to perform computations directly on encrypted data.

In simple encryption techniques, we first need to decrypt the data to perform any computation. In homomorphic encryption, we can directly manipulate encrypted data.

Benefits of Homomorphic Encryption

  • Security
    Through homomorphic encryption, data security is increased because the need for key sharing to manipulator or processing unit is eliminated; hence there is no need to decrypt it at any point.
  • Confidentiality
    The other important factor is the confidentiality of your data. Imagine you searching for Chinese food, in that search you are exposing the information like your location, time at which you want to eat, your preference i.e. Chinese food. By homomorphic information, you can send an encrypted query and you can get results without any privacy issue.
  • Quantum Secure
    Homomorphic Encryption is also quantum secure.

There are three states or types of homomorphic encryption.

  1. Partially homomorphic Encryption
  2. Somewhat homomorphic Encryption
  3. Fully homomorphic Encryption

Workflow comparison of conventional encryption vs. homomorphic encryption

Think of an example of cloud computation; you need to perform some tasks on your data on the cloud. Both conventional vs. homomorphic encryptions workflows are given below.
Conventional encryption

  • You first need to encrypt your data using a key.
  • Then, you will send that encrypted key and data to the cloud.
  • Cloud will decrypt it using the key.
  • Then the cloud will perform the desired computations.
  • Then, your data will be encrypted again.
  • Cloud will return the encrypted data and key.

Homomorphic encryption

  • First, you will encrypt your data.
  • Then, you will send that encrypted data to the cloud
  • Cloud will perform desired computations on that encrypted data.
  • In the end, the cloud will return that encrypted data.

The figure below describes the workflow comparison.

Simple vs homomorphic encryption

Microsoft has developed a library named Microsoft SEAL to implement Homomorphic encryption. Microsoft SEAL is an open-source library developed in C# and C++.

Note: Homomorphic encryption is not practical yet because it’s very slow and it requires a lot of computational power.

RELATED TAGS

encryption

CONTRIBUTOR

Faizan Ahmed Khan
Copyright ©2022 Educative, Inc. All rights reserved

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring