Hi,
I read this article about CKKS noise reduction, explaining that we cannot reduce the noise ratio within a CKKS ciphertext relative to its ciphertext modulus:
https://openfhe.discourse.group/t/ckks-relations-between-bootstrapping-noise-and-precision/1493
However, what if we instead use BFV’s bootstrapping method (e.g., digit extraction) to remove the noise of CKKS ciphertexts? Like CKKS, BFV also uses the same structure of modulus chain. Suppose we have a CKKS ciphertext whose modulus is q_0 (is the lowest multiplicative level’s ciphertext modulus). We can do the following:
- Do mod-switch from q_0 \rightarrow p^e , choosing some prime p and some integer e such that p^e \approx q_L (the highest multiplicative level’s ciphertext modulus in the modulus chain)
- Do CoeffToSlot
- Do digit extraction
- Do SlotToCoeff
- Do another modulus switch back to q_L.
This way, we can both mod-raise CKKS’s ciphertext from q_0 \rightarrow p^e \rightarrow q_L and also reset the noise. Not sure if I am missing something here…