请输入您要查询的百科知识:

 

词条 HEAAN
释义

  1. CKKS Plaintext Space

     Encoding Method  Decoding Method 

  2. Algorithms

     Key Generation  Encryption  Decryption  Homomorphic Addition  Homomorphic Multiplication  Rescaling 

  3. Security

  4. Library

  5. References

HEAAN (Homomorphic Encryption for Arithmetic of Approximate Numbers) is an open source homomorphic encryption (HE) library which implements an approximate HE scheme proposed by Cheon, Kim, Kim and Song (CKKS).[1]

The first version of HEAAN was published on github[2] in 15 May 2016, and later a new version of HEAAN with a bootstrapping algorithm[3]

was released.

Currently, the lastest version is Version 2.1.

CKKS Plaintext Space

Unlikely to the other HE scheme, the CKKS scheme supports approximate arithmetics over complex numbers (hence, real numbers).

More precisely, the plaintext space of the CKKS scheme is for some power-of-two integer . To deal with the complex plaintext vector efficiently, Cheon et al. proposed plaintext encoding/decoding methods which exploits a ring isomorphism .

Encoding Method

Given a plaintext vector and a scaling factor , the plaintext vector is encoded as a polynomial

by computing where denotes the coefficient-wise rounding function.

Decoding Method

Given a message polynomial and a scaling factor , the message polynomial is decoded to a complex vector by computing .

Here the scaling factor enables us to control the encoding/decoding error which is occurred by the rounding process. Namely, one can obtain the approximate equation by controlling where and denote the encoding and decoding algorithm, respectively.

From the ring-isomorphic property of the mapping , for and , the followings hold:

  • ,
  • ,

where denotes the Hadamard product of the same-length vectors.

These properties guarantee the approximate correctness of the computations in the encoded state when the scaling factor is chosen appropriately.

Algorithms

The CKKS scheme basically consists of those algorithms: key Generation, encryption, decryption, homomorphic addition and multiplication, and rescaling. For a positive integer , let be the quotient ring of modulo . Let , and be distributions over which output polynomials with small coefficients. These distributions, the initial modulus , and the ring dimension are predetermined before the key generation phase.

Key Generation

The key generation algorithm is following:

  • Sample a secret polynomial .
  • Sample (resp. ) uniform randomly from (resp. ), and .
  • Output a secret key , a public key , and an evaluation key .

Encryption

The encryption algorithm is following:

  • Sample an ephemeral secret polynomial .
  • For a given message polynomial , output a ciphertext .

Decryption

The decryption algorithm is following:

  • For a given ciphertext , output a message .

The decryption outputs an approximate value of the original message, i.e., , and the approximation error is determined by the choice of distributions .

When considering homomorphic operations, the evaluation errors are also included in the approximation error.

Basic homomorphic operations, addition and multiplication, are done as follows.

Homomorphic Addition

The homomorphic addition algorithm is following:

  • Given two ciphertexts and in , output .

The correctness holds as .

Homomorphic Multiplication

The homomorphic multiplication algorithm is following:

  • Given two ciphertext and in , compute . Output .

The correctness holds as .

Note that the approximation error (on the message) exponentially grows up on the number of homomorphic multiplications. To overcome this problem, most of HE schemes usually use a modulus-switching technique which was introduced by Brakerski, Gentry and Vaikuntanathan.[4]

In case of HEAAN, the modulus-switching procedure is called rescaling. the Rescaling algorithm is very simple compared to Brakerski-Gentry-Vaikuntanatahn's original algorithm.

Applying the rescaling algorithm after a homomomorphic multiplication, the approximation error grows linearly, not exponentially.

Rescaling

The rescaling algorithm is following:

  • Given a ciphertext and a new modulus , output a rescaled ciphertext .

The total procedure of the CKKS scheme is as following: Each plaintext vector which consists of complex (or real) numbers is firstly encoded as a polynomial by the encoding method, and then encrypted as a ciphertext . After several homomorphic operations, the resulting ciphertext is decrypted as a polynomial and then decoded as a plaintext vector which is the final output.

Security

The IND-CPA security of the CKKS scheme is based on the hardness assumption of the Ring learning with errors (RLWE) problem, the ring variant of very promising lattice-based hard problem Learning with errors (LWE).

Currently the best known attacks for RLWE over a power-of-two cyclotomic ring are general LWE attacks such as dual attack and primal attack.

The bit security of the CKKS scheme based on known attacks was estimated by Albrecht's LWE estimator.[5]

Library

Version 1.0, 1.1 and 2.1 have been released so far. Version 1.0 is the first implementation of the CKKS scheme without bootstrapping.

In the second version, the bootstrapping algorithm was attached so that users are able to address large-scale homomorphic computations.

In Version 2.1, currently the lastest version, the multiplication of ring elements in was accelerated by utilizing fast Fourier transform (FFT)-optimized number theoretic transform (NTT) implementation.

References

1. ^{{cite conference |last1=Cheon |first1=Jung Hee |last2=Kim |first2=Andrey |last3=Kim |first3=Miran |last4=Song |first4=Yongsoo |title=Homomorphic encryption for arithmetic of approximate numbers |publisher=Springer, Cham |conference=ASIACRYPT 2017 |date=2017 |book-title=Takagi T., Peyrin T. (eds) Advances in Cryptology – ASIACRYPT 2017 |pages=409–437|doi=10.1007/978-3-319-70694-8_15 }}
2. ^{{cite web|title=An approximate HE library HEAAN|url=https://github.com/snucrypto/HEAAN|author=Andrey Kim|author2=Kyoohyung Han|author3=Miran Kim|author4=Yongsoo Song|accessdate=15 May 2016}}
3. ^Jung Hee Cheon, Kyoohyung Han, Andrey Kim, Miran Kim and Yongsoo Song. [https://eprint.iacr.org/2018/153 Bootstrapping for Approximate Homomorphic Encryption]. In EUROCRYPT 2018(springer).
4. ^Z. Brakerski, C. Gentry, and V. Vaikuntanathan. Fully Homomorphic Encryption without Bootstrapping. In ITCS 2012
5. ^Martin Albrecht. Security Estimates for the Learning with Errors Problem, https://bitbucket.org/malb/lwe-estimator

3 : Cryptographic primitives|Public-key cryptography|Lattice-based cryptography

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/10 17:53:17