These are the terms introduced across the four parts of the lecture.
Integrity and Hash Functions
- Integrity
- Ensuring that data has not been modified.
- Authenticity
- Ensuring that data came from the source it claims.
- Commitment scheme
- Publishing a value that fixes a message without revealing it.
- Hiding
- The property that a commitment reveals nothing about the message.
- Binding
- The property that a commitment cannot later match a different message.
- Check digit
- An extra digit computed from a number to catch transcription errors.
- Parity bit
- A bit recording whether a byte holds an even or odd count of ones.
- Cyclic redundancy check (CRC)
- A remainder computed over a message to detect accidental corruption.
- Cryptographic hash function
- A public function mapping any message to a fixed-size value.
- Digest
- The fixed-size output of a hash function. Also called a hash.
- Determinism
- The property that the same input always produces the same digest.
- Preimage resistance
- Infeasibility of finding a message that produces a given digest.
- Second preimage resistance
- Infeasibility of finding a second message matching a given message’s digest.
- Collision
- Two different messages that produce the same digest.
- Collision resistance
- Infeasibility of finding any two messages with the same digest.
- Avalanche
- A one-bit input change altering about half the digest bits unpredictably.
- Pigeonhole principle
- More items than containers guarantees some container holds more than one.
- Birthday problem
- Matching pairs appear far sooner than matching a chosen value does.
- SHA-2
- A family of current hash functions with several digest lengths.
- SHA-256
- The 256-bit member of the SHA-2 family, and the common default choice.
- SHA-3
- A separately designed family of current hash functions, standardized in 2015.
Message Authentication
- Message authentication code (MAC)
- A value computed from a message and a secret key.
- Authentication tag
- Another name for a MAC, and the output of an AEAD mode.
- Length extension attack
- Continuing a hash calculation from a tag to authenticate appended data.
- HMAC
- A MAC built by nesting two hashes under two key-derived values.
- Manifest
- An authenticated record naming a release and the digest of its files.
- Encrypt-then-MAC
- Encrypting first, then computing the tag over the resulting ciphertext.
- Authenticated encryption with associated data (AEAD)
- Encryption and an authentication tag produced in one operation.
- Associated data
- Readable information an AEAD mode authenticates but does not encrypt.
- Non-repudiation
- Evidence against a later denial that a key holder signed something.
Public Key Cryptography
- Public-key cryptography
- Cryptography using a related key pair instead of one shared secret. Also called asymmetric cryptography.
- Public key
- The half of a key pair that is published and used to verify or encrypt.
- Private key
- The half of a key pair kept secret and used to sign or decrypt.
- One-way function
- A calculation that is efficient forward and infeasible to reverse.
- Discrete logarithm problem
- Recovering an exponent from the result of a modular exponentiation.
- Trapdoor
- Secret information that makes an infeasible calculation easy.
- Trapdoor function
- A one-way function that can be reversed by whoever holds its trapdoor.
- RSA
- A public-key system whose trapdoor is the factoring of a modulus.
- Elliptic-curve cryptography (ECC)
- Public-key cryptography using arithmetic on the points of a curve.
- Diffie-Hellman key exchange
- Two parties deriving a shared secret by exchanging public values.
- Key agreement
- Establishing a shared secret from each party’s private contribution.
Digital Signatures
- Digital signature
- A value produced from a message and a private signing key.
- Verification
- Checking a signature against a message using the signer’s public key.
- RSA-PSS
- RSA’s signature scheme, combining hashing with a randomized encoding.
- ECDSA
- The elliptic curve digital signature algorithm, widely used in certificates.
- Ed25519
- A deterministic elliptic-curve signature scheme with no per-signature random value.
- Lamport signature
- A one-time signature scheme built from a hash function alone.
Certificates and Trust
- Key fingerprint
- A hash of a public key, short enough to compare by hand.
- Certificate authority (CA)
- A party that vouches for the binding between a key and an identity.
- Digital certificate
- A signed statement binding a public key to an identity.
- X.509
- The standard certificate format used on the web.
- Certificate chain
- A sequence of certificates, each vouching for the key below it.
- Trust anchor
- A key accepted in advance, from which a chain is verified.
- Trust store
- The collection of trust anchors a system is configured to accept.
- Domain validation
- Certificate issuance that checks only control of the name being certified.
- Certificate revocation list (CRL)
- A published list of certificates withdrawn before their expiration.
- Online Certificate Status Protocol (OCSP)
- A live query asking an issuer whether one certificate is still valid.
- Certificate Transparency
- Public append-only logs recording every certificate an authority issues.
Signed Software and the Supply Chain
- Code signing
- Signing executable code so a system can verify its origin before running it.
- Per-page hashes
- Digests covering each page of a file, checked as it loads into memory.
- Secure boot
- Each stage of startup verifying the signature on the stage it launches.
- Software supply chain attack
- Compromising software before it reaches the people who run it.
- Reproducible build
- A build that produces an identical binary from identical source.
- Provenance record
- A signed statement describing how a binary was produced.
- Software bill of materials (SBOM)
- A list of the components a software product contains.
- Transparency log
- A public append-only record that makes issued artifacts impossible to hide.
Post-Quantum Cryptography
- Harvest now, decrypt later
- Recording encrypted traffic today to decrypt it once hardware allows.
- Post-quantum cryptography
- Algorithms designed to resist attack by a quantum computer.
- Hybrid key exchange
- Combining a classical and a post-quantum exchange in one connection.