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

ML-DSA: Implement high & low bit and hint functions #189

Open
5 tasks
marsella opened this issue Nov 14, 2024 · 0 comments
Open
5 tasks

ML-DSA: Implement high & low bit and hint functions #189

marsella opened this issue Nov 14, 2024 · 0 comments
Labels
CNSA 2.0 version-update Addresses a new version of an existing spec

Comments

@marsella
Copy link
Contributor

We need to implement the various functions in Section 7.4.

The spec overloads these to apply both to individual values and to vectors (mapping the individual function to each element of the vector). Since we can't overload names in cryptol, we'll use the same naming scheme that we used in ML-KEM: appending _Vec to the name for the vector functions.
That said, I think we might not need both versions of the function in every case. E.g. it looks like Power2Round is only used in the vector case; we might be fine to just define it for that case at the top level and have the Algorithm 35 be a sub-function (e.g. defined in the where clause). Decompose seems to only be used in the subsequent high/low bits and hint functions in this section, so maybe it doesn't need to be defined for vectors.

The IPD versions of these all look pretty good, so this should mainly be a docs update PR.

  • Audit use cases of these functions to determine which top-level function signatures we need.
  • Implement and update docs for Power2Round
  • Implement and update docs for Decompose
  • Implement and update docs for HighBits and LowBits
  • Implement and update docs for MakeHint and UseHint
@marsella marsella added CNSA 2.0 version-update Addresses a new version of an existing spec labels Nov 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CNSA 2.0 version-update Addresses a new version of an existing spec
Projects
None yet
Development

No branches or pull requests

1 participant