Hi, I’m trying to understand the paper General Functional Bootstrapping using CKKS (https://eprint.iacr.org/2024/1623.pdf).
In line 3 of the algorithm 1 in the paper, the ciphertext ct_1, encrypting \frac{q'_0}{p}m(X) \mod q'_0 is multiplied by \frac{\Delta}{q'_0} and gets a new ciphertext ct_2 encrypting
\Delta\frac{m(X)}{p} \mod q'_0.
My question is how this adjusting the scaling factor can be implemented in practice?
If \frac{\Delta}{q'_0} is an integer, the step is straightforward, it is simply a multiplication by a plaintext constant.
However, if \Delta < q'_0, then \frac{\Delta}{q'_0} is not an integer, so we cannot directly multiply the ciphertext by this factor in the usual CKKS representation. Normally, to reduce the scale factor of the ciphertext (from q'_0\frac{m(X)}{p} to \Delta\frac{m(X)}{p}), CKKS requires a rescale operation, but rescaling also changes the modulus, whereas line 3 explicitly states that the ciphertext must remain under the same modulus q'_0.
So I am unsure how this step can be performed while keeping the modulus fixed.
Any clarification on how this scaling adjustment can be performed would be greatly appreciated
