D-3.6 Ciphertext-to-Plaintext Multiplication

Remember that BFV’s ciphertext-to-plaintext multiplication (§D-2.6) is performed as follows:

𝖱𝖫𝖶𝖤S,σ(ΔM) Λ

= (A, B) Λ

= (A Λ, B Λ)

= 𝖱𝖫𝖶𝖤S,σ(Δ(M Λ))

, where the plaintext polynomial Λ is not scaled by Δ. However, the above relation cannot be used in CKKS’s ciphertext-to-plaintext multiplication because when CKKS encodes the input vector slots into polynomial coefficients, the encoding is computed as m = W~ InR v n (Summary D-3.1 in §D-3.1), where the n-th root-of-unity base ω = e𝑖𝜋n = cos (π n) + isin (π n). Since ω is usually not an integer, the encoded polynomial Λ’s coefficients are usually not integers (will usually have infinite decimal digits). Therefore, we need to follow the CKKS encoding procedure’s last step (Summary D-3.1 in §D-3.1), which scales Λ by Δ to shift an enough number of its decimal values to the integer digits, which effectively approximates the decimal coefficients to integers with high precision. Then, the resulting encrypted plaintext becomes ΔM ΔΛ = Δ2MΛ. To convert Δ2MΛ into ΔMΛ, we need to do a rescaling operation as we did in CKKS’s ciphertext-to-ciphertext multiplication’s (Summary D-3.5.6 in §D-3.5.6) last step. Therefore, CKKS’s ciphertext-to-plaintext multiplication consumes one multiplicative level (whereas BFV’s ciphertext-to-plaintext multiplication does not consume any multiplicative level). CKKS’s ciphertext-to-plaintext multiplication is summarized as follows:

Summary D-3.6 CKKS Ciphertext-to-Plaintext Multiplication

1.
Basic Multiplication

𝖱𝖫𝖶𝖤S,σ(ΔM) ΔΛ

= (A, B) ΔΛ

= (A ΔΛ, B ΔΛ)

= 𝖱𝖫𝖶𝖤S,σ(Δ2(M Λ))

2.
Rescaling

Switch the relinearlized ciphertext’s modulus from q q^ as done in CKKS’s ciphertext-to-ciphertext multiplication’s (Summary D-3.5.6 in §D-3.5.6) last step.