D-1.9 TFHE on a Discrete Torus

- Reference: Guide to Fully Homomorphic Encryption over the [Discretized] TorusΒ [11]

Torus 𝕋 is a continuous real number domain between 0 and 1 that wraps around, that is [0,1).

A discrete torus 𝕋t is a finite real number set: (0,1 t,2 t,Β β‹―Β ,t βˆ’1 t )

In the previous subsections, we explained the TFHE scheme based on the following setup:

m ∈ β„€t sβ†’ = {0,1}k e ∈ β„€q

𝖫𝖢𝖀sβ†’,Οƒ(Ξ”m) = (a0,a1,Β β‹―Β ,ak,b) ∈ β„€tk+1

However, the original TFHE scheme is designed based on a discrete torus:

m ∈ 𝕋t,Β sβ†’ ∈{0,1}k,Β e ∈ 𝕋q

𝖫𝖢𝖀sβ†’,Οƒ(m) = 𝖼𝗍 = (a0,a1,Β β‹―Β ,ak,b) ∈ 𝕋qk+1

b = βˆ‘ ⁑ i=0k(aisi) + m + e ∈ 𝕋q

𝖫𝖢𝖀sβ†’,Οƒβˆ’1(𝖼𝗍) = ⌈b βˆ’βˆ‘ ⁑ i=0kβˆ’1(aisi)βŒ‹1 t = ⌈m + eβŒ‹1 t = m, given e < 1 2t

# where ⌈xβŒ‹1 t means rounding x to the nearest multiple of 1 t

The original TFHE’s difference is that all values (either polynomial coefficients or vector elements) are computed in a floating point modulo 1 (i.e., [0,1)) instead of a big integer (i.e., [0,q)). This means the plaintext also has to be encoded as values within [0,1) instead of integers within [0,q). Note that in the original TFHE scheme, there is no need for the scaling factor Ξ”, because the continuous domain of torus [0,1) provides a floating-point precision up to q discrete decimal values, and its decryption process can successfully blow away the noise E as far as each coefficient (or vector element) ei in E is smaller than 1 2t.

Both the torus-based and integer-ring-based TFHE schemes are built based on the same fundamental principles.