Hi everyone,
I’ve been reading the paper on general functional bootstrapping using ckks(General Functional Bootstrapping using CKKS) and also looking at the accompanying implementation.
Both the paper and the code mention:
We work with an RLWE scheme that assumes the plaintext modulus and the ciphertext modulus to be powers of two (not RNS-friendly).
I have a few questions about this design choice:
-
Modulus choice:
Is it possible (in principle or in practice) to use prime moduli for the plaintext and ciphertext in the RLWE scheme instead of powers of two? Is this necessary for correctness of the bootstrapping, or simply a convenient design choice in the current implementation? -
Floating-point interpretation:
The paper describes the mapping \frac{m}{p} + I \rightarrow f(m)
If p is power of two, then \frac{m}{p} is a fixed-point number and we seek a polynomial approximation.
If p were prime, then \frac{m}{p} would be a repeating decimal. Would the Hermite–trigonometric interpolation technique still approximate \frac{m}{p} + I \rightarrow f(m) correctly under that setting, or does the power-of-two modulus play a specific algebraic role?
Any clarification would be very helpful. Thanks!