PQC Algorithm Parameters

QV-REF-PQC Rev 1.0 — January 2026 Reference

Complete reference for all cryptographic algorithms supported by QuantaVirt's PQC subsystem — NIST-standardized post-quantum algorithms, symmetric ciphers, hash functions, and key derivation, with exact parameter sizes, security levels, and performance benchmarks on both software and QUAC 100 hardware backends.

Algorithm Overview #

CategoryAlgorithmStandardPurpose in QuantaVirt
Key EncapsulationML-KEM-512 / 768 / 1024FIPS 203Storage encryption key wrapping, PQC tunnel key exchange, migration key agreement
Digital SignatureML-DSA-44 / 65 / 87FIPS 204VM attestation, firmware signing, audit log integrity
Digital SignatureSLH-DSA-128s / 128f / 192s / 192f / 256s / 256fFIPS 205Stateless hash-based signatures (fallback)
AEAD CipherAES-256-GCMNIST SP 800-38DDisk sector encryption, tunnel bulk cipher
AEAD CipherChaCha20-Poly1305RFC 8439Alternative AEAD (ARM / no AES-NI)
HashSHA-3 (256 / 512), SHAKE-128 / 256FIPS 202Internal hashing, KDF, QRNG conditioning
KDFHKDF-SHA-3-256RFC 5869 + FIPS 202Key derivation from shared secrets
RNGQRNG (QUAC 100 hardware)NIST SP 800-90BQuantum random number generation

ML-KEM (FIPS 203) #

Module-Lattice-Based Key-Encapsulation Mechanism, standardized by NIST as FIPS 203 (August 2024). Based on the CRYSTALS-Kyber algorithm. Used in QuantaVirt for all key exchange operations.

Parameter Sets

ParameterML-KEM-512ML-KEM-768ML-KEM-1024
NIST Security Level1 (128-bit)3 (192-bit)5 (256-bit)
QuantaVirt Config String"ML-KEM-512""ML-KEM-768""ML-KEM-1024"
Module Rank (k)234
Polynomial RingZq[X]/(X256+1), q = 3329
Public Key (pk) Size800 bytes1,184 bytes1,568 bytes
Secret Key (sk) Size1,632 bytes2,400 bytes3,168 bytes
Ciphertext (ct) Size768 bytes1,088 bytes1,568 bytes
Shared Secret (ss) Size32 bytes32 bytes32 bytes
Encapsulation Randomness32 bytes32 bytes32 bytes
Compression (du, dv)(10, 4)(10, 4)(11, 5)
η1, η2(3, 2)(2, 2)(2, 2)
Failure Probability2-1392-1642-174

Operations

OperationInputOutputC API
KeyGen32 bytes seed (QRNG)pk, skmlkem_keygen(pk, sk, params)
Encapspk, 32 bytes randomnessct, ssmlkem_encaps(ct, ss, pk, params)
Decapssk, ctssmlkem_decaps(ss, ct, sk, params)

ML-DSA (FIPS 204) #

Module-Lattice-Based Digital Signature Algorithm, standardized as FIPS 204 (August 2024). Based on CRYSTALS-Dilithium. Used in QuantaVirt for attestation, firmware signatures, and audit integrity.

Parameter Sets

ParameterML-DSA-44ML-DSA-65ML-DSA-87
NIST Security Level2 (128-bit)3 (192-bit)5 (256-bit)
QuantaVirt Config String"ML-DSA-44""ML-DSA-65""ML-DSA-87"
Module Dimensions (k, â„“)(4, 4)(6, 5)(8, 7)
Polynomial RingZq[X]/(X256+1), q = 8380417
Public Key (pk) Size1,312 bytes1,952 bytes2,592 bytes
Secret Key (sk) Size2,560 bytes4,032 bytes4,896 bytes
Signature (sig) Size2,420 bytes3,309 bytes4,627 bytes
γ1217219219
γ2(q-1)/88(q-1)/32(q-1)/32
η242
τ394960
β78196120
ω (max hint weight)805575

Operations

OperationInputOutputC API
KeyGen32 bytes seedpk, skmldsa_keygen(pk, sk, params)
Signsk, messagesigmldsa_sign(sig, msg, msg_len, sk, params)
Verifypk, message, sigbooleanmldsa_verify(sig, msg, msg_len, pk, params)

SLH-DSA (FIPS 205) #

Stateless Hash-Based Digital Signature Algorithm, standardized as FIPS 205. Based on SPHINCS+. Available as a conservative fallback — relies only on hash function security with no lattice assumptions.

Parameter Sets

Parameter SetSecurity Levelpk (bytes)sk (bytes)sig (bytes)Variant
SLH-DSA-SHA2-128s132647,856Small sig, slow sign
SLH-DSA-SHA2-128f1326417,088Fast sign, large sig
SLH-DSA-SHA2-192s3489616,224Small sig, slow sign
SLH-DSA-SHA2-192f3489635,664Fast sign, large sig
SLH-DSA-SHA2-256s56412829,792Small sig, slow sign
SLH-DSA-SHA2-256f56412849,856Fast sign, large sig
SLH-DSA-SHAKE-128s132647,856SHAKE-based, small sig
SLH-DSA-SHAKE-128f1326417,088SHAKE-based, fast sign
SLH-DSA-SHAKE-192s3489616,224SHAKE-based, small sig
SLH-DSA-SHAKE-192f3489635,664SHAKE-based, fast sign
SLH-DSA-SHAKE-256s56412829,792SHAKE-based, small sig
SLH-DSA-SHAKE-256f56412849,856SHAKE-based, fast sign

