D-1.6 Homomorphic Ciphertext-to-Ciphertext Multiplication
- Reference: TFHE Deep Dive - Part III - Key switching and leveled multiplicationsΒ [9]
TFHE supports multiplication of two ciphertexts in the form:
.
The 1st term
comes from one of the following:
- A fresh LWE encryption (Β§B-4.2) of plaintext .
- A homomorphically added result of two LWE ciphertexts (Β§C-1).
- A homomorphically multiplied result of a LWE ciphertext with a plaintext (Β§C-3).
The 2nd term
comes from one of the following:
- A fresh GSW encryption (Β§B-6.1) of plaintext .
- Converted from
into
by circuit bootstrapping (this will be covered in the future).
Remember the following:
,
where
Letβs use the following notations:
for
Letβs define the following TFHE ciphertext multiplication operation:
Then, the following is true:
SummaryΒ D-1.6
TFHE Ciphertext-to-Ciphertext Multiplication
This means that multiplying two TFHE ciphertexts (one is in LWE and another in GSW) and
decrypting the resulting LWE ciphertext gives the same result as multiplying their two original
plaintexts.
Proof.
-
1.
-
# expanding the dot product of two vectors
-
2.
- For :
,
where
# from Β§A-6.2
Therefore:
# from Β§C-3
# from Β§C-1
# from Β§A-6.2
-
3.
- For :
,
where
Therefore:
-
4.
- According to step 2 and 3,
# addition of two GLWE ciphertexts
# given
is small and thus
is also small
β‘
D-1.6.1 Discussion on the Noise Growth
Note that after ciphertext-to-ciphertext multiplication, the noise grows to:
To reduce the noise, noise bootstrapping is needed (will be discussed in Β§D-1.8).
D-1.6.2 Generalization to GLWE-to-GGSW Multiplication
We can further generalize TFHEβs LWE-to-GSW multiplication to GLWE-to-GGSW multiplication between the following
two ciphertexts: ,
where ,
, and
are
-degree
polynomials.
The 1st term
comes from one of the following:
- A fresh GLWE encryption (Β§B-4.2) of plaintext .
- A homomorphically added result of two GLWE ciphertexts (Β§C-1).
- A homomorphically multiplied result of a GLWE ciphertext with a plaintext (Β§C-3).
The 2nd term
comes from one of the following:
- A fresh GGSW encryption (Β§B-6.1) of plaintext .
- Converted from
into
by circuit bootstrapping (this will be covered in the future).
Remember the following:
,
where
# from Β§B-4.2
Letβs use the following notations:
for
Letβs define the following TFHE ciphertext multiplication operation:
Then, the following is true:
SummaryΒ D-1.6.2
Generalization to GLWE-to-GGSW
Multiplication
This means that multiplying two TFHE ciphertexts (one is in GLWE and another in GGSW) and
decrypting the resulting GLWE ciphertext gives the same result as multiplying their two original
plaintexts.
Proof.
-
1.
-
# expanding the dot product of two vectors
-
2.
- For :
,
where
# from Β§A-6.2
Therefore:
# from Β§C-3
# from Β§C-1
# from Β§A-6.2
-
3.
- For :
,
where
Therefore:
-
4.
- According to step 2 and 3,
# addition of two GLWE ciphertexts
# given
is small and thus
is also small
β‘