FNP - Cryptography - Dilithium Post-Quantum Signatures
Summary (Explain Like I’m 5)
Imagine you send a handwritten letter and someone asks: “Did you really write this?” Problem: Handwriting can be forged. Digital signatures have the same problem with traditional encryption (RSA). Solution - Dilithium: Uses a different kind of math (lattices) that:- Only you can sign with your secret key
- Anyone can verify with your public key
- Even quantum computers can’t forge signatures
- No one can deny they signed (non-repudiation)
Technical Deep Dive
Dilithium (NIST FIPS 204 standard) is a lattice-based digital signature scheme providing post-quantum security for operation authentication and non-repudiation. Design Parameters (Dilithium-4, 256-bit security):| Parameter | Value | Purpose |
|---|---|---|
| k (module rank) | 6 | Number of polynomials; larger k = more security |
| ℓ (weight) | 5 | Secret key weight; higher = harder to forge |
| η (noise bound) | 7 | Small noise in secret; η=7 means bounded by 7 |
| τ (challenge weight) | 60 | Number of ±1 coefficients in challenge |
| d (dropped bits) | 14 | Bits dropped from low-order in compression |
| λ (security param) | 256 | Bits of security (256 bits = 2^256 work to forge) |
- Verification key (public): 2,592 bytes
- Signing key (secret): 4,016 bytes
- Signature: 3,366 bytes
- Signature (compressed): 2,420 bytes
Mermaid Diagrams
Key Terms
- Lattice-Based → Uses Learning With Errors (LWE) hardness; quantum-resistant
- Rejection Sampling → Resample if signature fails range check; prevents timing leaks
- Non-Repudiation → Signer can’t deny signing; only they have secret key
- NIST FIPS 204 → Official US standard for post-quantum signatures
- Constant-Time → Execution time doesn’t leak secrets through timing channels
- Signature Malleability → Can’t modify valid signature to produce another valid signature
- Stateless → No state needed between signatures; deterministic or randomized
- Module-LWE → Module structure of LWE problem; higher security per operation
Q/A
Q: Why Dilithium instead of RSA for signatures? A: RSA signatures are broken by Shor’s algorithm on quantum computers (polynomial-time). Dilithium is built on lattice problems with no known quantum speedup. Same security against classical and quantum attackers. Q: What’s rejection sampling in Dilithium? A: Dilithium signs by computing z = y + c̃·s₁. If ||z|| is too large (might leak secrets), reject and resample y. This makes signature generation non-deterministic but constant-time bounds remain (no timing leaks). Q: Can I forge a Dilithium signature? A: No. Forging requires solving LWE problem (breaking lattice hardness). With 256-bit security, you’d need 2^256 operations (infeasible). Also, signature is binding to specific message via hash μ. Q: How does the server know Alice really signed? A: Server has Alice’s public key (vk_alice). Verify algorithm checks: Does signature correctly satisfy lattice equations for this message and public key? If yes, Alice must have signed (only she has secret key). Q: What if Alice loses her signing key? A: She can no longer sign operations. Previous signatures remain valid (non-repudiation). She should revoke old key, generate new keypair, broadcast new vk. Server stores both old and new keys (rotation). Q: Can signatures be replayed? A: Each operation has unique timestamp + message hash. Replaying old signature with old message gets same hash → server detects replay (Lamport clock check catches it first). Even if Lamport check missed it, Dilithium sig is bound to specific message.Example / Analogy
Notary Public Analogy: Without Dilithium (forging is easy):- You sign a contract with pen
- Anyone can copy your signature
- No way to prove you really signed it
- Notary gives you special stamp + secret code
- You stamp document (only you have code)
- Anyone can verify stamp is legitimate
- Even you can’t deny you stamped it (non-repudiation)
- Quantum computers still can’t forge the stamp
- Alice’s device creates operation hash
- Device signs with Dilithium_sk (only on Alice’s device)
- Sends: Operation + Signature to server
- Server verifies: “Is Alice’s signature valid?”
- Server accepts (Alice authenticated the edit)
- Bob receives operation + signature
- Bob verifies signature (Alice really signed)
- Bob: “Alice owns this edit” (non-repudiation)
Cross-References: System Overview, FNP Protocol Flow, Security & Zero Trust, LSEQ CRDT Category: Cryptography | Post-Quantum | Signatures | Authentication Difficulty: Advanced ⭐⭐⭐⭐ Updated: 2025-11-28