dreamATD / SOPHIE

This is the implementation for my bachelor thesis about an improvement for CKKS based on CIS.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SOPHIE (ShOrt Polynomial HomomorphIc Encryption)

An improvement based on CKKS on CIS. It's an implementation of my bachelor thesis in 2020. Here is a blog post introducing the idea.

Abstract

Homomorphic encryption is a special public-key encryption scheme (PKC), which allows any third party to perform computations on the data while it remains encrypted, despite not having the secret decryption key. Therefore, homomorphic encryption scheme has a wide range of application scenarios, such as protecting the data privacy of users in cloud computing. However, although the efficiency of the homomorphic encryption scheme continues to improve, there are still huge problems, such as ciphertext expansion and time complexity, resulting in its poor efficiency. For example, Cheon et al. proposed CKKS scheme for real approximation based on the problem of learning with error over polynomial rings (RLWE), which can be used in real-world scenarios such as machine learning with privacy protection. However, its plaintext polynomial length is twice the message length. Kim et al. proposed a variation of CKKS scheme based on the conjugate-invariant ring (CIR), which reduces the ratio of plaintext to message. However, this scheme does not support the rotation operation of messages. In view of this, we have realized and improved the scheme proposed by Kim et al. First of all, we adopt the message encoding method proposed by Cheon et al., which makes the scheme support the rotation operation of message slots. Secondly, we propose a transformation method of polynomials over conjugate invariant rings and use fast Fourier transform (FFT) and number theoretic transform (NTT) to accelerate the multiplication of polynomials whose coefficients are real and integer, respectively. Finally, we use C++ language to complete the implementation of the algorithm library of the scheme, including the operations of the underlying polynomials and the cryptography scheme of the upper layer. It supports homomorphic addition, multiplication and rotation operations of the encrypted messages so that it can be applied to more real scenes.

References

  1. Homomorphic Encryption for Arithmetic of Approximate Numbers
  2. Approximate Homomorphic Encryption over the Conjugate-Invariant Ring
  3. Bootstrapping for Approximate Homomorphic Encryption

About

This is the implementation for my bachelor thesis about an improvement for CKKS based on CIS.


Languages

Language:C++ 99.9%Language:CMake 0.1%Language:C 0.1%