Implementing Gentry's Fully-Homomorphic Encryption Scheme

Implementing Gentry's Fully-Homomorphic Encryption Scheme

2011 | Craig Gentry and Shai Halevi
This paper presents an efficient implementation of Gentry's fully homomorphic encryption (FHE) scheme, which allows for performing operations on encrypted data. The implementation builds upon a variant of Gentry's "somewhat homomorphic" encryption scheme, which supports evaluating low-degree polynomials on encrypted data. The key innovation is the inclusion of a bootstrapping functionality that enables the scheme to become fully homomorphic. The main optimization in this implementation is a key-generation method that reduces the asymptotic complexity from $ \tilde{O}(n^{2.5}) $ to $ \tilde{O}(n^{1.5}) $ when working with dimension-n lattices. This significantly reduces the time required for key generation, making it feasible for larger dimensions. Other optimizations include a batching technique for encryption, a careful analysis of the degree of the decryption polynomial, and space/time trade-offs for the fully homomorphic scheme. The implementation was tested with lattices of several dimensions, corresponding to different security levels. The public-key size ranges from 70 MB for the "small" setting to 2.3 GB for the "large" setting. The time to run one bootstrapping operation ranges from 30 seconds for the "small" setting to 30 minutes for the "large" setting. The paper also discusses the challenges in implementing Gentry's scheme, particularly the difficulty in generating keys for large dimensions and the need for a sufficiently large lattice to support the bootstrapping technique. The implementation described here addresses these challenges by introducing optimizations that allow for the efficient generation of keys and the execution of bootstrapping operations. The paper provides a detailed description of the implementation, including the key-generation process, the encryption and decryption procedures, and the optimizations used to achieve the efficiency of the scheme. It also discusses the theoretical background of the scheme, including the use of lattices, ideal lattices, and the GGH-type cryptosystems. The implementation is shown to be practical for various security levels, with the ability to handle dimensions up to $ 2^{15} $.This paper presents an efficient implementation of Gentry's fully homomorphic encryption (FHE) scheme, which allows for performing operations on encrypted data. The implementation builds upon a variant of Gentry's "somewhat homomorphic" encryption scheme, which supports evaluating low-degree polynomials on encrypted data. The key innovation is the inclusion of a bootstrapping functionality that enables the scheme to become fully homomorphic. The main optimization in this implementation is a key-generation method that reduces the asymptotic complexity from $ \tilde{O}(n^{2.5}) $ to $ \tilde{O}(n^{1.5}) $ when working with dimension-n lattices. This significantly reduces the time required for key generation, making it feasible for larger dimensions. Other optimizations include a batching technique for encryption, a careful analysis of the degree of the decryption polynomial, and space/time trade-offs for the fully homomorphic scheme. The implementation was tested with lattices of several dimensions, corresponding to different security levels. The public-key size ranges from 70 MB for the "small" setting to 2.3 GB for the "large" setting. The time to run one bootstrapping operation ranges from 30 seconds for the "small" setting to 30 minutes for the "large" setting. The paper also discusses the challenges in implementing Gentry's scheme, particularly the difficulty in generating keys for large dimensions and the need for a sufficiently large lattice to support the bootstrapping technique. The implementation described here addresses these challenges by introducing optimizations that allow for the efficient generation of keys and the execution of bootstrapping operations. The paper provides a detailed description of the implementation, including the key-generation process, the encryption and decryption procedures, and the optimizations used to achieve the efficiency of the scheme. It also discusses the theoretical background of the scheme, including the use of lattices, ideal lattices, and the GGH-type cryptosystems. The implementation is shown to be practical for various security levels, with the ability to handle dimensions up to $ 2^{15} $.
Reach us at info@study.space
Understanding Implementing Gentry's Fully-Homomorphic Encryption Scheme