CRYSTALS-Dilithium (source code)

= CRYSTALS-Dilithium
{c}

<CRYSTALS-Dilithium> is a lattice-based <digital signature> design whose arithmetic uses vectors of <polynomial>[polynomials] modulo a fixed <polynomial> and <integer> <modular arithmetic>[modulus]. Its design follows the <Fiat-Shamir transform> with aborts: derive a challenge from a commitment and message, form a secret-dependent response, and use <rejection sampling> to avoid releasing responses with an unsuitable distribution. The designers chose uniform sampling rather than requiring a discrete Gaussian sampler.<Dilithium documentation by CRYSTALS project>[Introduction and Scientific Background]{ref}

The goal is efficient signing and verification while making forgery difficult even for proposed <quantum cryptography>[quantum attacks] on its underlying assumptions. <ML-DSA> is the later standardized descendant. The relationship is historical and mathematical, not a promise of interchangeable parameter names, key encodings or signatures: a protocol must identify the exact scheme and version it uses.