Open
Conversation
2053888 to
0b42385
Compare
0b42385 to
c5c76af
Compare
Contributor
CBMC Results (ML-DSA-87)Full Results (187 proofs)
|
Contributor
CBMC Results (ML-DSA-65)Full Results (187 proofs)
|
Contributor
CBMC Results (ML-DSA-44)Full Results (187 proofs)
|
mkannwischer
requested changes
Apr 13, 2026
Contributor
mkannwischer
left a comment
There was a problem hiding this comment.
Thanks @jakemas. Please add the CBMC proofs.
e7ca229 to
e7a3a45
Compare
Contributor
Author
Thank you, added the harness as a single file with split functionality on GAMMA2 |
1ea7797 to
817aa3d
Compare
Comment on lines
+131
to
+133
| (\s. read PC s = word(pc + 0x110) /\ | ||
| (!i. i < 256 ==> | ||
| val(read(memory :> bytes32(word_add b (word(4 * i)))) s) <= 15)) |
Contributor
There was a problem hiding this comment.
This does not meet the bar of a functional correctness proof -- it merely provides bounds for the output?
Comment on lines
+139
to
+141
| (\s. read PC s = word(pc + 0x130) /\ | ||
| (!i. i < 256 ==> | ||
| val(read(memory :> bytes32(word_add b (word(4 * i)))) s) <= 43)) |
hanno-becker
requested changes
Apr 17, 2026
Contributor
hanno-becker
left a comment
There was a problem hiding this comment.
Thank you @jakemas for working on this!
The specification seems far too weak to claim functional correctness? We seem to only say something about the bounds of the output.
40ec688 to
de080de
Compare
8f24a11 to
f491734
Compare
Port the ML-DSA poly_use_hint HOL Light proofs from s2n-bignum to mldsa-native for AArch64, covering both GAMMA2=(Q-1)/32 (l=5,7) and GAMMA2=(Q-1)/88 (l=4) parameter sets. Each proof includes correctness, subroutine form, and constant-time with memory safety. Adds CBMC contracts for the assembly functions. The correctness proof now establishes full functional equivalence with the FIPS 204 UseHint specification (mldsa_use_hint_32_spec), not just output bounds. Includes Barrett reduction equivalence proof and shared infrastructure lemmas in common/mldsa_specs.ml. Resolves: #486 Ported from s2n-bignum PRs #372 and #375. Signed-off-by: Jake Massimo <jakemas@amazon.com>
f491734 to
2d5c44a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves:
poly_use_hint#486Summary
mldsa_poly_use_hint_32: GAMMA2=(Q-1)/32, for l=5,7 (s2n-bignum PR: ML-DSA Aarch64 HOL-Light proof poly_use_hint_32 awslabs/s2n-bignum#372)mldsa_poly_use_hint_88: GAMMA2=(Q-1)/88, for l=4 (s2n-bignum PR: ML-DSA Aarch64 HOL-Light proof poly_use_hint_88 awslabs/s2n-bignum#375)cba3956c7a20(adds UMIN instruction support needed for the l=4 proof)