Skip to content

Glossary

Level: reference

Short entries, each with the page that explains it in full. Alphabetical. An entry whose "read more" points at a stub is a promise, not a lesson.

Term In one line Read more
AEAD Authenticated encryption with associated data: one primitive that gives confidentiality and integrity, so the two do not have to be composed by hand. AES-GCM, ChaCha20-Poly1305 05_Symmetric
authenticity The claim that a message is from who it says. Encryption does not provide it; a MAC or a signature does 06_Integrity_and_MACs
avalanche A one-bit change in the input changes about half the output bits. Why a digest is a fingerprint with no partial credit A hash is not encryption
birthday bound Finding any collision in an n-bit digest costs about 2^(n/2), not 2ⁿ. True of every hash function, which is why collision resistance always falls first A hash is not encryption
block cipher A keyed permutation of a fixed-size block — AES is 128 bits. Encrypting anything larger requires a mode AES has no modes — you pick one
collision Two different inputs with the same digest. They must exist; the question is whether anyone can find one A hash is not encryption
confidentiality The claim that nobody else can read it. What encryption gives you, and the only one of the three properties it gives on its own 01_What_Cryptography_Is
CSPRNG A random generator whose output an observer cannot predict even after seeing a great deal of it. Python's secrets; not random random is not secrets
forward secrecy The property that recording today's traffic and stealing the long-term key tomorrow does not open it. A property of the key exchange, not the cipher Diffie–Hellman by hand
HMAC A MAC built from a hash and a key, in a nested construction that fixes the length-extension flaw of the obvious approach HMAC, and comparing in constant time
integrity The claim that a message was not changed. A hash gives it only over a channel an attacker cannot also change 06_Integrity_and_MACs
IV Initialisation vector: the per-message value that stops identical plaintexts producing identical ciphertexts. In CBC it must be unpredictable, not merely unique — which is a stronger requirement than a nonce's AES has no modes — you pick one
KDF Key derivation function: turns a password or a shared secret into key material, and for a password does so slowly, on purpose Hashing a password
Kerckhoffs's principle The system stays secure when everything except the key is public. 1883, and still the rule most often broken by people sure they are the exception Kerckhoffs's principle
key The one input an attacker is assumed not to have. Everything else — algorithm, code, protocol — is assumed public What a key is
keyspace How many keys there are. Necessary and nowhere near sufficient: a substitution cipher has 4 × 10²⁶ and no security at all Breaking a cipher by counting
length extension Given sha256(secret ‖ m) and the length of the secret, an attacker can compute sha256(secret ‖ m ‖ more) without knowing the secret. Why hash-then-append is not a MAC HMAC, and comparing in constant time
MAC Message authentication code: a keyed tag proving a message was not changed and came from a key holder. The key is the whole difference from a plain hash 06_Integrity_and_MACs
nonce A number used once. Must be unique per key; need not be secret or unpredictable. Repeating one is the single most destructive mistake in symmetric cryptography Nonce reuse
one-time pad The only cipher with a proof of perfect secrecy, and the only one whose key is as long as the message. The proof and the uselessness are the same fact The one-time pad
preimage Given a digest, an input that produces it. Nobody can compute one for MD5 either — "MD5 is broken" is a statement about collisions A hash is not encryption
salt A per-user, non-secret value mixed into a password hash so that one precomputed table cannot attack every account at once Hashing a password
substitution cipher Each character replaced using one table fixed for the whole message. The table is the key; renaming the letters leaves every relationship between them intact, which is why counting breaks it Breaking a cipher by counting
symmetric One key, held by both sides, used to encrypt and decrypt. Fast, solved, and where the misuse happens 05_Symmetric