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

Comment difference rough vs estimate #120

Merged
merged 3 commits into from
Aug 25, 2024
Merged

Comment difference rough vs estimate #120

merged 3 commits into from
Aug 25, 2024

Conversation

GuilhemN
Copy link
Contributor

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.

Copy link
Owner

@malb malb left a 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
Copy link
Owner

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
Copy link
Owner

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>`.
Copy link
Owner

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
Copy link
Owner

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.

@@ -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
Copy link
Owner

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
Copy link
Owner

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.

@GuilhemN
Copy link
Contributor Author

Thanks for your feedback! I updated the pull request to take it into account, I hope that's better now :)

@malb
Copy link
Owner

malb commented Aug 23, 2024

Great! A few CI failures to take care of but otherwise good to go. Thank you!

@GuilhemN
Copy link
Contributor Author

Perfect! Should be good now

@malb malb merged commit af53b34 into malb:main Aug 25, 2024
2 checks passed
@malb
Copy link
Owner

malb commented Aug 25, 2024

Ta!

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 this pull request may close these issues.

2 participants