Dilithium Post-Quantum Cryptography
Sahyadri uses CRYSTALS-Dilithium for all transaction signatures, making it the first DAG-based blockchain with native post-quantum protection.
Dilithium is a NIST-standardized lattice-based digital signature scheme selected in 2022 as the primary post-quantum signature algorithm. Unlike RSA and ECDSA, Dilithium resists attacks from both classical and quantum computers, ensuring long-term cryptographic security for all on-chain transactions.
The security of Dilithium is based on the hardness of the Module Learning With Errors (Module-LWE) problem, which is believed to be hard even for quantum computers. This makes Sahyadri one of the first blockchain networks to be truly quantum-resistant.
Technical Specifications
| Parameter | Value | Description |
|---|---|---|
Algorithm | CRYSTALS-Dilithium | NIST PQC Standard (FIPS 204) |
Mode | Dilithium-3 | NIST Level 3 - balanced security & performance |
Public Key Size | ~1,952 bytes | Lattice-based public key |
Signature Size | ~3,293 bytes | Compact for PQC standards |
Secret Key Size | ~4,000 bytes | Lattice-based secret key |
Security Level | NIST Level 3 | 128-bit quantum security |
Lattice Dimension | n = 1024 | Module rank k = 8 |
Signing Speed | ~7 ms | Optimized via dilithium-rs crate |
Verification Speed | ~2 ms | Fast verification for block validation |
Implementation | dilithium-rs + WASM | Rust crate compiled to WebAssembly |
NIST Standard | FIPS 204 | Selected August 2024 |
Security Basis | Module-LWE | Learning With Errors problem |
Key Generation | ~10 ms | Fast keypair generation |
Quantum Resistance | 128-bit | Against quantum computer attacks |
Classical Security | ~143-bit | Against classical computer attacks |
Why Dilithium?
Quantum Safe
Resists Shor's algorithm - can't be broken by quantum computers
NIST Approved
Official FIPS 204 standard - globally recognized
Compact Size
Smaller than RSA at equivalent security level
Fast Verification
~2ms verification - ideal for blockchain
WASM Support
Runs in browser - wallet signing possible
Provably Secure
Based on hard mathematical problems
Key Generation Example (Rust)
// Rust (dilithium-rs crate) use dilithium::*; // Generate keypair let (pk, sk) = KeyGen::generate(); // Sign a message let msg = b"Sahyadri transaction"; let sig = Sign::sign(&sk, msg); // Verify signature let valid = Verify::verify(&pk, msg, &sig); assert!(valid);
Browser WASM Example
// JavaScript (WASM)
import { Dilithium } from '@sahyadri/wasm';
// Generate keypair in browser
const { publicKey, secretKey } = Dilithium.generateKeypair();
// Sign transaction
const signature = Dilithium.sign(secretKey, transactionHash);
// Verify signature
const valid = Dilithium.verify(publicKey, transactionHash, signature);
console.log(valid); // trueSecurity Comparison
| Algorithm | Quantum Safe | NIST Standard | Signature Size |
|---|---|---|---|
| Dilithium-3 (Sahyadri) | Yes | FIPS 204 | ~3.3 KB |
| ECDSA (Bitcoin) | No | None | ~64 bytes |
| Ed25519 (Solana) | No | None | ~64 bytes |
| RSA-2048 | No | None | ~256 bytes |