key derivation functions are important in security. they allow a smaller "secret phrase" to be expanded into a larger key (of a fixed length decided by the kdf's digest size). this makes trying to find the original "secret phrase" more difficult. the length of the key makes it more difficult to discover the phrase or the hidden secret by trial and error (i.e. through brute-forcing), by making it difficult for a computer to guess. sometimes, a small piece of random data (called a "salt") is added to the secret phrase before it is used with a kdf to make it more difficult guess the original "secret phrase" with a list of known "hashes".