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
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,20 @@ The main purpose of this estimator is to give designers an easy way to choose pa
Quick Start
-----------

- Usage
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.

`[Schnorr03] <http://dx.doi.org/10.1007/3-540-36494-3_14>` for the reduction shape.

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

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`: extended routine that evaluates the security of the problem against all supported attacks. This uses the
default cost and shape model for lattice reduction.

Usage examples:

.. code-block:: python

Expand Down
3 changes: 3 additions & 0 deletions estimator/lwe.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.

[USENIX:ADPS16].

:param params: LWE parameters.
:param jobs: Use multiple threads in parallel.
:param catch_exceptions: When an estimate fails, just print a warning.
Expand Down
3 changes: 3 additions & 0 deletions estimator/ntru.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.

[USENIX:ADPS16].

:param params: NTRU parameters.
:param jobs: Use multiple threads in parallel.
:param catch_exceptions: When an estimate fails, just print a warning.
Expand Down
3 changes: 3 additions & 0 deletions estimator/sis.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.

[USENIX:ADPS16].

:param params: SIS parameters.
:param jobs: Use multiple threads in parallel.
:param catch_exceptions: When an estimate fails, just print a warning.
Expand Down
Loading