Deterministic Signing Verification
ML-DSA is deterministic: same message + same key → same signature.
let sig1 = key_pair.sign(message)?;
let sig2 = key_pair.sign(message)?;
assert_eq!(sig1.as_ref(), sig2.as_ref());
println!("Deterministic: same message gives same signature ✓");
Compare to ECDSA where each call to sign produces a different signature (due to random k).
This property is useful for reproducibility and avoids the catastrophic failure mode
of ECDSA with weak randomness.