Published 2026-10-08. Updated 2026-11-03: both keys were replaced, and new reports are signed with ML-DSA-87.
A Q-Shield proof report is signed with two keys at once, Ed25519 and ML-DSA (the post-quantum signature standard, FIPS 204). Reports signed from 2026-11-03 use a new Ed25519 key and ML-DSA-87, the level CNSA 2.0 requires; reports signed before then use the older Ed25519 key and ML-DSA-65. A report is valid only if both signatures verify against the keys on this page. A key carried inside a report is never trusted.
| Algorithm | Key id | Public key (base64) |
|---|---|---|
| Ed25519 | D72A8F9C5DE25146 | pDNdgd59DFjKiy4GIjzl++RUDCI4xqLwfSMvvgRJ0us= |
| ML-DSA-87 | 11055C6262215FAB | Too long to print here: it is in the file below, 2,592 bytes. |
Reports signed before 2026-11-03 use these keys, which stay published so those reports keep verifying:
| Algorithm | Key id | Public key (base64) |
|---|---|---|
| Ed25519 | D4B93458E36D1F69 | UJ8LwXQUt4jnqA4pjQcaFN4vaAXPecUxoJpgrcX3mLQ= |
| ML-DSA-65 | 604DF4F5974F5A6B | Too long to print here: it is in the file below, 1,952 bytes. |
All four public keys, in the format the verifier reads: https://epochcoreqcs.com/qshield-keys/KEYS.json
SHA-256 of that file: a06cb5aba7150c315caa62b39fec15bc7f72a67534aa32985b1fd68eec75f1f7
That the report body has not changed since it was signed with the private keys that belong to these public keys. It is evidence for an auditor, not a certification, and it covers only the hosts listed in the report.
Each PDF report prints the OpenSSL commands (OpenSSL 3.5 or newer) and the files they need, so a report can be checked without any EpochCore software. Work out each key's id from the key file the check used (the first 16 characters, in capitals, of the SHA-256 of the raw public key) and compare it with the ids above. Don't rely on the ids printed in the report itself.
The Q-Shield collector that design partners run themselves is signed with the same two keys. Its Download page shows the signed release (version, SHA-256 of the file, source commit and image ID) and the OpenSSL steps to check the file and both signatures. Check the key ids the same way.