ML-DSA-44 Security API

Side-channel claim limit. Nothing on this page claims constant-time behaviour or side-channel resistance for any target: the side-channel harness covers nothing (finding A48) and no measurement exists. The Rust and C cores are designed for constant time and unmeasured; managed runtimes (JIT, GC, bounds checks) make no timing claim. Where this page names constant-time or side-channel techniques, in prose or in code, they are design intent or recommendations, not measured properties.

Version: 1.0.0
Last Updated: 2025-01-02
Security Classification: Digital Signature Algorithm
Author: MetaMUI Security Team

Overview

ML-DSA-44 (formerly Dilithium2) is a NIST-standardized post-quantum digital signature algorithm based on lattice problems, providing NIST security level 2.

Security Warnings ⚠️

  1. Deterministic Signing: Uses deterministic nonce generation for security
  2. Side Channels: Requires constant-time polynomial operations
  3. Signature Size: Larger than classical signatures (2420 bytes)
  4. Verification: Must validate all signature components

API Functions

Key Generation

def ml_dsa_44_keygen() -> Tuple[PublicKey, SecretKey]:
    """Generate ML-DSA-44 keypair"""

Signing

def ml_dsa_44_sign(message: bytes, secret_key: SecretKey) -> Signature:
    """Sign message with ML-DSA-44"""

Verification

def ml_dsa_44_verify(message: bytes, signature: Signature, public_key: PublicKey) -> bool:
    """Verify ML-DSA-44 signature"""

Security Best Practices

Security Analysis

Threat Model: ML-DSA-44 Threat Model

The comprehensive threat analysis covers:

For complete security analysis and risk assessment, see the dedicated threat model documentation.

References

  1. FIPS 204: Module-Lattice-Based Digital Signature Standard
  2. Original Dilithium Specification

Back to Algorithm Security APIs