PBKDF2
PBKDF2は、HMACなどの疑似乱数関数や、ソルトを付加したパスワードやパスフレーズを用いる。また、鍵導出処理を何度も繰り返して、前回の処理で導出した鍵を次回の処理のパスワードとして用いることで、導出鍵を解読困難にする。この繰り返し処理は、ストレッチングと呼ばれる。
2000年に公開されたPKCS #5 v2.0におけるストレッチングの推奨回数は、最低1000回であった。しかしながら、CPU処理速度の向上に伴って、ストレッチングの推奨回数も増加しており、2005年に公開されたRFC 4120での推奨回数は、4096回である。AppleのiOS 3では2000回、iOS 4では10,000回のストレッチングを行っており、LastPassは、2011年時点で、サーバ側での100,000回のストレッチングに加えて、クライアント側での5000回のストレッチングも行っている。
ソルトをパスワードに付加することで、攻撃者は複数のパスワードを一度に試行できなくなるため、ハッシュ値の事前計算(レインボーテーブル)の効果を下げることができる。PKCS #5では、ソルトの長さを最低でも64ビットにすることを推奨しており、アメリカ国立標準技術研究所は、128ビットのソルトを推奨している。