Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kyber reduction model seems to use the wrong constant C in quantum mode #71

Open
shal10w opened this issue Mar 13, 2023 · 3 comments · May be fixed by #72
Open

Kyber reduction model seems to use the wrong constant C in quantum mode #71

shal10w opened this issue Mar 13, 2023 · 3 comments · May be fixed by #72

Comments

@shal10w
Copy link

shal10w commented Mar 13, 2023

The definition of the constant C uses 2^{0.292 β + o(β)} as the cost of sieving. But in quantum mode, the time complexity of sieving becomes 2^{0.265 β + o(β)} and the constant C should become 1/(1 - 2^{-0.265}) = 5.95. This will result in an error of about 0.1 bit when estimating with quantum mode like the example:
Kyber(nn="list_decoding-ge19")(500, 1024)
I think the constant C might not be needed as a parameter. We can easily compute it by C = 1.0/(1.0 - 2**(-self.NN_AGPS[self.nn]["a"]))

@malb
Copy link
Owner

malb commented Mar 13, 2023

Agreed, can you prepare a pull request?

@joerowell
Copy link
Contributor

joerowell commented Mar 13, 2023 via email

@shal10w
Copy link
Author

shal10w commented Mar 13, 2023

Well, I don't just change the constant C to 5.95. I want to compute it by C = 1.0/(1.0 - 2**(-self.NN_AGPS[self.nn]["a"])). So it can update with the dict NN_AGPS. If a new RAM model with the constant 0.257 appears, we can also easily update C while we update the dict NN_AGPS

@shal10w shal10w linked a pull request Mar 13, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants