homenc / HElib

HElib is an open-source software library that implements homomorphic encryption. It supports the BGV scheme with bootstrapping and the Approximate Number CKKS scheme. HElib also includes optimizations for efficient homomorphic evaluation, focusing on effective use of ciphertext packing techniques and on the Gentry-Halevi-Smart optimizations.
https://homenc.github.io/HElib
Other
3.11k stars 761 forks source link

Security Level of HElib's Homomorphic Encryption Schemes #290

Open FrozenFort opened 5 years ago

FrozenFort commented 5 years ago

Hi~ I'm totally new to this library. I wonder how should I pick the parameters to make the BGV or the CKKS schemes have the similar security level of 128-bit AES or 256-bit AES.

Is there a set of initialisation parameters that I can choose?

shaih commented 5 years ago

Some sets of parameters are listed in the tables at the end of the "Homomorphic Encryption Security Standard" (from November 21, 2018), available at http://homomorphicencryption.org/standard/

FrozenFort commented 5 years ago

Thanks for your quick response ^_^ I have another question about the secret key distribution mentioned on the HE standard document. What is the default distribution does HElib use? And how can I choose a distribution for my secret key generation?

shaih commented 5 years ago

HElib uses the -1/1 distribution for the secret key, except for bootstrapping where it uses a low-weight distribution (which is not included in the standard). For all we currently know, the security of low-weight keys is very close to that of -1/1 keys, but this was left out of the standard since the general feeling was that we don't yet know enough about it.

HElib does not let you choose the secret-key distribution, to do that you would have to change the HElib code (specifically the GenSecKey method in FHE.h, or FHESecKey::genRecryptData in FHE.cpp for the bootstrapping key).