Skip to content

Commit 5430024

Browse files
authored
Merge pull request #1054 from pq-code-package/stable-release
Prepare v1.0.0 release
2 parents a530fa3 + 3ecec2d commit 5430024

File tree

4 files changed

+16
-59
lines changed

4 files changed

+16
-59
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ A clear and concise description of what the bug is.
2020

2121
**Compiler**: e.g., gcc 13.2.0 (installed through nix)
2222

23+
**mlkem-native version**: e.g., v1.0.0 or main-branch
24+
2325
**How to reproduce**
2426
Steps to reproduce the behavior:
2527
```

.github/pull_request_template.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

README.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,6 @@ through suitable barriers and constant-time patterns.
7272
Absence of secret-dependent branches, memory-access patterns and variable-latency instructions is also tested using `valgrind`
7373
with various combinations of compilers and compilation options.
7474

75-
## State
76-
77-
mlkem-native is in beta-release stage. We believe it is ready for use, and hope to spark experiments on
78-
integration into other software before issuing a stable release. If you have any feedback, please reach out! See
79-
[RELEASE.md](RELEASE.md) for details.
80-
8175
## Design
8276

8377
mlkem-native is split into a _frontend_ and two _backends_ for arithmetic and FIPS202 / SHA3. The frontend is

RELEASE.md

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,26 @@
11
[//]: # (SPDX-License-Identifier: CC-BY-4.0)
2-
mlkem-native v1.0.0-beta
2+
mlkem-native v1.0.0
33
==================
44

5-
About
6-
-----
7-
8-
mlkem-native is a secure, fast and portable C90 implementation of [ML-KEM](https://doi.org/10.6028/NIST.FIPS.203).
9-
It is a fork of the ML-KEM [reference implementation](https://github.com/pq-crystals/kyber/tree/main/ref).
10-
11-
mlkem-native includes native backends for AArch64 and AVX2, offering competitive performance on most Arm, Intel and AMD platforms
12-
(see [benchmarks](https://pq-code-package.github.io/mlkem-native/dev/bench/)). The frontend and the C backend (i.e., all C code in [mlkem/*](mlkem) and [mlkem/src/fips202/*](mlkem/src/fips202)) are verified
13-
using [CBMC](https://github.com/diffblue/cbmc) to be free of undefined behaviour. In particular, there are no out of
14-
bounds accesses, nor integer overflows during optimized modular arithmetic.
15-
HOL-Light is used to verify functional correctness of selected AArch64 assembly routines.
16-
17-
mlkem-native is supported by the [Post-Quantum Cryptography Alliance](https://pqca.org/) as part of the [Linux Foundation](https://linuxfoundation.org/).
18-
195
Release notes
20-
=============
6+
-------------
7+
8+
v1.0.0 is the first stable release of mlkem-native, a secure, fast and portable C90 implementation of [ML-KEM](https://csrc.nist.gov/pubs/fips/202/final) derived from the ML-KEM reference implementation. mlkem-native v1.0.0 offers:
9+
* High maintainability and extensibility through modular frontend/backend design.
10+
* High performance through Arch64 and AVX2 assembly backends and the use of the [SLOTHY super-optimizer](https://github.com/slothy-optimizer/slothy).
11+
* High assurance through memory- and type-safety proofs for the C frontend + backend, functional correctness proofs for all AArch64 assembly, and extensive constant-time testing.
2112

22-
This is the second official release of mlkem-native, a secure, fast and portable C90 implementation of [ML-KEM](https://doi.org/10.6028/NIST.FIPS.203).
23-
This beta release expands the scope of formal verification (using CBMC and HOL-Light), improves FIPS compliance by adding improves FIPS compliance by adding PCT, buffer zeroization, and documentation, and increases the confidence in resistance against timing side-channels through extensive Valgrind-based testing.
13+
mlkem-native-v1.0.0 is uniformly licensed Apache-2.0 OR MIT OR ISC, giving consumers the choice to use any of these licenses.
2414

2515
What's New
2616
----------
2717

28-
Compared to [v1.0.0-alpha](https://github.com/pq-code-package/mlkem-native/releases/tag/v1.0.0-alpha) the following
18+
Compared to [v1.0.0-beta](https://github.com/pq-code-package/mlkem-native/releases/tag/v1.0.0-beta) the following
2919
major improvements have been integrated into mlkem-native:
30-
- Full CBMC proof coverage of the C frontend and backend including FIPS202
31-
- Destruction of intermediate values in https://github.com/pq-code-package/mlkem-native/pull/763
32-
- Functional correctness proofs for AArch64 NTT and INTT in https://github.com/pq-code-package/mlkem-native/pull/662
33-
- Functional correctness proofs for Keccakx1 in https://github.com/pq-code-package/mlkem-native/pull/826 and https://github.com/pq-code-package/mlkem-native/pull/821
34-
- Support for single compilation-unit builds in https://github.com/pq-code-package/mlkem-native/pull/612
35-
- Addition of the pair-wise consistency test in https://github.com/pq-code-package/mlkem-native/pull/769
36-
- Valgrind-based constant-time tests in https://github.com/pq-code-package/mlkem-native/pull/687
37-
- Valgrind-based detection of secret-dependent variable-latency instruction in https://github.com/pq-code-package/mlkem-native/pull/693
38-
- Improved x86_64 backend performance in https://github.com/pq-code-package/mlkem-native/pull/709
39-
- Documentation of differences to the reference implementation in https://github.com/pq-code-package/mlkem-native/pull/799
40-
- Addition of references to FIPS algorithms and equations to relevant functions in https://github.com/pq-code-package/mlkem-native/pull/776
20+
21+
- Completion of functional correctness proofs of the AArch64 backend
22+
- Uniform licensing of all code in mlkem/* under Apache-2.0 OR ISC OR MIT
23+
- Numerous configuration option improvements
4124
- Numerous documentation improvements
42-
- Additional examples on using mlkem-native (see [examples/](examples/))
4325

44-
See the full change log here: https://github.com/pq-code-package/mlkem-native/compare/v1.0.0-alpha...v1.0.0-beta
26+
See the full change log here: https://github.com/pq-code-package/mlkem-native/compare/v1.0.0-beta...v1.0.0

0 commit comments

Comments
 (0)