Skip to content

Commit 083be6c

Browse files
committed
Merged PR 11640865: Implement ML-DSA (FIPS 204)
This PR implements the newly standardized post-quantum signature algorithm, ML-DSA (FIPS 204). - Adds new APIs for ML-DSA key generation, export, import, signing and verification - Currently written as a portable C implementation; no intrinsics yet - Includes Known Answer Tests from NIST and other community sources - Includes unit tests for low-level ML-DSA arithmetic and, pairwise consistency tests and error-handling - Has basic scaffolding for multi-implementation tests, but no comparison of results as we have not yet integrated another ML-DSA implementation to compare against ## To be done in a future PR: - Perf optimizations - #55435592 - FIPS selftests (algorithm/key generation/import) - #55450288 - Update status indicator - Add libcrux implementation to verify against Related work items: #55435113
1 parent 4a94d37 commit 083be6c

40 files changed

+36050
-362
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
New changes will be listed here as they are developed. The version number is determined
44
prior to the creation of a new release, based on the changes contained in that release.
55

6+
# Version 103.7.0
7+
8+
- Add ML-DSA implementation
9+
610
# Version 103.6.0
711

812
- Add LMS implementation

NOTICE

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
SymCrypt on Linux uses elfdefinitions.h from FreeBSD. See the following license notice:
1+
SymCrypt on Linux uses elfdefinitions.h from FreeBSD.
22

33
Copyright (c) 2010 Joseph Koshy
44
All rights reserved.
@@ -24,7 +24,9 @@ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2424
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2525
SUCH DAMAGE.
2626

27-
SymCrypt on Linux uses jitterentropy from Stephan Mueller. See the following license notice:
27+
--------------------------------------------------------------------------------
28+
29+
SymCrypt on Linux uses jitterentropy from Stephan Mueller.
2830

2931
Copyright (C) 2017 - 2021, Stephan Mueller <[email protected]>
3032

@@ -59,3 +61,29 @@ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
5961
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
6062
USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
6163
DAMAGE.
64+
65+
--------------------------------------------------------------------------------
66+
67+
Some test vectors are taken from https://github.com/post-quantum-cryptography/KAT.
68+
69+
MIT License
70+
71+
Copyright (c) 2024 Krzysztof Kwiatkowski
72+
73+
Permission is hereby granted, free of charge, to any person obtaining a copy
74+
of this software and associated documentation files (the "Software"), to deal
75+
in the Software without restriction, including without limitation the rights
76+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
77+
copies of the Software, and to permit persons to whom the Software is
78+
furnished to do so, subject to the following conditions:
79+
80+
The above copyright notice and this permission notice shall be included in all
81+
copies or substantial portions of the Software.
82+
83+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
84+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
85+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
86+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
87+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
88+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
89+
SOFTWARE.

0 commit comments

Comments
 (0)