aboutsummaryrefslogtreecommitdiff
path: root/content/posts/2024-03-04-new-releases-of-c11-sha3-and-c11-fips203ipd.md
blob: f9472b85a1b88c2f72ab0b2f098f7783538d893b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
---
slug: new versions of sha3 and fips203ipd
title: "New Releases of C11 SHA-3 and C11 FIPS 203 IPD"
date: "2024-03-04T12:21:09-04:00"
---
Two new releases:

* [sha3 v0.6][sha3-git]
* [fips203ipd v0.3][fips203ipd-git]

### sha3

Embedable, dependency-free, [MIT-0][] licensed, [C11][] implementation
of all algorithms from [FIPS 202][], [SP 800-185][800-185], and the
[draft KangarooTwelve and TurboSHAKE specification][turboshake-ietf].

[Git Repository][sha3-git], [API Documentation][sha3-api-docs],
[Original Announcement][sha3-announce]

#### Changes in v0.6

* Improve speed of absorb, squeeze, and scalar Keccak permutation.
* Refactor SHAKE128 and SHAKE256 functions.
* Add [CAVP][] tests in `tests/cavp-tests`.
* Documentation improvements.

### fips203ipd

Embedable, dependency-free, [MIT-0][] licensed, [C11][] implementation
of the [FIPS 203 initial public draft (IPD)][fips203ipd].  The final
version of [FIPS 203][fips203ipd] will become ML-KEM, [NIST's][nist]
standarized post-quantum [key encapsulation mechanism (KEM)][kem].

[Git Repository][fips203ipd-git], [API Documentation][fips203ipd-api-docs],
[Original Announcement][fips203ipd-announce]

#### Changes in v0.3

* Add [AVX512][] polynomial addition, subtraction, and multiplication.
* Faster scalar [Barrett reduction][] and scalar polynomial multiplication.
* Upgrade to [sha3 v0.6][sha3-git] for faster hash/XOF performance.
* Add [NIST draft ML-KEM test vectors][nist-tests] to self tests and as `examples/2-nist-tests/`.
* Embed hash/XOF functions, remove `sha3.[hc]`.
* Documentation improvements.

[sha3-git]: https://github.com/pablotron/sha3
  "Embedable, dependency-free, MIT-0 licensed, C11 implementation of FIPS 202 (SHA-3 and SHAKE), SP 800-185 (cSHAKE, KMAC, TupleHash, ParallelHash), TurboSHAKE, and KangarooTwelve."
[sha3-api-docs]: https://pmdn.org/api-docs/fips203ipd/
  "online API documentation"
[sha3-announce]: {{< relref "posts/2023-09-05-c11-sha3.md" >}}
  "Original release announcement."
[fips203ipd-git]: https://github.com/pablotron/fips203ipd
  "Embedable, dependency-free, MIT-0 licensed, C11 implemention of the FIPS 203 initial public draft (IPD)."
[fips203ipd-api-docs]: https://pmdn.org/api-docs/fips203ipd/
  "Online API documentation"
[fips203ipd-announce]: {{< relref "posts/2023-10-07-c11-fips203ipd.md" >}}
  "Original release announcement."
[mit-0]: https://opensource.org/license/mit-0/
  "MIT No Attribution License"
[C11]: https://en.wikipedia.org/wiki/C11_(C_standard_revision)
  "ISO/IEC 9899:2011"
[SHA-3]: https://en.wikipedia.org/wiki/SHA-3
  "Secure Hash Algorithm 3"
[FIPS 202]: https://csrc.nist.gov/pubs/fips/202/final
  "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions"
[800-185]: https://csrc.nist.gov/pubs/sp/800/185/final
  "SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash, and ParallelHash"
[cavp]: https://csrc.nist.gov/Projects/Cryptographic-Algorithm-Validation-Program/Secure-Hashing
  "NIST Cryptographic Algorithm Validation Program (CAVP)"
[turboshake]: https://eprint.iacr.org/2023/342.pdf
  "TurboSHAKE"
[turboshake-ietf]: https://www.ietf.org/archive/id/draft-irtf-cfrg-kangarootwelve-10.html
  "KangarooTwelve and TurboSHAKE"
[turboshake-ietf-test-vectors]: https://www.ietf.org/archive/id/draft-irtf-cfrg-kangarootwelve-10.html#name-test-vectors
  "KangarooTwelve and TurboSHAKE test vectors"
[csrc-examples]: https://csrc.nist.gov/projects/cryptographic-standards-and-guidelines/example-values
  "NIST CSRC: Cryptographic Standards and Guidelines: Examples with Intermediate Values"
[cavp]: https://csrc.nist.gov/Projects/Cryptographic-Algorithm-Validation-Program/Secure-Hashing
  "NIST Cryptographic Algorithm Validation Program (CAVP)"
[fips203ipd]: https://csrc.nist.gov/pubs/fips/203/ipd
  "FIPS 203 (Initial Public Draft): Module-Lattice-Based Key-Encapsulation Mechanism Standard"
[kem]: https://en.wikipedia.org/wiki/Key_encapsulation_mechanism
  "Key encapsulation mechanism."
[nist]: https://nist.gov/
  "National Institute of Standards and Technology"
[avx512]: https://en.wikipedia.org/wiki/AVX-512
  "Advanced Vector Extensions (AVX) SIMD instructions."
[barrett reduction]: https://en.wikipedia.org/wiki/Barrett_reduction
  "Barrett modular reduction"
[nist-tests]: https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cryptography-standardization/example-files
  "NIST: Intermediate Values for draft ML-KEM and draft ML-DSA"