1. Definition The

general encryption scheme is concerned with data storage security. That is, I want to send an encrypted thing to other people, or I want to store a thing on a computer or other server, and I want to encrypt the data before sending or storing it. A user without a key cannot obtain any information about the original data from the encrypted result. Only the user with the key can decrypt it correctly and get the original content. We have noticed that in this process, users cannot do any operations on the encrypted results, only storage and transmission. Any operation on the encrypted result will lead to wrong decryption or even decryption failure.

The most interesting part of the homomorphic encryption scheme is that it focuses on data processing security. Homomorphic encryption provides a function for processing encrypted data. In other words, other people can process the encrypted data, but the processing process will not reveal any original content. At the same time, after the user with the key decrypts the processed data, the result is exactly the processed result.

Definition Homomorphic encryption (homomorphic encryption) is a special encryption method that allows the ciphertext to be processed to obtain the result that is still encrypted. That is, the ciphertext is processed directly, and the processing result is encrypted after the plaintext is processed, and the result obtained is the same. From the perspective of abstract algebra, homomorphism is maintained.

If we have an encryption function f, change plaintext A into ciphertext A', and change plaintext B into ciphertext B', that is, f(A) = A', f(B) = B'. In addition, we have a decryption function that can decrypt the ciphertext encrypted by f into the plaintext before encryption.

For a general encryption function, if we add A'and B'together, we get C'. The result we get by decrypting C'is generally meaningless garbled.

However, if f is an encryption function that can perform homomorphic encryption, we use C'(adding A'and B') to decrypt the result C, and then C = A + B. In this way, data processing rights can be separated from data ownership, so that companies can use the computing power of cloud services while preventing their own data leakage.

2. Homomorphic classification

Homomorphism comes from the field of algebra, and generally includes four types: addition homomorphism, multiplication homomorphism, subtraction homomorphism and division homomorphism. Satisfying additive homomorphism and multiplicative homomorphism at the same time means it is algebraic homomorphism, which is called full homomorphic. When the four homomorphisms are satisfied at the same time, it is called arithmetic homomorphism.

For computer operations, the realization of full homomorphism means that homomorphism can be realized for all processing. The homomorphism that can only achieve some specific operations is called some homomorphic.

a) If f(A)+f(B)=f(A+B

) is satisfied , we call this encryption function an additive homomorphism b) If f(A)×f(B)=f(A×B) ), we call this encryption function multiplicative homomorphism.

If an encryption function f only meets the homomorphism of addition, it can only perform addition and subtraction operations;

if an encryption function f only meets the homomorphism of multiplication, it can only perform multiplication and division operations;

If an encryption function satisfies both additive homomorphism and multiplication homomorphism, it is called fully homomorphic encryption. Then use this encryption function to complete various encrypted operations (addition, subtraction, multiplication, division, polynomial evaluation, exponent, logarithm, trigonometric function).

The first homomorphic encryption method that satisfies the homomorphism of addition and multiplication was not proposed by Craig Gentry until 2009.

The homomorphic encryption algorithm

RSA algorithm is homomorphic for multiplication operations.

Paillier's algorithm is homomorphic to addition.

Gentry algorithm is fully homomorphic.

3. Application

The concept of cloud computing has not been mentioned in recent years. Homomorphic encryption is almost tailored for cloud computing! We consider the following scenario: a user wants to process a piece of data, but his computer's computing power is weak. This user can use the concept of cloud computing and let the cloud help him process and get the result. But if the data is directly delivered to the cloud, security cannot be guaranteed! Therefore, he can use homomorphic encryption, and then let the cloud directly process the encrypted data and return the processing result to him. In this way: the

user pays the cloud service provider and gets the result of the processing; the cloud service provider earns the fee and processes the data correctly without knowing the user data;