Symmetric Algorithms #

AlgorithmConfig StringKey SizeNonce/IVTag SizeStandardNotes
AES-256-GCM"AES-256-GCM"256 bits96 bits128 bitsNIST SP 800-38DDefault AEAD. Hardware-accelerated with AES-NI.
ChaCha20-Poly1305"ChaCha20-Poly1305"256 bits96 bits128 bitsRFC 8439Alternative AEAD. Constant-time without hardware support.

Hash Functions #

FunctionOutput SizeBlock SizeStandardUse in QuantaVirt
SHA-3-256256 bits1088 bitsFIPS 202General hashing, integrity verification
SHA-3-512512 bits576 bitsFIPS 202Extended integrity, key stretching
SHAKE-128Variable1344 bitsFIPS 202Internal to ML-KEM/ML-DSA
SHAKE-256Variable1088 bitsFIPS 202Internal to ML-KEM/ML-DSA, QRNG conditioning

Key Derivation #

FunctionParametersStandardUse in QuantaVirt
HKDF-SHA-3-256Extract: IKM + salt → PRK; Expand: PRK + info → OKMRFC 5869 + FIPS 202Derive encryption keys from ML-KEM shared secrets
/* Key derivation flow in QuantaVirt */

1. ML-KEM Decaps  →  shared_secret (32 bytes)
2. HKDF-Extract(salt=QRNG(32), IKM=shared_secret)  →  PRK (32 bytes)
3. HKDF-Expand(PRK, info="quantavirt-disk-enc-v1", L=32)  →  AES-256 key
4. HKDF-Expand(PRK, info="quantavirt-disk-iv-v1",  L=12)  →  base nonce

NIST Security Levels #

LevelClassical EquivalentQuantum EquivalentQuantaVirt AlgorithmsRecommended For
1AES-128 keysearchGrover on AES-128ML-KEM-512, SLH-DSA-128*General purpose, non-classified
2SHA-256 collision—ML-DSA-44Standard attestation
3AES-192 keysearchGrover on AES-192ML-KEM-768, ML-DSA-65, SLH-DSA-192*Government, financial — QuantaVirt default
5AES-256 keysearchGrover on AES-256ML-KEM-1024, ML-DSA-87, SLH-DSA-256*Top Secret, critical infrastructure, CNSA 2.0
CNSA 2.0 Compliance: For NSA CNSA 2.0 (Commercial National Security Algorithm Suite), use ML-KEM-1024 + ML-DSA-87 (Security Level 5). QuantaVirt's PQC subsystem is designed for full CNSA 2.0 readiness.

Performance Benchmarks #

Measured on Intel Xeon w5-3435X @ 3.1 GHz. QUAC 100 firmware 1.0.0.

ML-KEM Performance

OperationML-KEM-512ML-KEM-768ML-KEM-1024
Software Backend
KeyGen0.08 ms0.12 ms0.18 ms
Encaps0.10 ms0.15 ms0.22 ms
Decaps0.12 ms0.18 ms0.25 ms
QUAC 100 Hardware Backend
KeyGen0.4 µs0.5 µs0.7 µs
Encaps0.5 µs0.6 µs0.8 µs
Decaps0.5 µs0.7 µs0.9 µs
Speedup~200×~250×~280×
Throughput (ops/sec)2,500,0001,400,0001,100,000

ML-DSA Performance

OperationML-DSA-44ML-DSA-65ML-DSA-87
Software Backend
KeyGen0.15 ms0.25 ms0.38 ms
Sign0.55 ms0.95 ms1.20 ms
Verify0.17 ms0.28 ms0.41 ms
QUAC 100 Hardware Backend
KeyGen0.8 µs1.2 µs1.8 µs
Sign2.5 µs4.0 µs5.5 µs
Verify0.9 µs1.4 µs2.0 µs
Speedup (Sign)~220×~240×~220×

AEAD Performance

AlgorithmSoftware (AES-NI)QUAC 100Notes
AES-256-GCM (4 KB block)~12 GB/s~25 GB/sPer-sector disk encryption throughput
ChaCha20-Poly1305 (4 KB block)~8 GB/s~18 GB/sConstant-time alternative

Algorithm Usage Map #

Where each algorithm is used within QuantaVirt's subsystems.

SubsystemKEMDSAAEADHash
Storage EncryptionML-KEM (key wrap)—AES-256-GCM / ChaCha20SHA-3-256 (integrity)
PQC Network TunnelML-KEM (key exchange)—AES-256-GCM / ChaCha20SHA-3-256 (MAC)
VM Attestation—ML-DSA (sign/verify)—SHA-3-512 (measurement)
Firmware Signing—ML-DSA-87—SHA-3-256
Live MigrationML-KEM (channel key)ML-DSA (host auth)AES-256-GCM (page xfer)SHA-3-256 (page hash)
Audit Log—ML-DSA (entry signing)—SHA-3-256 (hash chain)
QRNG Conditioning———SHAKE-256
Key Derivation———HKDF-SHA-3-256