D-1 TFHE Scheme

The TFHE scheme is designed for homomorphic addition and multiplication on integers (especially bit-wise computation, like logic circuits). Unlike BFV, GBV, or CKKS, TFHE is characterized by fast noise bootstrapping; therefore, it is efficient for processing deep multiplication depths. TFHE’s noise bootstrapping technique can be further applied to functional encryption.

In TFHE, each plaintext is encrypted as an LWE ciphertext. Therefore, TFHE’s ciphertext-to-ciphertext addition, ciphertext-to-plaintext addition, and ciphertext-to-plaintext multiplication are implemented based on GLWE’s homomorphic addition and multiplication described in 𝑃𝑎𝑟𝑡 𝐼𝐼𝐼, with n = 1 to make GLWE an LWE.

This section will explain TFHE’s novel components: key switching, ciphertext-to-ciphertext multiplication, coefficient extraction, and noise bootstrapping.

Required Background


D-1.1 Encryption and Decryption
D-1.2 Homomorphic Ciphertext-to-Ciphertext Addition
D-1.3 Homomorphic Ciphertext-to-Plaintext Addition
D-1.4 Homomorphic Ciphertext-to-Plaintext Multiplication
D-1.5 Homomorphic Key Switching
D-1.6 Homomorphic Ciphertext-to-Ciphertext Multiplication
D-1.6.1 Discussion on the Noise Growth
D-1.6.2 Generalization to GLWE-to-GGSW Multiplication
D-1.7 Coefficient Extraction
D-1.8 Noise Bootstrapping
D-1.8.1 Overview
D-1.8.2 Modulus Switch for Noise Boootstrapping
D-1.8.3 Halving the Plaintext Space To be Used
D-1.8.4 Blind Rotation
D-1.8.5 Coefficient Extraction
D-1.8.6 Noise Bootstrapping Summary
D-1.8.7 Example: Noise Bootstrapping
D-1.8.8 Discussion
D-1.8.9 Application: Gate Bootstrapping
D-1.8.10 Application: Neural Networks Bootstrapping
D-1.9 TFHE on a Discrete Torus