ML-DSA-44 Security API
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.
- Algorithm Family: Lattice-based signature
- NIST Security Level: Level 2 (≥128-bit classical security)
- Key Sizes:
- Public Key: 1312 bytes
- Secret Key: 2528 bytes
- Signature: 2420 bytes
- Standard: FIPS 204
Security Warnings ⚠️
- Deterministic Signing: Uses deterministic nonce generation for security
- Side Channels: Requires constant-time polynomial operations
- Signature Size: Larger than classical signatures (2420 bytes)
- 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
- Use for general-purpose digital signatures
- Implement with constant-time polynomial arithmetic
- Clear secret keys from memory after use
- Validate signature format before verification
Security Analysis
Threat Model: ML-DSA-44 Threat Model
The comprehensive threat analysis covers:
- Algorithm-specific attack vectors
- Implementation vulnerabilities
- Side-channel considerations
- Quantum resistance analysis (where applicable)
- Deployment recommendations
For complete security analysis and risk assessment, see the dedicated threat model documentation.