Closed halfmanli closed 11 months ago
Old BFV paper describes $\Delta = \lfloor q/t\rfloor $. However, current SEAL uses another formula to achieve a smaller nosie growth ${\sf round}(q/t\cdot m_p)$ Some follow up papers also use this formula e.g., Revisiting Homomorphic Encryption Schemes for Finite Fields
This makes sense. Thank you!
The comment of
multiply_add_plain_with_scaling_variant
innative/src/seal/util/scalingvariant.cpp
says "Coefficients of plain m multiplied by coeff_modulus q, divided by plain_modulus t, and rounded to the nearest integer (rounded up in case of a tie). Equivalent to floor((q m + floor((t+1) / 2)) / t)". Why is the rounding operation used here? According to the paper, which says: Thus, we just need to calculate $\Delta m_p = \lfloor q / t \rfloor m_p$, where $m_p$ is the plaintext added to the ciphertext. It seems that we don't need to round to the nearest integer.