BGV: Add Variance-based Noise Model #1385
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Depends on #1343. This adds a noise model based on variance analysis in coefficient embedding from MP24 (https://ia.cr/2019/452).
This model gives a much closer bound (tight in the means of off by 2~3 bit) on the noise, compared with the model in #1343 (off by > 10 bit). User can use such model to generate aggresive parameters.
One caution from my experiment is that, after a deep multiplication, this model gives underestimation. Fixes could be imported in a similar style from BMCM23 (https://ia.cr/2023/600), which focuses on BFV. This is a future work.
Example
For the most tailored example for Lattigo (merging #1379, #1374, #1380), we get the following trace and generated parameter
Public key enc
Change the public key encryption to mod reduce, suggested by #1374 (comment)
Estimation and generated param
Real trace
Secret key enc
The estimation and generated param
Real trace