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: integrate final standard #1891

Open
bhess opened this issue Aug 13, 2024 · 15 comments · Fixed by #1899 · May be fixed by #1919
Open

ML-DSA: integrate final standard #1891

bhess opened this issue Aug 13, 2024 · 15 comments · Fixed by #1899 · May be fixed by #1919
Milestone

Comments

@bhess
Copy link
Member

bhess commented Aug 13, 2024

The final standards were published today: FIPS203 and FIPS204.

This is to track the integration of the updated algorithms.

I'd suggest the following steps:

  • Pull update from pq-crystals upstream once available
  • The current ML-DSA-ipd/ML-KEM-ipd implementations would be dropped
  • Integrate test vectors from NIST ACVP repository

update (Aug 22):

Update (Aug 27):
ML-KEM landed in main, remaining is ML-DSA integration

Update (Sep 5):
ML-DSA is available upstream: https://github.com/pq-crystals/dilithium

@baentsch
Copy link
Member

On item1, any timeline as to when upstream will make them available? Would it make sense to do 0.11.0 (or maybe finally a 1.0.0!) after they landed?

@bhess
Copy link
Member Author

bhess commented Aug 14, 2024

The information I got is that the pq-crystals team looks at updating the implementation later this month.

@tomato42
Copy link

The NIST ACVP repository hasn't been updated with new vectors. Do you know when will that happen?

@bhess
Copy link
Member Author

bhess commented Aug 14, 2024

The NIST ACVP repository hasn't been updated with new vectors. Do you know when will that happen?

According to this message on the pqc-forum, a fixed version should be released today.

@dstebila dstebila added this to the 0.12.0 milestone Aug 14, 2024
@dstebila
Copy link
Member

Tying into Roadmap discussion

@github-project-automation github-project-automation bot moved this from Todo to Done in liboqs planning Aug 27, 2024
@bhess bhess reopened this Aug 27, 2024
@github-project-automation github-project-automation bot moved this from Done to In Progress in liboqs planning Aug 27, 2024
@bhess bhess changed the title ML-DSA & ML-KEM: integrate final standards ML-DSA: integrate final standard Aug 27, 2024
@obronchain
Copy link

Hi all,

Also according to this message on the pqc-forum, the CAVP will also integrate all the external API (around october 2024 ?).

I would be very useful if LibOqs could support also all these APIs and are compatible will all the KATs.

@bhenning10
Copy link

It looks like pq-crystals merged changes to support the final spec.
pq-crystals/dilithium@cf998be

@dstebila dstebila modified the milestones: 0.12.0, 0.11.0 Sep 5, 2024
@abhinav-thales
Copy link
Contributor

It looks like pq-crystals merged changes to support the final spec. pq-crystals/dilithium@cf998be

IMO these changes are not compatible with the ACVP vectors. The vectors are based on 'internal' API's as per FIPS204 and not the high level API's.

Also refer comment from author here : pq-crystals/dilithium#88 (comment)

@github-project-automation github-project-automation bot moved this from In Progress to Done in liboqs planning Sep 10, 2024
@dstebila
Copy link
Member

I don't think this has been completed?

@SWilson4 SWilson4 reopened this Sep 10, 2024
@github-project-automation github-project-automation bot moved this from Done to In Progress in liboqs planning Sep 10, 2024
@bhess
Copy link
Member Author

bhess commented Sep 10, 2024

Planning a draft PR later today.
There will still be some open points for a full integration: access to the 'internal' API to be able to run the ACVP vectors (planned upstream: pq-crystals/dilithium#88 (comment)), and adding ACVP vectors for the 'external' API (planned by NIST as outlined by @obronchain above).

@bhess bhess linked a pull request Sep 11, 2024 that will close this issue
8 tasks
@github-project-automation github-project-automation bot moved this from In Progress to Done in liboqs planning Sep 13, 2024
@baentsch
Copy link
Member

Why did you close this @planetf1 ? #1919 didn't land afaik.

@planetf1
Copy link
Contributor

@baentsch Sincere apologies. My error when scrolling through the project on a touch screen. Unintentional, should reopen. Thanks for spotting.

@planetf1 planetf1 reopened this Sep 13, 2024
@github-project-automation github-project-automation bot moved this from Done to In Progress in liboqs planning Sep 13, 2024
@github-project-automation github-project-automation bot moved this from In Progress to Done in liboqs planning Sep 17, 2024
@baentsch
Copy link
Member

Again incorrectly closed.

@johngray-dev
Copy link

johngray-dev commented Oct 30, 2024

I was wondering if you are planning to support the context string for ML-DSA when you release version 12.0 officially? I took a look at your code, and it looks like the context String is supported internally, but not in your external API. In our latest composite signatures draft https://datatracker.ietf.org/doc/draft-ietf-lamps-pq-composite-sigs/03/ we actually need to make use of the ML-DSA context String to give the draft stronger security properties. If it will not be in the upcoming version 12.0, is there a timeline for ML-DSA context String support to be added? The composite signatures implementation in the oqs provider by my colleague Felipe Ventura won't be able to be updated to the latest draft until ML-DSA officially supports the context String.

@bhess
Copy link
Member Author

bhess commented Oct 30, 2024

Hi @johngray-dev, yes I'll update PR #1919 soon with a proposed API that supports providing the context string.

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