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

  1. Slots-to-Coefficients (StC):

    • Convert ciphertext slots into polynomial coefficients.
    • Output: .
  2. Modulus Raising (ModRaise):

    • Increase the modulus by adding small multiples of the original modulus .
    • Output: , where is a small value.
  3. Coefficients-to-Slots (CtS):

    • Convert polynomial coefficients back into slots.
    • Output: .
  4. 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.