1

The building blocks

goal: never hand-wave at a hash, a signature, or a key again
objective Be fluent in four primitives so every later sentence parses instantly: the hash, the hash chain, the digital signature, and the certificate chain.
start 0000…0 Hash + measure A value 1 Hash + measure B value 2 final fingerprint Order matters: A-then-B ≠ B-then-A
A hash is a one-way fingerprint of data — easy to compute, impossible to reverse. A hash chain folds each new fingerprint into the last, so the final value depends on everything, in the exact order it happened. This is literally how a PCR works.

Own each cold (spoken-language meaning)

inside the hardware data any message sign private key never leaves signature sent with the data verify public key anyone may hold it verified the holder approved it the private key never crosses the boundary; the public key is meant to be shared
A signature proves who approved the data — and checking it needs no secret. The private key can be locked inside hardware so it never leaks; the matching public key is published, and anyone holding it can check the signature for themselves. That asymmetry is what lets a stranger judge a machine they do not control.
root key the one you decide to trust signs the maker's key vouched for by the root signs the device's key vouched for by the maker signs the attestation what you were handed no rung is stronger than the root at the top
A certificate chain is a ladder of signatures, and you choose the top rung. Each key is vouched for by the one above it, so verifying means climbing every rung. An attestation is only as trustworthy as the root you decided to trust — which makes picking that root a decision, not a default.
  • Hash = a fixed-size fingerprint of any data. Change one bit of input → totally different fingerprint. You can't work backwards to the input. SHA-256 (Secure Hash Algorithm, 256-bit) and SHA-384 are the common ones; the number is the fingerprint's length in bits.
  • Hash chain = the picture above. Why a PCR can't be forged or reordered.
  • Digital signature = math that proves "the holder of a secret private key approved this," checkable by anyone with the matching public key. The private key can be locked inside hardware so it never leaks.
  • Certificate chain = a ladder of signatures: a device's key is vouched for by a maker's key, vouched for by a root key you decide to trust. An attestation is only as trustworthy as the root at the top.
  • Nonce = "number used once," a fresh random challenge. Binding it into a signature proves the answer is live, not a replayed recording.
  • CBOR (Concise Binary Object Representation) = a compact binary form of JSON. COSE (CBOR Object Signing and Encryption) = the standard way to sign a CBOR message. Amazon's enclave evidence uses both.
lab 1 · touch the primitives
  • Reproduce one link of the chain: python3 -c "import hashlib;print(hashlib.sha256(bytes(32)+hashlib.sha256(b'A').digest()).hexdigest())". Swap A and B order and watch the result change — feel why order matters.
  • Walk a certificate ladder: openssl verify -CAfile root.pem chain.pem and read what each rung asserts.
mastery gate 1

Explain, pointing at the diagram, why you cannot force a register to a chosen value — naming the exact hash property that stops you. Explain why a firmware update changes the fingerprint in a way an attacker still can't predict-to-forge.