D-2.4 Ciphertext-to-Ciphertext Addition

BFV’s ciphertext-to-ciphertext addition uses RLWE’s ciphertext-to-ciphertext addition scheme with the sign of the A ⋅S term flipped in the encryption and decryption formula. Specifically, this is equivalent to the alternative GLWE version’s (§B-4.4) ciphertext-to-ciphertext addition scheme with k = 1.

⟨Summary D-2.4⟩ BFV Ciphertext-to-Ciphertext Addition

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

= (A⟨1⟩, B⟨1⟩) + (A⟨2⟩, B⟨2⟩)

= (A⟨1⟩+ A⟨2⟩, B⟨1⟩+ B⟨2⟩)

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

D-2.4.1 Noise Bound Analysis

In the last part of Summary D-2.3 (in §D-2.3), we learned the noise bound conditions for BFV’s correct decryption. In this subsection, we will explain how this condition holds in more detail by walking through BFV’s ciphertext-to-ciphertext addition.

Let’s denote the homomorphically added ciphertext as follows:

(A⟨3⟩, B⟨3⟩) = (A⟨1⟩+ A⟨2⟩, B⟨1⟩+ B⟨2⟩) mod q

Applying the first step of decryption to it yields the following intermediate result:

B⟨3⟩+ A⟨3⟩⋅S mod q

B⟨1⟩+ B⟨2⟩+ A⟨1⟩⋅S + A⟨2⟩⋅S mod q

= (−A⟨1⟩⋅S + ΔM⟨1⟩+ E⟨1⟩) + (−A⟨2⟩⋅S + ΔM⟨2⟩+ E⟨2⟩) + A⟨1⟩⋅S + A⟨2⟩⋅S mod q

= ΔM⟨1⟩+ E⟨1⟩+ ΔM⟨2⟩+ E⟨2⟩mod q

The second step of decryption is to divide each coefficient of the above intermediate polynomial by Δ, round it, and reduce it modulo t as follows:

⌈Δ(M⟨1⟩+ M⟨2⟩) + E⟨1⟩+ E⟨2⟩mod q Δ ⌋ mod t

Correct decryption requires the above result to match the value M⟨1+2⟩ = M⟨1⟩+ M⟨2⟩mod t, where M⟨1+2⟩ is the modulo t-reduced final polynomial. Let’s define 𝜖 = q t − ⌊q t⌋ = q t −Δ. Given q ≫t, 𝜖 is a fractional value between [0,1). Now, we can re-write the above decryption term as follows:

⌈Δ(M⟨1⟩+ M⟨2⟩) + E⟨1⟩+ E⟨2⟩mod q Δ ⌋ mod t

⌈(q t −𝜖) ⋅(M⟨1⟩+ M⟨2⟩) + E⟨1⟩+ E⟨2⟩mod q Δ ⌋ mod t ▹ applying Δ = ⌊q t⌋ = q t −𝜖

= ⌈(q t −𝜖) ⋅(M⟨1+2⟩+ t ⋅K) + E⟨1⟩+ E⟨2⟩mod q Δ ⌋ mod t

▹where t ⋅K represents the t-multiple overflows generated by the modulo addition of M⟨1⟩+ M⟨2⟩

= ⌈ q t ⋅M⟨1+2⟩−𝜖 ⋅M⟨1+2⟩+ q t ⋅t ⋅K −𝜖 ⋅t ⋅K + E⟨1⟩+ E⟨2⟩mod q Δ ⌋ mod t

= ⌈ q t ⋅M⟨1+2⟩−𝜖 ⋅M⟨1+2⟩−𝜖 ⋅t ⋅K + E⟨1⟩+ E⟨2⟩mod q Δ ⌋ mod t

▹ since q t ⋅t = q, and q ⋅K mod q = 0

= ⌈ ⌊q t ⌋ ⋅M⟨1+2⟩+ 𝜖 ⋅M⟨1+2⟩−𝜖 ⋅M⟨1+2⟩−𝜖 ⋅t ⋅K + E⟨1⟩+ E⟨2⟩mod q Δ ⌋ mod t

▹ applying q t = ⌊q t⌋ + 𝜖

= ⌈ ⌊q t ⌋ ⋅M⟨1+2⟩−𝜖 ⋅t ⋅K + E⟨1⟩+ E⟨2⟩mod q Δ ⌋ mod t

= ⌈ ⌊q t ⌋ ⋅M⟨1+2⟩−𝜖 ⋅t ⋅K + E⟨1⟩+ E⟨2⟩ Δ ⌋ mod t

▹applying the special assumption |𝜖 ⋅t ⋅K + E⟨1⟩+ E⟨2⟩|< Δ 2 to all n coefficients (see §B-2.3.1)

= M⟨1+2⟩+ ⌈E⟨1⟩+ E⟨2⟩−𝜖 ⋅t ⋅K Δ ⌋ mod t ▹ since Δ = ⌊q t⌋, and ⌈M⟨1+2⟩⌋= M⟨1+2⟩

= M⟨1+2⟩mod t ▹ applying the special assumption 𝜖 ⋅t ⋅K + E⟨1⟩+ E⟨2⟩ < Δ 2 to all n coefficients

The above final expression implies that correct decryption (i.e., M⟨1+2⟩) is preserved if the special assumption 𝜖 ⋅t ⋅K + E⟨1⟩+ E⟨2⟩ < Δ 2 holds (for all n coefficients of the polynomial). At a high level, the greater the ciphertext modulus q becomes compared to the plaintext modulus t, the greater the scaling factor Δ becomes, which can sustain a greater noise budget (E⟨1⟩+ E⟨2⟩) and greater wrapping around t-multiple overflows of the plaintext (𝜖 ⋅t ⋅K).

This noise bound principle not only applies to homomorphic addition but also to homomorphic multiplication and rotation, which will be explained in later subsections. The term E⟨1⟩+ E⟨2⟩ can be generalized as the cumulative noise across all homomorphic operations (e.g., additions, multiplications, rotations), and the term 𝜖 ⋅t ⋅K can be generalized as the amount of t-multiple overflows of each coefficient of the plaintext polynomial computed across homomorphic operations.