You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,7 @@ timing side channels through suitable barriers and constant-time patterns.
54
54
mldsa-native is split into a _frontend_ and two _backends_ for arithmetic and FIPS202 / SHA3. The frontend is
55
55
fixed, written in C, and covers all routines that are not critical to performance. The backends are flexible, take care of
56
56
performance-sensitive routines, and can be implemented in C or native code (assembly/intrinsics); see
57
-
[mldsa/native/api.h](mldsa/native/api.h) for the arithmetic backend and
57
+
[mldsa/native/api.h](mldsa/native/api.h) for the arithmetic backend and
58
58
[mldsa/fips202/native/api.h](mldsa/fips202/native/api.h) for the FIPS-202 backend. mldsa-native currently
59
59
offers backends for C, AArch64, and x86_64 - if you'd like contribute new backends, please reach out or just open a PR.
60
60
@@ -81,9 +81,11 @@ Yes. mldsa-native supports all three ML-DSA security levels (ML-DSA-44, ML-DSA-6
81
81
82
82
### Does mldsa-native use hedged or deterministic signing?
83
83
84
-
By default, mldsa-native uses the "hedged" signing variant as specified in FIPS 204 Section 3.4, with `MLD_RANDOMIZED_SIGNING` enabled in [mldsa/config.h](mldsa/config.h). The hedged variant uses both fresh randomness at signing time and precomputed randomness from the private key. This helps mitigate fault injection attacks and side-channel attacks while protecting against potential flaws in the random number generator.
84
+
By default, mldsa-native uses the randomized "hedged" signing variant as specified in FIPS 204 Section 3.4. The hedged variant uses both fresh randomness at signing time and precomputed randomness from the private key. This helps mitigate fault injection attacks and side-channel attacks while protecting against potential flaws in the random number generator.
85
85
86
-
The deterministic variant can be enabled by undefining `MLD_RANDOMIZED_SIGNING`, but FIPS 204 warns that this should not be used on platforms where fault injection attacks and side-channel attacks are a concern, as the lack of fresh randomness makes fault attacks more difficult to mitigate.
86
+
If you need the deterministic variant of ML-DSA, you can call `crypto_sign_signature_internal`
87
+
directly with an all-zero `rnd` argument.
88
+
However, note that FIPS 204 warns that this should not be used on platforms where fault injection attacks and side-channel attacks are a concern, as the lack of fresh randomness makes fault attacks more difficult to mitigate.
87
89
88
90
### Does mldsa-native support the external mu mode?
89
91
@@ -106,7 +108,7 @@ Yes, you will be able to add custom backends for ML-DSA native arithmetic and/or
106
108
## Have a Question?
107
109
108
110
If you think you have found a security bug in mldsa-native, please report the vulnerability through
0 commit comments