mldsa-native
mldsa-native copied to clipboard
Secure, fast, and portable C90 implementation of ML-DSA / FIPS 204
- Resolves: #732 - Purpose: This porting aims to separate the native backend functions into two distinct sets: - Fallback C backend functions - Native backend functions This work is...
Conjecture: it is better for proof performance and stability to use signed "int" types for quantifiers, loop indexing expressions, for loop counters. This PR implements this change to gain data...
Add linting for shell scripts in the scipts directory as well as any *.sh file accross the project using shellcheck.
https://github.com/pq-code-package/mldsa-native/pull/735 hoisted out the C portion of `poly_ntt` into `poly_ntt_c` resulting in now three levels of indirection `poly_ntt` -> `poly_ntt_c` -> `mld_ntt`. Similar for the `invntt`. We should remove that...
https://github.com/pq-code-package/mldsa-native/pull/735#discussion_r2576988588 identified `POLY_UNIFORM_NBLOCKS` which should be namespaced as `MLD_POLY_UNIFORM_NBLOCKS`. We should double check if there are any other macros that are still missing namespacing.
This PR reduces the stack usage of `crypto_sign_verify_internal` based on top of #743 using simple restructuring and sharing buffers. CBMC proofs are not yet adjusted.
This PR adds failure mode support for the randombytes() interface. Marking as draft as there are a few points for which I need clarifications. These are the following: 1. What...
Some consumers may only be interested in a subset of sign / verify / key generation. While we can consider adding configuration options for disabling them at compile time, that...
In the very end of verify one has to compare the input challenge to the re-computed challenge. If they are equal (and some previous checks on h and z passed),...
- The floor() in floor((f + 127) >> 7) was somewhat unecessary as the usual semantic for the right-shift operator (>>) has integer output anyway. Seeing as the right-shift operator...