While reading the documentation for Concrete and Concrete ML, I came across a configuration parameter called p_error, which represents the probability that an error will occur in TFHE PBS, causing the blind rotation to shift to an unexpected slot.
I am very curious about this concept p_error.
- In Concrete, p_error is defined as follows:
-
But because of the possibility of error, you could get any other value in the LUT table.
-
My question is, if an error occurs due to noise, is it possible to get a value outside the LUT table? The homomorphism of PBS should be based on noise being within acceptable limits, right? If the noise overflows, is blind rotation in PBS still equivalent to CMUX? Is it possible that PBS is no longer equivalent to rotation on the LUT?
-
m_result = Round(p/q * (b - a*s))Let’s focus on the decryption process. We can see that the decryption result is constrained to the plaintext modulus. So, if noise overflows, shouldn’t the decryption result spread throughout the plaintext space, rather than within the LUT (the LUT may not cover the entire plaintext space)?
- I would be very grateful if you could recommend any relevant papers.
In particular, have any papers analyzed what happens after noise overflows?I’ve seen many papers analyze noise (usually providing noise formulas, but frankly,I don't know how they derived these formulas;I would appreciate it if you could provide some resources containing the specific process of noise analysis), but I haven’t seen what it means after noise overflows.