-
Notifications
You must be signed in to change notification settings - Fork 0
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
Cryptodoc Update for ML-KEM #239
base: main
Are you sure you want to change the base?
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
e5131ed
to
6cd646c
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as resolved.
This comment was marked as resolved.
616c7f5
to
19684d4
Compare
e3f313a
to
254a4b2
Compare
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.
Small issues regarding notation
docs/cryptodoc/src/05_09_ml_kem.rst
Outdated
``KyberSymmetricPrimitives`` class | ||
(:srcref:`[src/lib/pubkey/kyber/kyber_common]/kyber_symmetric_primitives.h:30|Kyber_Symmetric_Primitives`). | ||
This class provides an interface for the primitives, which are defined as | ||
:math:`PRF`, :math:`H`, :math:`J`, :math:`G`, and :math:`XOF` in Section 4.1 of |
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.
In the algorithms below, double backticks are used mostly, it seems
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.
I agree, double backticks are more consistent 👍
**Steps:** | ||
|
||
1. Generate the random seed ``seed.d`` and the implicit rejection value ``seed.z`` at random using ``rng`` | ||
2. ``(rho, sigma) = G(seed.d || k)`` |
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.
ML-DSA uses more math notation for rho and sigma etc (which I like) but this has to be a bit more harmonized. Also, see above, G is written in math mode in the "Symmetric primitives" section but here part of a text in double backticks.
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.
I think I would personally prefer something like
:math:(\rho, \sigma)
= G(seed.d || k)
but I don't have very strong feelings and it applies to quite a few places.
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.
For the sake of consistency, I suggest that we stay with double backticks. This is more consistent with all other algorithms (besides ML-DSA). We will align ML-DSA with this syntax as well.
With the published ML-KEM specification (FIPS 203) and Botan's changes, our cryptodoc must be adapted accordingly.
The implementation and structure of ML-KEM have changed significantly due to extensive refactoring and changes from the specification. Therefore, I rewrote most parts (almost everything) and restructured the format so it matches with the other new algorithms.