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

Latest updates to ML-DSA are not implemented yet #1850

Closed
kamlesh0hrs opened this issue Jul 19, 2024 · 12 comments
Closed

Latest updates to ML-DSA are not implemented yet #1850

kamlesh0hrs opened this issue Jul 19, 2024 · 12 comments
Milestone

Comments

@kamlesh0hrs
Copy link

Describe the bug
Looks like NIST has updated the parameters for Dilithium and Kyber which is still not implemented in the OQS.
Please refer below link from atsec

https://atsec-information-security.blogspot.com/2023/11/pqc-kyber-and-dilithium-state-of-draft.html

If that is true and If NIST has already made the changes for Its ACVP demo server , is there any plan to incorporate these changes in OQS anytime soon ?

@SWilson4
Copy link
Member

The NIST draft standard versions are included in the latest release of liboqs. They are referred to as ML-KEM and ML-DSA (the NIST names), rather than Kyber and Dilithium.

OQS additionally continues to support the Round 3 versions of Kyber and Dilithium under their old names.

@smuellerDD
Copy link

Please note that one more change is decided upon that is not yet in liboqs: See the patch in [1]. When I revert this patch in leancrypto, both implementations calculate the same signature. However, please note that the NIST reference implementation already contains the change stipulated in [1] as I tested leancrypto against the NIST reference implementation via the ACVP interface [2] using the ACVP parser [3].

[1] smuellerDD/leancrypto@3a51337

[2] https://github.com/usnistgov/ACVP

[3] https://github.com/smuellerDD/acvpparser

@baentsch
Copy link
Member

Which OQS sig alg did you use in your test? ML-SIG or the old (IMO deprecated) Dilithium?

@smuellerDD
Copy link

smuellerDD commented Jul 21, 2024 via email

@SWilson4
Copy link
Member

Thanks for letting us know about this, @smuellerDD. I don't think any of the liboqs team were aware that NIST had updated the implementation on the ACVP server. (Here is the source code change as an FYI for other readers.) As far as I can tell, the FIPS draft has not yet been updated.

To this point, we've followed the lead of the PQ-Crystals team and pulled in changes when they land in the upstream repo. @bhess do you know what their plans are with regards to this update?

Also tagging @dstebila so he's aware of this issue.

@SWilson4 SWilson4 reopened this Jul 22, 2024
@SWilson4 SWilson4 changed the title NIST latest standards are not implemented yet. Latest updates to ML-DSA are not implemented yet Jul 22, 2024
@smuellerDD
Copy link

smuellerDD commented Jul 22, 2024 via email

@bhess
Copy link
Member

bhess commented Jul 22, 2024

Thanks for the pointer @smuellerDD.

It looks like the change in SampleInBall is related to the changes announced in the post on the pqc-forum:
https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/y8ul-ZcVWI4/m/k6WPyIdxAQAJ?utm_medium=email&utm_source=footer

In my view we would update the implementation once the final FIPS versions are published. I'd assume the upstream pq-crystals implementation will be updated at this point.

@smuellerDD
Copy link

smuellerDD commented Jul 22, 2024 via email

@UladzimirTrehubenka
Copy link

As I understand to conform to latest ML-DSA KAT:
src/sig/ml_dsa/*

void poly_challenge(poly * restrict c, const uint8_t seed[SEEDBYTES]) {
...
  shake256_inc_absorb(&state, seed, SEEDBYTES);

->

void poly_challenge(poly * restrict c, const uint8_t seed[CTILDEBYTES])
...
  shake256_inc_absorb(&state, seed, CTILDEBYTES);

@dstebila dstebila modified the milestones: 0.11.0, 0.12.0 Aug 14, 2024
@UladzimirTrehubenka
Copy link

The first standards were recently finalized

@bhess
Copy link
Member

bhess commented Aug 16, 2024

The first standards were recently finalized

See also #1891 for ML-DSA / ML-KEM and #1894 for SLH-DSA.

@dstebila dstebila closed this as not planned Won't fix, can't repro, duplicate, stale Aug 16, 2024
@github-project-automation github-project-automation bot moved this from Todo to Done in liboqs planning Aug 16, 2024
@dstebila
Copy link
Member

Tracked in #1891.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

7 participants