Skip to content

hanzoai/hanzo-crypto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hanzo Crypto

Modern post-quantum cryptography library with NIST-standardized algorithms, optimized for ARM compatibility including Apple Silicon (M1/M2/M3).

Features

Post-Quantum Cryptography

  • ML-KEM (FIPS 203): Module Lattice Key Encapsulation (formerly Kyber)
    • Pure Rust implementation - no AVX2 assembly issues!
    • ML-KEM-512, ML-KEM-768, ML-KEM-1024
  • ML-DSA (FIPS 204): Module Lattice Digital Signatures (formerly Dilithium)
    • Pure Rust implementation
    • ML-DSA-44, ML-DSA-65, ML-DSA-87
  • HQC: Hamming Quasi-Cyclic code-based cryptography
    • HQC-128, HQC-192, HQC-256

Symmetric Cryptography

  • BLAKE3: Fast cryptographic hashing
  • ChaCha20-Poly1305: Authenticated encryption
  • AES-256-GCM: Authenticated encryption with associated data
  • Argon2: Password hashing

Additional Algorithms

  • X25519: Elliptic curve key exchange (transitional)
  • Ed25519: Elliptic curve signatures (transitional)
  • SHA-3: SHA3-256, SHA3-384, SHA3-512

Installation

[dependencies]
hanzo-crypto = "0.1.0"

Quick Start

use hanzo_crypto::prelude::*;
use hanzo_crypto::{ml_kem, ml_dsa, blake3};

fn main() -> Result<()> {
    // Post-quantum key encapsulation
    use ml_kem::{MlKem768, Encapsulate, Decapsulate};
    let mut rng = rand::thread_rng();
    let (dk, ek) = MlKem768::generate(&mut rng);
    let (ct, ss_sender) = ek.encapsulate(&mut rng)?;
    let ss_receiver = dk.decapsulate(&ct)?;
    assert_eq!(ss_sender, ss_receiver);

    // Post-quantum signatures
    use ml_dsa::{Ml_Dsa65, SigningKey};
    let signing_key = SigningKey::generate(&mut rng)?;
    let message = b"Hello, quantum world!";
    let signature = signing_key.try_sign_with_rng(&mut rng, message)?;
    signing_key.verification_key().verify(message, &signature)?;

    // BLAKE3 hashing
    let hash = blake3::hash(b"Fast hashing with BLAKE3");
    println!("Hash: {}", hash.to_hex());

    Ok(())
}

ARM Compatibility

This library uses pure Rust implementations of ML-KEM and ML-DSA, ensuring full compatibility with ARM processors including Apple Silicon. No AVX2 assembly issues!

Testing

# Run all tests
cargo test

# Run examples
cargo run --example basic

# Run benchmarks
cargo bench

Security Levels

  • Level 1: 128-bit classical security
  • Level 3: 192-bit classical security (recommended)
  • Level 5: 256-bit classical security

License

MIT OR Apache-2.0

About

Modern post-quantum cryptography library with NIST-standardized algorithms for Hanzo AI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages