#post-quantum-cryptography #sphincs #kyber #dilithium

no-std arcanum-pqc

Post-quantum cryptographic algorithms for the Arcanum engine

3 releases

Uses new Rust 2024

0.1.2 Jan 26, 2026
0.1.1 Jan 23, 2026
0.1.0 Jan 22, 2026

#1648 in Cryptography

Download history 49/week @ 2026-01-22 11/week @ 2026-01-29 7/week @ 2026-02-05 5/week @ 2026-02-19

53 downloads per month
Used in 2 crates

MIT/Apache

1.5MB
32K SLoC

Arcanum Post-Quantum Cryptography

Post-quantum cryptographic algorithms resistant to attacks by quantum computers.

NIST Standards

These algorithms are standardized by NIST for post-quantum cryptography:

Key Encapsulation Mechanisms (KEMs)

  • ML-KEM (Module-Lattice KEM, formerly CRYSTALS-Kyber): FIPS 203
    • ML-KEM-512: 128-bit security
    • ML-KEM-768: 192-bit security (recommended)
    • ML-KEM-1024: 256-bit security

Digital Signatures

  • ML-DSA (Module-Lattice Digital Signature, formerly CRYSTALS-Dilithium): FIPS 204

    • ML-DSA-44: 128-bit security
    • ML-DSA-65: 192-bit security (recommended)
    • ML-DSA-87: 256-bit security
  • SLH-DSA (Stateless Hash-based Digital Signature, formerly SPHINCS+): FIPS 205

    • Hash-based, very conservative security assumptions

Hybrid Schemes

Hybrid schemes combine classical and post-quantum algorithms for defense-in-depth:

  • X25519-ML-KEM-768: Classical ECDH + ML-KEM

Example

use arcanum_pqc::prelude::*;

// ML-KEM key encapsulation
let (dk, ek) = MlKem768::generate_keypair();
let (ciphertext, shared_secret) = MlKem768::encapsulate(&ek);
let decapsulated = MlKem768::decapsulate(&dk, &ciphertext)?;
assert_eq!(shared_secret, decapsulated);

// ML-DSA signatures
let (sk, vk) = MlDsa65::generate_keypair();
let signature = MlDsa65::sign(&sk, b"message");
assert!(MlDsa65::verify(&vk, b"message", &signature).is_ok());

Dependencies

~13MB
~245K SLoC