PBKDF2
Password-Based Key Derivation Function 2(RFC 2898)。HMACを数十万回反復し、パスワードから鍵への変換をわざと遅くする。
設計原理は、試行1回あたりの仕事量を固定してブルートフォースのコストを上げること。ユーザーはログイン時の100ミリ秒に気づかないが、攻撃者は100ミリ秒×数百万回の試行に直面する。WPA2、iOSのキーチェーン、1Password、LUKS、.NETのRfc2898DeriveBytesなどで標準的に使われている。
現代における弱点は、純粋にCPU律速なのでGPUやASICで安く高速化できる点だ。Argon2やscryptはメモリハードなので、攻撃側のハードウェアによる高速化の効果が小さい。NISTはPBKDF2をSP 800-132で今も認めているが、新規システムにはArgon2idを推奨している。