|
1 | 1 | [//]: # (SPDX-License-Identifier: CC-BY-4.0)
|
2 |
| -mlkem-native v1.0.0-beta |
| 2 | +mlkem-native v1.0.0 |
3 | 3 | ==================
|
4 | 4 |
|
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 |
| - |
19 | 5 | 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. |
21 | 12 |
|
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. |
24 | 14 |
|
25 | 15 | What's New
|
26 | 16 | ----------
|
27 | 17 |
|
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 |
29 | 19 | 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 |
41 | 24 | - Numerous documentation improvements
|
42 |
| -- Additional examples on using mlkem-native (see [examples/](examples/)) |
43 | 25 |
|
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