-
Notifications
You must be signed in to change notification settings - Fork 834
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
Dilithium/ML-DSA: Implementation of ML-DSA-44/65/87 #7622
Conversation
c3fcb5f
to
cde10ca
Compare
4f499bf
to
566d383
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.
(analyzer report sent separately)
also note that settings.h
should be updated to require WOLFSSL_EXPERIMENTAL_SETTINGS
if HAVE_DILITHIUM
is defined.
b84a256
to
19ab23c
Compare
7d7604b
to
fe0a46f
Compare
Testing results on STM32H7A3 Cortex M7 at 240MHz: Testing with build options:
Results adding
Code size difference is 6520 bytes ( |
Impemented FIPS 204 (Draft) Module-Lattice-Based Signature Standard. Implementation include making a key, signing and verification. Make key API added. Updated liboqs calls to use ML-DSA implementation instead of Dilithium.
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.
fantabulous!
now passing quantum-safe-wolfssl-all-gcc-latest quantum-safe-wolfssl-all-clang-tidy quantum-safe-wolfssl-all-intelasm-sp-asm-sanitizer quantum-safe-wolfssl-all-noasm-sanitizer quantum-safe-wolfssl-all-noasm-smallstack-sanitizer quantum-safe-wolfssl-all-crypto-only-noasm-linuxkm-insmod quantum-safe-wolfssl-all-noasm-stack-sizes quantum-safe-wolfssl-all-crypto-only-benchmark-sanitizer quantum-safe-wolfssl-all-cppcheck quantum-safe-wolfssl-all-cross-aarch64-armasm-unittest-sanitizer
with --enable-dilithium
added to ALL_NATIVE_QUANTUM_SAFER
and -DWOLFSSL_DILITHIUM_ALIGNMENT=8
added to noasm sanitizer builds.
Moving from v5.6.6-stable we are picking up: https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.0-stable https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.2-stable (there was no 5.7.1) Our `disable-falcon-dilithium.patch` required an update, likely due to the changes in wolfSSL/wolfssl#7622.
Description
Impemented FIPS 204 (Draft) Module-Lattice-Based Signature Standard. Implementation include making a key, signing and verification. Make key API added.
Updated liboqs calls to use ML-DSA implementation instead of Dilithium.
Testing
./configure '--enable-experimental' '--enable-dilithium'
Checklist