CRYSTALS-Dilithium is a lattice-based digital signature scheme designed for the post-quantum cryptography era. It belongs to the CRYSTALS family, alongside Kyber, and is built on learning with errors (LWE). section 14.3.2 section 14.5
The security intuition starts with LWE: recovering hidden values from noisy linear relationships is difficult, and LWE has a reduction to the closest vector problem (CVP) in a lattice. section 14.3.2
Figure 14.9 The learning with errors problem (LWE) is said to be a lattice-based construction due to the existence of a reduction to a lattice problem: the CVP. In other words, if we can find a solution to the CVP, then we can find a solution to the LWE problem.
Use the reduction diagram to connect the LWE problem with its underlying lattice problem, CVP. section 14.3.2
A simplified Dilithium signing flow looks like this:
- Generate private vectors s1 and s2, then calculate the public key as t = As1 + s2; keep s2 private because signing reuses it. section 14.3.4
- Choose random vectors y1 and y2 and commit with Ay1 + y2. section 14.3.4
- Derive a challenge from the message and commitment using the Fiat-Shamir transformation instead of waiting for an interactive verifier. section 14.3.4
- Compute z1 = cs1 + y1 and z2 = cs2 + y2, sending them only when they remain small; verification checks the resulting relationships. section 14.3.4
From interactive proof to signature
Imagine a prover first sending a commitment, receiving a random challenge, and proving knowledge of secret vectors without revealing them. Dilithium makes that exchange non-interactive by hashing the message together with the commitment to create the challenge. section 14.3.4
The flow above is intentionally simplified. Practical implementations use deterministic generation and custom compression to reduce random data, keys, and signature sizes, along with further optimizations. section 14.3.4
For long-lived protection, combine Dilithium with a pre-quantum signature such as Ed25519 rather than relying casually on a single algorithm. section 14.5
