Notes - Computer Security MT24, Key generation
Flashcards
@Define a key derivation function.
A function which generates a cryptographic key from a more memorable secret.
Why does just hashing a secret phrase not make a good key derivation function?
It means that dictionary attacks can be performed, since the set of all possible passwords will be much smaller than the set of all keys.
Why should KDFs be very slow but hashes be fast?
- You only need to call a KDF once to generate a key
- A hash might need to be called multiple times
Describe an example KDF.
\[\begin{aligned}
u_1 &= h\big((p \oplus c_1) \parallel (p \oplus c_2) \parallel s\big) \\\\
u_2 &= h\big((p \oplus c_1) \parallel (p \oplus c_2) \parallel u_1\big) \\\\
&\quad\quad\quad\quad\quad\quad\vdots \\\\
u_n &= h\big((p \oplus c_1) \parallel (p \oplus c_2) \parallel u_{n-1}\big) \\\\
k &= \bigoplus^n_{i = 1} u_n
\end{aligned}\]
where $n$ is the number of rounds.