Post-Quantum Signatures: ML-DSA and SLH-DSA
Firmware, bitstreams, and audit anchors are signed with quantum-resistant schemes so their authenticity survives long past the machine's commissioning.
Two families for two risk appetites
Signatures must remain verifiable for the whole life of a signed artifact. A bitstream signed in 2030 must still be trustworthy in 2050. Kronos uses two post-quantum signature families. ML-DSA (FIPS 204, from CRYSTALS-Dilithium) is a lattice scheme with small signatures and fast verification, used for high-frequency signing such as the decision lineage and short-lived identities. SLH-DSA (FIPS 205, stateless hash-based) is slower with larger signatures but rests only on hash-function security, so it anchors the most conservative long-term roots.
Where each is used
Rows above: per-decision lineage signing, firmware root of trust, short-lived node identity, and audit-log anchoring. The high-frequency, low-latency uses take ML-DSA; the long-lived, break-glass roots take hash-based SLH-DSA to hedge against a future lattice weakness.
# Verify a firmware image against a hash-based long-term root
def verify_firmware(img):
if not slh_dsa_verify(img.bytes, img.sig, root_pub): # FIPS 205
halt('firmware signature invalid') # fail closed
if img.version < policy.min_version:
halt('rollback blocked')
return True
Cost trade-off on the edge
- SLH-DSA signatures are large (kilobytes) and verification is heavier - acceptable at boot, not per control cycle.
- ML-DSA is compact enough to sign at lineage cadence and verify inside short-lived identity renewal.
- FPGA verification cost is a real constraint and is being measured during the FOAK hardware program - see secure boot.
Design status: both signature families are integrated into the twin's signing/verification paths. On-device verification budgets for FOAK FPGAs are under measurement; no production reactor yet verifies these signatures on live boots.