synor/crates/synor-crypto/Cargo.toml
Gulshan Yadav 9414ef5d99 feat(crypto): add SPHINCS+ and FALCON post-quantum algorithms
Phase 13 Milestone 2 - Enhanced Quantum Cryptography:

SPHINCS+ (FIPS 205 / SLH-DSA):
- Hash-based signatures as backup if lattice schemes are compromised
- Three variants: 128s (~7.8KB), 192s (~16KB), 256s (~30KB)
- Relies only on hash function security (conservative choice)
- SphincsKeypair, SphincsPublicKey, SphincsSecretKey, SphincsSignature

FALCON (FIPS 206 / FN-DSA):
- Compact lattice signatures for bandwidth-constrained devices
- FALCON-512: 128-bit security, ~690 byte signatures
- FALCON-1024: 256-bit security, ~1,330 byte signatures
- ~79% smaller than Dilithium3 signatures
- Ideal for mobile wallets and L2 batch transactions

Algorithm Comparison:
| Algorithm | Security | Sig Size | Use Case |
|-----------|----------|----------|----------|
| Ed25519 | 128-bit | 64 B | Classical (fast) |
| Dilithium3 | 192-bit | 3,293 B | Default PQ |
| FALCON-512 | 128-bit | 690 B | Mobile/IoT |
| SPHINCS+-128s | 128-bit | 7,856 B | Backup |

All 40 unit tests + 5 doc tests passing.
2026-01-19 09:52:16 +05:30

50 lines
1.3 KiB
TOML

[package]
name = "synor-crypto"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
description = "Quantum-resistant cryptography for Synor blockchain"
[dependencies]
synor-types = { path = "../synor-types" }
# Classical cryptography
ed25519-dalek = { workspace = true }
x25519-dalek = { workspace = true }
rand = { workspace = true }
rand_core = { workspace = true }
# Post-quantum cryptography (NIST FIPS 203-206)
pqcrypto-dilithium = { workspace = true } # FIPS 204 (ML-DSA)
pqcrypto-kyber = { workspace = true } # FIPS 203 (ML-KEM)
pqcrypto-sphincsplus = { workspace = true } # FIPS 205 (SLH-DSA)
pqcrypto-falcon = { workspace = true } # FIPS 206 (FN-DSA)
pqcrypto-traits = { workspace = true }
# Hashing
sha3 = { workspace = true }
blake3 = { workspace = true }
# Key derivation
hkdf = "0.12"
pbkdf2 = { version = "0.12", features = ["simple"] }
hmac = "0.12"
# BIP-39 mnemonics
tiny-bip39 = "1.0"
# Utilities
serde = { workspace = true }
borsh = { workspace = true }
thiserror = { workspace = true }
zeroize = { version = "1.7", features = ["derive"] }
hex = { workspace = true }
[dev-dependencies]
criterion = { workspace = true }
proptest = { workspace = true }
[[bench]]
name = "crypto_bench"
harness = false