Bootstrapping in Homomorphic Encryption
Bootstrapping is the process of converting a noisy ciphertext into a less noisy ciphertext using a secret key while it remains encrypted. This process allows the noise in encrypted data to be reduced through homomorphic decryption, enabling further homomorphic operations. Bootstrapping is a resource-intensive process and is a crucial component of fully homomorphic encryption (FHE) technology.
Problem: Modulus Exhaustion
In FHE, each homomorphic multiplication consumes some of the modulus, which is a limited resource. Once the modulus is exhausted, no further multiplications are possible. Bootstrapping solves this issue by “lifting” the modulus.
Definition of Bootstrapping
Given a CKKS ciphertext that encrypts a plaintext , bootstrapping increases the modulus of the ciphertext while approximately maintaining the original plaintext. Thus, encrypts a plaintext .
Steps of Bootstrapping
-
Slots-to-Coefficients (StC):
- Convert ciphertext slots into polynomial coefficients.
- Output: .
-
Modulus Raising (ModRaise):
- Increase the modulus by adding small multiples of the original modulus .
- Output: , where is a small value.
-
Coefficients-to-Slots (CtS):
- Convert polynomial coefficients back into slots.
- Output: .
-
Homomorphic Modular Reduction (EvalMod):
- Remove the added multiples to obtain the desired result.
- Output: .
Modulus Raising
Suppose encrypts a plaintext . Let and be the representatives of and . The following relationship holds:
- Thus,
- , and .
Through Modulus Raising, is regarded as encrypting .
Homomorphic Discrete Fourier Transform (DFT)
The DFT matrix can be decomposed as:
Where is a butterfly matrix, and is a permutation matrix. For efficiency, the bit-reversed DFT , excluding , is used instead of the exact DFT.
Approximate Modular Reduction
Polynomials are used to approximate the modular reduction function. A common approach is to use trigonometric functions and polynomial approximation algorithms. For example:
- Modular Reduction by 1 and
These functions operate similarly near integer points, helping to close the gap between Modular 1 and the sine function.