Glossary · Cryptography & authentication
Key stretching
Key stretching turns a low-entropy secret like a password into a stronger key by making each derivation deliberately expensive — thousands to millions of iterations, or memory-hard computation — so brute-force guessing becomes uneconomical.
A password has perhaps 30–60 bits of real entropy; an attacker with a stolen hash tries billions of guesses per second on GPUs. Stretching inserts a cost multiplier: PBKDF2 iterates a hash, bcrypt adds per-guess work, scrypt and Argon2 add memory-hardness that GPUs and ASICs cannot amortize away.
Stretching appears anywhere a human secret becomes a cryptographic key: password storage, key derivation for encrypted vaults, and lookup-key derivation (Ciphera’s blind index runs PBKDF2 at one million iterations client-side; vault key derivation uses Argon2id in the browser). It complements — never replaces — protocols like OPAQUE that keep the secret off the server entirely.