PartΒ III
Generic Fully Homomorphic Encryption

This chapter explains the generic techniques of homomorphic computation adopted by various FHE schemes such as TFHE, CKKS, BGV, and BFV,

As we learned from Β§B-4, 𝖦𝖫𝖢𝖀S,Οƒ(Ξ”M) = (A0,A1,Β β‹―Β ,Akβˆ’1,B) ∈R⟨n,q⟩k+1, where R⟨n,q⟩ = β„€q[x]βˆ•(xn + 1), and B is computed as B = βˆ‘ ⁑ i=0kβˆ’1(Ai β‹…Si) + Ξ” β‹…M + E. Each Ai is an (n βˆ’1)-degree polynomial as a public key, whose each coefficient is uniformly randomly sampled from R⟨n,q⟩. E is an (n βˆ’1)-degree polynomial as a noise, whose each coefficient is sampled from R⟨n,q⟩ based on the Gaussian distribution χσ. S is a list of k (n βˆ’1)-degree polynomials as a secret key, such that S = (S0,S1,Β β‹―Β Skβˆ’1) ∈R⟨n,q⟩k, and each polynomial Si’s each coefficient is a randomly sampled binary number in β„€2 (i.e., {0,1}).

Based on this GLWE setup, this section will explain the following 5 homomorphic operations: ciphertext-to-ciphertext addition, ciphertext-to-plaintext addition, ciphertext-to-plaintext multiplication, ciphertext-to-ciphertext multiplication, and key switching.


C-1 GLWE Ciphertext-to-Ciphertext Addition
C-1.1 Discussion
C-2 GLWE Ciphertext-to-Plaintext Addition
C-2.1 Discussion
C-3 GLWE Ciphertext-to-Plaintext Multiplication
C-3.1 Gadget Decomposition for Noise Suppression
C-4 GLWE Modulus Switching
C-4.1 LWE Modulus Switching
C-4.2 Example
C-4.3 Discussion
C-4.4 RLWE Modulus Switching
C-4.5 GLWE Modulus Switching
C-5 GLWE Key Switching