-
Notifications
You must be signed in to change notification settings - Fork 54
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
Comment difference rough vs estimate #120
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! I have a few comments. Sorry!
README.rst
Outdated
We currently provide evaluators for the security of the `LWE`, `NTRU`, and `SIS` problems. | ||
Our estimator integrates simulators for the best known attacks against these problems, and provides | ||
bit-security estimates relying on heuristics to predict the cost of lattice reduction algorithms, the default being | ||
using `[MATZOV22] <https://zenodo.org/record/6412487>` for lattice reduction cost, and the GSA assumption |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have a references file. Also, we shouldn't hardcode these choices here but document conf.py
and point the reader there from here.
README.rst
Outdated
|
||
It is possible to evaluate attacks cost individually, or using the helper functions: | ||
- `*.estimator.rough`: fast routine that evaluates the security of the problem only against the usually most efficient | ||
attacks. In this case, note that the concrete lattice reduction cost is evaluated using the non-default "Core-SVP" method |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This shouldn't be hardcoded here, but the reader should be referred to the docstring of estimate.rough
README.rst
Outdated
It is possible to evaluate attacks cost individually, or using the helper functions: | ||
- `*.estimator.rough`: fast routine that evaluates the security of the problem only against the usually most efficient | ||
attacks. In this case, note that the concrete lattice reduction cost is evaluated using the non-default "Core-SVP" method | ||
from `[USENIX:ADPS16] <https://www.usenix.org/system/files/conference/usenixsecurity16/sec16_paper_alkim.pdf>`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is already documented in estimate.rough
, we should point there.
estimator/lwe.py
Outdated
@@ -37,6 +37,9 @@ def rough(self, params, jobs=1, catch_exceptions=True): | |||
- Arora-GB only applies to bounded noise with at least `n^2` samples. | |||
- BKW is not competitive. | |||
|
|||
Lattice reduction cost is evaluated based on the non-default "Core-SVP" method from |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is already documented above in the docstring.
estimator/ntru.py
Outdated
@@ -33,6 +33,9 @@ def rough(self, params, jobs=1, catch_exceptions=True): | |||
- The dual hybrid MITM attack only applies to sparse secrets. | |||
- The dense sublattice attack only applies to possibly overstretched parameters | |||
|
|||
Lattice reduction cost is evaluated based on the non-default "Core-SVP" method from |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is already documented above.
estimator/sis.py
Outdated
@@ -27,6 +27,9 @@ def rough(self, params, jobs=1, catch_exceptions=True): | |||
This function furthermore assumes the following heuristics: | |||
- None at the moment. May change as more algorithms are added. | |||
|
|||
Lattice reduction cost is evaluated based on the non-default "Core-SVP" method from |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is already documented above.
Thanks for your feedback! I updated the pull request to take it into account, I hope that's better now :) |
Great! A few CI failures to take care of but otherwise good to go. Thank you! |
Perfect! Should be good now |
Ta! |
Following a private email discussion with Martin and others, I would suggest adding a comment in the README about the main API and the cost models in use throughout the codebase.
I was quite confused that
rough
uses [ADPS16] by default, but the rest of the code rather relies on [MATZOV] for the concrete cost of lattice reduction.