C-1 GLWE Ciphertext-to-Ciphertext Addition

- Reference: TFHE Deep Dive - Part II - Encodings and linear leveled operations [8]

Suppose we have two GLWE ciphertexts encrypting two different plaintexts M⟨1⟩,M⟨2⟩:

𝖦𝖫𝖶𝖤S,σ(ΔM⟨1⟩+ E⟨1⟩) = 𝖼𝗍⟨1⟩ = (A0⟨1⟩,A1⟨1⟩,…,Ak−1⟨1⟩,B⟨1⟩) ∈R⟨n,q⟩k+1

𝖦𝖫𝖶𝖤S,σ(ΔM⟨2⟩+ E⟨2⟩) = 𝖼𝗍⟨2⟩ = (A0⟨2⟩,A1⟨2⟩,…,Ak−1⟨2⟩,B⟨2⟩) ∈R⟨n,q⟩k+1

Let’s define the following ciphertext addition operation:

𝖼𝗍⟨1⟩+ 𝖼𝗍⟨2⟩ = (A0⟨1⟩+ A0⟨2⟩, A1⟨1⟩+ A1⟨2⟩,…,Ak−1⟨1⟩+ Ak−1⟨2⟩, B⟨1⟩+ B⟨2⟩)

Then, the following is true:

⟨Summary C-1⟩ GLWE Homomorphic Addition

𝖦𝖫𝖶𝖤S,σ(ΔM⟨1⟩+ E⟨1⟩) + 𝖦𝖫𝖶𝖤S,σ(ΔM⟨2⟩+ E⟨2⟩)

= ({Ai⟨1⟩}i=0k−1, B⟨1⟩) + ({Ai⟨2⟩}i=0k−1, B⟨2⟩)

= ({Ai⟨1⟩+ Ai⟨2⟩}i=0k−1, B⟨1⟩+ B⟨2⟩)

= 𝖦𝖫𝖶𝖤S,σ(Δ(M⟨1⟩+ M⟨2⟩) + E⟨3⟩) ▹ where E⟨3⟩ = E⟨1⟩+ E⟨2⟩

This means that adding two GLWE ciphertexts (each of which encrypts M⟨1⟩ and M⟨2⟩) and decrypting the resulting ciphertext yields M⟨1⟩+ M⟨2⟩.

Proof.

1.
Define the following notations:
A0⟨3⟩ = A0⟨1⟩+ A0⟨2⟩
A1⟨3⟩ = A1⟨1⟩+ A1⟨2⟩
⋮
Ak−1⟨3⟩ = Ak−1⟨1⟩+ Ak−1⟨2⟩
E⟨3⟩ = E⟨1⟩+ E⟨2⟩
B⟨3⟩ = B⟨1⟩+ B⟨2⟩
2.
Derive the following:
B⟨3⟩ = B⟨1⟩+ B⟨2⟩
= ∑ ⁡ i=0k−1(Ai⟨1⟩⋅Si) + Δ ⋅M⟨1⟩+ E⟨1⟩+ ∑ i=0k−1(Ai⟨2⟩⋅Si) + Δ ⋅M⟨2⟩+ E⟨2⟩
= ∑ ⁡ i=0k−1((Ai⟨1⟩+ Ai⟨2⟩) ⋅Si) + Δ ⋅(M⟨1⟩+ M⟨2⟩) + (E⟨1⟩+ E⟨2⟩) ▹ commutative and distributive rules
= ∑ ⁡ i=0k−1(Ai⟨3⟩⋅Si) + Δ ⋅(M⟨1⟩+ M⟨2⟩) + E⟨3⟩
3.
Since B⟨3⟩ = ∑ ⁡ i=0k−1(Ai⟨3⟩⋅Si) + Δ ⋅(M⟨1⟩+ M⟨2⟩) + E⟨3⟩,

this means that (A0⟨3⟩,A1⟨3⟩,A2⟨3⟩,…,Ak−1⟨3⟩,B⟨3⟩) form the ciphertext: 𝖦𝖫𝖶𝖤S,σ(Δ ⋅(M⟨1⟩+ M⟨2⟩) + E⟨3⟩).

4.
Thus,
𝖦𝖫𝖶𝖤S,σ(ΔM⟨1⟩+ E⟨1⟩) + 𝖦𝖫𝖶𝖤S,σ(ΔM⟨2⟩+ E⟨2⟩)
= (A0⟨1⟩+ A0⟨2⟩, A1⟨1⟩+ A1⟨2⟩,…,Ak−1⟨1⟩+ Ak−1⟨2⟩, B⟨1⟩+ B⟨2⟩)
= (A0⟨3⟩,A1⟨3⟩,A2⟨3⟩,…,Ak−1⟨3⟩,B⟨3⟩)
= ({Ai⟨3⟩}i=0k−1,B⟨3⟩)
= 𝖦𝖫𝖶𝖤S,σ(Δ(M⟨1⟩+ M⟨2⟩) + E⟨3⟩)
□

C-1.1 Discussion