Chapter 4 — Quantum and post-quantum security: core methods
Lesson map
Lesson 04 published. Map, example, EX016.
flowchart TD
N0["Learning outcomes"]
N1["4.1 Inventory sources"]
N2["4.2 Practical activity — Lab I"]
N3["4.3 Evidence grades"]
N4["4.4 Exposure classes"]
N5["4.5 Unknowns as work"]
N6["4.7 Practice task"]
N7["4.9 Running the inventory as a cycle"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Worked example"]
EX --> Q["Exercise EX016"]
Logical drawing
flowchart LR
N0["Learning outcomes"]
N1["4.1 Inventory sources"]
N2["4.2 Practical activity — Lab I"]
N3["4.3 Evidence grades"]
N4["4.4 Exposure classes"]
N5["4.5 Unknowns as work"]
N6["4.7 Practice task"]
N7["4.9 Running the inventory as a cycle"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX016"]
[Learning outcomes]
|
v
[4.1 Inventory sources]
|
v
[4.2 Practical activity — Lab I]
|
v
[4.3 Evidence grades]
|
v
[4.4 Exposure classes]
|
v
[4.5 Unknowns as work]
|
v
[4.7 Practice task]
|
v
[4.9 Running the inventory as a cycle]
|
v
[Worked example] --> [Exercise EX016]
Learning outcomes
You will (1) run an inventory using several sources; (2) build and read a cryptographic bill of materials (CBOM); (3) grade evidence; (4) classify exposure; and (5) track unknowns as work.
4.1 Inventory sources
Configuration exports, certificate lists from the CA, network observations by technical teams, application documentation, and supplier questionnaires. Each answers different questions; combine them.
At MTI the broker portal's key exchange was seen in passive observation, its certificate came from configuration, and the claims app's signing algorithm was known only from code. No single source covered all six assets. Record which source supplied each line of the CBOM, because the source sets the evidence grade. Note where two sources disagree and ask the owner which is current.
4.2 Practical activity — Lab I
# Lab I (ch 4): aggregate a synthetic cryptographic bill of materials (CBOM) and measure coverage.
records = [ # (asset, function, algorithm, source)
("broker-portal", "key-exchange", "X25519MLKEM768", "passive"), ("broker-portal", "signature", "RSA-2048", "config"),
("claims-app", "key-exchange", "ECDHE-P256", "passive"), ("claims-app", "signature", "ECDSA-P256", "code"),
("policy-db", "key-exchange", "RSA-kex", "config"), ("billing", "data-at-rest", "AES-256-GCM", "code"),
("call-recorder", "unknown", "unknown", "none"), ("office-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: broker-portal/signature, claims-app/key-exchange, claims-app/signature, policy-db/key-exchange, office-vpn/key-exchange
hybrid key exchange present on: ['broker-portal']
The script counts assets, flags quantum-vulnerable uses and lists where hybrid key exchange is already present. Notice that billing's AES-256-GCM is not flagged, because symmetric encryption at that size remains adequate, and that the call recorder is counted as unknown rather than safe. The 17 % unknown share is the first headline measure: one asset in six cannot yet be assessed. Run it with an extra record of your own and check that the counts change as you expect.
4.3 Evidence grades
A simple grade: A observed in operation; B authoritative configuration; C inferred from documentation or code; D supplier claim; U unknown. Priorities based on D or U evidence need verification before money is spent.
Grades also tell you how to improve evidence: a D can be raised by asking technical staff to observe the product in operation, and a C by obtaining the configuration. Write the grade next to each record, not just each asset, since one asset can have different grades for different functions.
4.4 Exposure classes
Record-now (HNDL): classical key exchange carrying long-lived data. Forge-later: classical signatures trusted for long periods or hard to replace. Adequate: symmetric encryption and hashes at good sizes. Unknown.
In the Lab I extract, policy-db's RSA key exchange is record-now if it carries long-lived data, the broker portal's RSA-2048 signature is forge-later, billing's AES-256-GCM is adequate and the call recorder is unknown. Classify each use of cryptography separately, since one asset can fall in two classes. The class decides which controls apply.
4.5 Unknowns as work
Every unknown becomes a task with owner and due date: ask the supplier, request a configuration export, ask technical staff to observe. Track the unknown share as a headline measure.
At MTI the call recorder's U became a questionnaire task for its vendor with a named owner and a due date. The share of unknowns is a better measure of inventory progress than the number of assets listed, because it cannot be improved by counting easy assets twice. Close each task with evidence.
4.6 Worked example
MTI's first CBOM extract matches Lab I: six assets, five quantum-vulnerable uses, one unknown (the call recorder). Grades: broker portal A for key exchange (observed) and B for its signature (configuration), claims app A for key exchange and C for signing (code only), policy DB B, call recorder U, office VPN B. Tasks: supplier questionnaire to the call-recorder vendor; confirm claims-app signing algorithm with its owner.
The grades decide what happens next. Items with A or B can be prioritised with confidence; the call recorder cannot be prioritised at all until its vendor answers, and the claims app's signing entry needs owner confirmation because code alone may not reflect what is deployed.
4.7 Practice task
Grade and classify each Lab I record and write tasks for the unknowns.
Give each record a grade from A to U and an exposure class, with one line explaining each choice. For the call recorder, write a task with an owner, a due date and the question to ask. Then compare with the worked example and explain any difference. A peer should be able to reproduce your grades from the source column alone. Note which records you could not grade and why.
4.8 Common errors and limits
- One source only.
- Treating supplier claims as observations.
- Unknowns without owners.
A single source leaves blind spots: configuration alone misses what is negotiated, and observation alone misses encrypted certificates. A supplier claim treated as an observation can push money toward an asset that is already protected, or away from one that is not. An unknown without an owner simply stays unknown, quarter after quarter, while the headline measure stalls. Check the MTI extract for each of these before relying on it, and fix any you find.
4.9 Running the inventory as a cycle
An inventory is not done once. Run it as a cycle: collect (exports, questionnaires, observations), merge into the CBOM, grade, classify, raise tasks for unknowns and gaps, then repeat each quarter. Each cycle should show three numbers to management: how many tier-1 assets have A or B evidence, how many are unknown, and how many are already protected. When a supplier answers a questionnaire, the grade for their products moves from U to D; when a technical team confirms the answer by observation, it moves to A. This movement is real progress even before any algorithm changes, because it turns guesses into facts on which budgets can be based.
Keep the CBOM's access restricted to those who need it and share only summaries more widely.
Exercises
- EX016 — Lab I reading. Which asset already has hybrid key exchange, and what remains classical on it? Rubric: 3 = broker-portal; its signature (RSA-2048).
- EX017 — Grades. Assign grades to: observed handshake; supplier email; CA database record; architecture diagram. Rubric: 3 = A, D, B, C.
- EX018 — Classes. Classify the five vulnerable uses in Lab I by exposure class. Rubric: 3 = key exchanges HNDL; signatures forge-later.
- EX019 — Unknown share. What is Lab I's unknown share, and how would you report it? Rubric: 3 = 17 % of assets, shown beside every figure.
- EX020 — Task. Write the task for the call recorder. Rubric: 3 = question, method, owner, due date.
Synthesis
A multi-source, graded CBOM classifies exposure and turns unknowns into tracked work.
Continue studying — chapter 04 of 12
← Chapter 03 (draft) · Course chapter index · Chapter 05 (draft) →