Closed samtay closed 1 year ago
Hi @samtay,
Noise tracking is difficult and still a subject or research. As far as I am aware, there exist no library or noise tracking approach for BFV/BGV/CKKS that provides accurate or realistic bounds over reasonably complex circuits and as of today, we do not plan to have such feature in the library.
An approach that works well is to derive empirical bounds by running the circuit many times.
Regarding the smudgning noise, it is not constant but drawn from the distribution sigmaSmudging
which is specified by the user. I assume by that constant you meant that all ciphertexts going through the instantiated protocol will be smudged with the same noise. That is correct. If a user wants to define a new noise, the current instance has to be discarded and replaced by a new one with the updated noise.
I see, thank you for explaining. I guess the expectation would be that the library user would set sigmaSmudging
to an appropriate value given the circuit being evaluated, using the exponential relationship in the paper as a guideline. I was expecting the library to draw from a gaussian whose variance depends on the provided sigmaSmudging
and ciphertext
.
Anyway, I'll close this issue then, since there's no immediate plans to change this.
In the Multiparty Homomorphic Encryption from Ring-Learning-with-Errors paper, Section 4.E states that during decryption the smudging noise needs to be drawn from a Gaussian whose variance depends on the given ciphertext variance. That is, if a ciphertext's noise is not fresh, but has increased via homomorphic computation, the smudging variance needs to increase as well. A quote, for reference:
However, I don't see any kind of noise model keeping track of ciphertext noise-level in lattigo. And when I search for usages of the
sigmaSmudging
parameter ofNewCKSProtocol
, I only ever see it being used to draw from a constant gaussian. Am I mistaken, or does lattigo just use a constant $\sigma{smg}$? If the latter, what are the security ramifications of this constant $\sigma{smg}$?