28 releases (16 breaking)
new 0.19.1 | Mar 17, 2023 |
---|---|
0.18.0 | Mar 1, 2023 |
0.10.0 | Dec 22, 2022 |
0.7.2 | Nov 23, 2022 |
#208 in Math
549 downloads per month
Used in 3 crates
1MB
21K
SLoC
twenty-first
A collection of cryptography primitives written in Rust.
Content of this library
This library contains primarily the following cryptographic primitives:
- The Rescue-Prime hash function
- An arithmetization-oriented hash function with a compact description in terms of AIR
- Rescue-Prime: a Standard Specification (SoK)
- Anatomy of a STARK, Part 5: A Rescue-Prime STARK
- The Tip5 hash function
- Lattice-crypto
- arithmetic for the quotient ring $\mathbb{F}_ p[X] / \langle X^{64} + 1 \rangle$
- arithmetic for modules over this quotient ring
- a IND-CCA2-secure key encapsulation mechanism
- Lattice-Based Cryptography in Miden VM
- FRI
- Fast Reed-Solomon IOP of Proximity
- Anatomy of a STARK, Part 3: FRI
- BFieldElement, XFieldElement
- The prime-field type $\mathbb{F}_p$ where $p = 2^{64} - 2^{32} + 1$
- The extension field $\mathbb{F}_p[x]/(x^3 - x + 1)$
- An efficient prime for number-theoretic transforms
- NTT
- Number Theoretic Transform (discrete Fast Fourier Transform)
- Anatomy of a STARK, Part 6: Speeding Things Up
- Univariate and multivariate polynomials
- Merkle Trees, Merkle Mountain Ranges
This library also contains some proof-of-concept STARK implementations:
Release protocol
While twenty-first's version is 0.x.y
, releasing a new version:
- Is the release backwards-compatible?
Then the new version is
0.x.y+1
. Otherwise the new version is0.x+1.0
. - Create a commit that increases
version = "0.x.y"
in twenty-first/Cargo.toml. The commit message should give a one-line summary of each release change. - Have a
v0.x.y
git tag on this commit created. (git tag v0.x.y [sha]
,git push upstream --tags
) - Have this commit
cargo publish
ed on crates.io and in GitHub tags.
If you do not have the privilege to create git tags or run cargo publish
, submit a PR and the merger will take care of these.
Dependencies
~15–23MB
~500K SLoC