SEAL
SEAL copied to clipboard
Why does CKKS encryptor need modulus switching?
I have same wonder with the post (https://github.com/microsoft/SEAL/issues/402#issue-1022757442).
Let's suppose that CKKS use the primes for crt with {60, 40, 40, 60} bitwidth.
Let's call them q0, q1, q2, q3 respectively.
I checked that the encrypted data are in modulus q0, q1, q2 (crt format) after encryption from the encoder's plaintext.
But I saw void Encryptor::encrypt_zero_internal function includes "Modulus Switching". (using q3)
I wanna understand why the modulus switching process is needed.
This is undocumented trick to decrease the noise from asymmetric encryption