kybe-rs
is a Pure Rust implementation of the CRYSTALS-KYBER lattice-based key encapsulation suite (KYBER 1), a post-quantum candidate submitted to the NIST standardization process 2.
The CRYSTALS-KYBER submission already comes with reference implementations, including optimised versions and as made through the 3rd round of NIST standardization process.
kybe-rs
is concerned with providing high correctness guarantees: adherence to the CRYSTALS-KYBER specification, memory and type safety, and reproducibility across platforms. Extensive testing and documentation is desired. Performance matters but is a longer-term concern.
- Key encapsulation mechanism (
KEM
) - Public-key encryption (
PKE
) - All the parameters described in the NIST submission:
kyber-512
,kyber-768
, andkyber-1024
.
- The implementation is not guaranteed to be constant time
- The implementation is not
no_std
compatible (for non-essential reasons)
Benchmarks with criterion:
cargo bench
Profiling with flamegraph:
cargo flamegraph --example file [-o name.svg]
For any file.rs
in the examples
folder.