Skip to content

What a key is

Level: 101 · for anyone starting from zero

Stub — an outline, not a lesson. There is no runnable example behind this page yet, so nothing on it has been through the check that backs every other claim in this library. The bullets below are the questions the finished page has to answer.

One line: A key is the one input an attacker is assumed not to have. Everything else about the system — the algorithm, the code, the protocol — is assumed public.

The questions this page has to answer

  • What makes a key good? (Not length in characters — entropy, and the two are not the same number.)
  • Why is a 128-bit key enough, when a 128-character password is not?
  • What is the difference between a key, a nonce/IV, a salt and a seed? Which must be secret, which must be unique, which must be unpredictable — the three requirements are different and the words get swapped.
  • Where does the key live when the program is not running, and who can read it there?
  • What does key rotation mean, and what breaks if you have never done one?

See also