NISTがサポートしているサンプルユースケースは何ですか このポリシー/ホワイトペーパーで PBKDF2について==
この勧告は、電子的に保存されたデータの保護またはデータ保護キーの保護のためにパスワードまたはパスフレーズから暗号化キーを導出するためのパスワードベースのキー導出関数(PBKDF)のファミリーを指定します。
対象となるアプリケーションのリストから暗黙的に除外されているものを知っていれば、この段落を理解する可能性が高くなります。
範囲内と範囲外の具体的な例は非常に役立ちます。
キー導出関数 は、一部の秘密データをより多くの秘密データに変え、適切なサイズを持たない他のキーから適切なサイズのキーを作成するために使用されます。 KDFの例は SSL/TLS 内の「PRF」と呼ばれるものです。クライアントとサーバー間で構築された共有キー(RSA暗号化またはDiffie-Hellmanを使用)を対称キーに変換するために使用されますその後、確立された接続で対称暗号化と整合性チェックに使用されます。
パスワードベースのKDF(したがって「PBKDF」という名前)は、ソースマテリアルが「パスワード」、つまり人間の脳に保持され、(通常)キーボードで入力されるデータであるKDFです。脳の所有者によって。これはSSLの場合ではありません。パスワードベースのKDFは、パスワードによって「ロック」されたデータ暗号化を実行する場合に常に使用されます。たとえば、パスワードでファイルを「暗号化」する場合(たとえば、Wordの「パスワード保護」、パスワードで保護されたZipアーカイブ、または「パスフレーズ保護」のファイルに保存されたPGPキーリングまたはSSH秘密鍵)、パスワードベースのKDFが含まれていたことを確認できます。
パスワードベースのKDFの役割は次のとおりです。
PBKDF2 は、構成可能な「反復回数」とソルトによって2番目のプロパティを保証します(両方のパラメーターは通常、暗号化されたファイルのパブリックヘッダーに格納されます)。
PBKDF2の不正ですが一般的な使用法は、パスワードをハッシュすることです。これは、PBKDF2出力をパスワード検証トークンとして使用することです。 PBKDF2からの導出で同じ値が得られる場合は、パスワードが受け入れられます。 PBKDF2は最初はそのために設計されていませんが、 bcrypt の方が間違いなく優れています( この答え を参照)。