Chapter 3 — Quantum and post-quantum security: specialist evidence
Lesson map
Lesson 03 published. Map, example, EX011.
flowchart TD
N0["Learning outcomes"]
N1["3.1 Inventory as a programme"]
N2["3.2 Evidence grading"]
N3["3.3 Practical activity — Lab I"]
N4["3.4 Supplier evidence"]
N5["3.5 Presenting evidence"]
N6["3.6 Worked case"]
N7["Synthesis"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Worked example"]
EX --> Q["Exercise EX011"]
Logical drawing
flowchart LR
N0["Learning outcomes"]
N1["3.1 Inventory as a programme"]
N2["3.2 Evidence grading"]
N3["3.3 Practical activity — Lab I"]
N4["3.4 Supplier evidence"]
N5["3.5 Presenting evidence"]
N6["3.6 Worked case"]
N7["Synthesis"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX011"]
[Learning outcomes]
|
v
[3.1 Inventory as a programme]
|
v
[3.2 Evidence grading]
|
v
[3.3 Practical activity — Lab I]
|
v
[3.4 Supplier evidence]
|
v
[3.5 Presenting evidence]
|
v
[3.6 Worked case]
|
v
[Synthesis]
|
v
[Worked example] --> [Exercise EX011]
Learning outcomes
You will (1) design an organization-scale cryptographic inventory programme; (2) grade evidence by method and confidence; (3) quantify coverage and the unknown share; (4) handle supplier evidence; and (5) present inventory results as decision evidence rather than as spreadsheets.
3.1 Inventory as a programme
At organization scale, a cryptographic bill of materials (CBOM) is not a one-off spreadsheet but a programme with owners, sources, schedules and quality metrics. Sources include passive network sensors, configuration management databases, certificate management systems, code and binary scanners, cloud provider APIs, HSM audit logs and supplier attestations. Each feeds observations — asset, function, algorithm, parameter, implementation, method, date — into a store that can be queried and diffed over time.
Assign an owner for each source and a schedule for refreshing it, and record when each observation was last confirmed. Diffs between snapshots show change over time, including reversions such as a hybrid group being switched off. Lab I shows the simplest version of this aggregation for a handful of synthetic NRHT assets.
3.2 Evidence grading
Not all observations are equal. A practical grading: A — observed in operation (handshake, HSM log); B — read from authoritative configuration; C — inferred from code or binary analysis; D — supplier statement; U — unknown. Decisions about urgent work should rest on A or B evidence where possible; D evidence triggers verification for high-priority assets. Grading also guides investment: if most high-priority assets have only D evidence, the next spend is verification, not migration.
Record the grade with each observation and let it decay: an A-grade handshake seen a year ago should be treated as weaker than one seen last week. Use the grade to choose the next action. At NRHT the large share of tier-1 assets resting on grade D supplier statements is what made verification, not migration, the first funded step.
3.3 Practical activity — Lab I
# Lab I (ch 3): aggregate a synthetic cryptographic bill of materials (CBOM) and measure coverage.
records = [ # (asset, function, algorithm, source)
("pacs-gateway", "key-exchange", "X25519MLKEM768", "passive"), ("pacs-gateway", "signature", "RSA-2048", "config"),
("infusion-hub", "key-exchange", "ECDHE-P256", "passive"), ("infusion-hub", "signature", "ECDSA-P256", "code"),
("ehr-core", "key-exchange", "RSA-kex", "config"), ("billing", "data-at-rest", "AES-256-GCM", "code"),
("imaging-modality", "unknown", "unknown", "none"), ("site-vpn", "key-exchange", "ECDHE-P384", "config")]
VULN = {"RSA-2048", "ECDHE-P256", "ECDSA-P256", "RSA-kex", "ECDHE-P384"}
assets = {r[0] for r in records}
unknown = {r[0] for r in records if r[2] == "unknown"}
vuln = [r for r in records if r[2] in VULN]
print(f"assets {len(assets)}, unknown {len(unknown)} ({100*len(unknown)/len(assets):.0f}%)")
print(f"quantum-vulnerable uses {len(vuln)}:", ", ".join(f"{a}/{f}" for a, f, _, _ in vuln))
print("hybrid key exchange present on:", [r[0] for r in records if "MLKEM" in r[2]])
Expected output:
assets 6, unknown 1 (17%)
quantum-vulnerable uses 5: pacs-gateway/signature, infusion-hub/key-exchange, infusion-hub/signature, ehr-core/key-exchange, site-vpn/key-exchange
hybrid key exchange present on: ['pacs-gateway']
Even in this small synthetic set, one asset of six is unknown, and the hybrid that exists covers only key exchange on one gateway. At NRHT scale, a 17 % unknown share across 40,000 assets would be 6,800 assets — a programme in itself.
The lab treats an asset as unknown when its only record has no algorithm, and counts quantum-vulnerable uses by function, not by asset. The pacs-gateway appears twice because it has a hybrid key exchange and a classical signature, which shows why key exchange and signatures must be tracked separately.
3.4 Supplier evidence
Suppliers control much of the cryptography in a hospital: EHR platforms, PACS, devices, cloud services. Ask for structured inventories (algorithms, libraries, versions), roadmaps with dates and versions, and test access. Contract clauses should require disclosure and notification of cryptographic changes. Treat silence as unknown, never as compliant.
Record each supplier's answer with its date, the person who gave it and the evidence grade it supports, usually D until verified. Ask the suppliers behind the most tier-1 assets first; at NRHT 40 suppliers account for 80 % of tier 1. Repeat the questions at each contract renewal.
3.5 Presenting evidence
Executives need answers to three questions: what share of priority flows is protected, how confident are we, and what is unknown? Present coverage by evidence grade and priority tier, not raw counts. Show trends over quarters; a falling unknown share is progress even before any algorithm changes.
At NRHT the first board report led with the confirmed share of tier-1 assets, 22 %, rather than with a total count. A chart showing grades by tier over successive quarters lets the board see verification progress even when no algorithm has yet changed. Keep the underlying data available for anyone who asks.
3.6 Worked case
NRHT's first-quarter inventory (synthetic): 41,200 assets; priority tier 1 (long-lived confidentiality or long-lived trust) 1,850 assets. Of tier 1: 22 % grade A/B, 31 % grade C, 29 % grade D, 18 % unknown. The board report leads with "we can confirm the cryptography of only 22 % of our most important assets"; the funded response is sensor coverage on inter-site links and a supplier questionnaire to the 40 suppliers behind 80 % of tier 1.
The report is uncomfortable but honest, and it leads directly to a funded action. In later quarters the same breakdown shows whether verification is working; by the year-two review the unknown share of tier-1 had fallen, which is the measure the board can follow.
3.7 Common errors and limits
- Treating supplier statements as observations.
- Reporting asset counts without tier and grade.
- Deleting stale observations instead of downgrading them.
Each error has a guard. Grade supplier statements as D until observed. Report counts by tier and grade, never alone. Keep stale observations, downgrade them and record the date they were last confirmed, so the history remains visible and a reversion can be detected. At NRHT, the 29 % of tier-1 assets resting on supplier statements were reported as grade D, not as covered, which is why the board funded verification first. Keep the grade with every count in the same table.
Exercises
- EX011 — Grade it. Grade: TLS handshake capture of the EHR replication link; vendor PDF stating "AES-256 and RSA-3072"; binary scan finding OpenSSL 3.x; CMDB field "crypto: standard". Rubric: 3 = A, D, C, B-or-U with justification for the CMDB case.
- EX012 — Unknown scale. If NRHT reduces tier-1 unknowns from 18 % to 6 %, how many tier-1 assets moved out of unknown? Rubric: 3 = 0.12 × 1,850 = 222.
- EX013 — Supplier clause. Draft a clause requiring notification of cryptographic changes. Rubric: 3 = scope, timing, content, remedy.
- EX014 — Staleness rule. Propose a rule for downgrading observations by age, and justify the thresholds. Rubric: 3 = time-based grade decay linked to change rates.
- EX015 — Board metric. Design a single chart for the board showing inventory confidence for tier 1. Rubric: 3 = stacked grade shares by quarter, with unknown highlighted.
Synthesis
Specialist evidence is graded, dated and supplier-aware. Coverage and the unknown share are first-class outcomes, and the board sees confidence, not spreadsheets.
Continue studying — chapter 03 of 12
← Chapter 02 (draft) · Course chapter index · Chapter 04 (draft) →