SHA1の暗号解読には大きな進歩があったため、SHA2を優先して段階的に廃止される予定です(ウィキペディア)。
ただし、PBKDF2の基になるハッシュ関数として使用する場合は、基本的にPRNGとして使用されます。そのため、SHA1をPBKDF2のハッシュとして使用することは安全ですよね?
SHA1の暗号解読には大きな進歩があったため、SHA2を優先して段階的に廃止される予定です(ウィキペディア)。
ただし、PBKDF2の基になるハッシュ関数として使用する場合は、基本的にPRNGとして使用されます。そのため、SHA1をPBKDF2のハッシュとして使用することは安全ですよね?
現在知られているSHA-1の弱点は、HMACで使用した場合のセキュリティに影響を与えることはなく、 PBKDF2で使用した場合のセキュリティに影響を与えることはありません。さらに言えば、MD5も問題ありません(MD4は問題ありません)。
ただし、SHA-1は広報には適していません。2011年にSHA-1を使用する場合は、その選択を正当化する準備をする必要があります。一方、SHA-256は優れた「デフォルト機能」であり、誰もそれを疑うことはありません。
PBKDF2にはパフォーマンスの問題はありません(PBKDF2には、必要に応じて正確に遅くすることを目的とした「反復カウント」が含まれています)。したがって、ここでSHA-256よりもSHA-1を選択する理由はほとんどありません。ただし、PBKDF2-with-SHA-1を使用する既存のデプロイ済みシステムがある場合は、すぐに「修正」する必要はありません。
多くの大衆の混乱を引き起こしたSHA1への攻撃は、別のメッセージと同じハッシュを持つメッセージを構築することを可能にします。もちろん、これは(原則として)すべてのハッシュ関数で常に可能です。ハッシュ関数の出力ビットは入力ビットよりも少ないためです。ただし、通常は偶然に発生する可能性は低く、意図的に実行することは計算上実行不可能です。
「メッセージの整合性を確保する」という観点からは、これは災害と見なすことができます。
一方、乱数を生成する目的では、これはまったく関係がありません。
もちろん。より多くの重要な素材を生成したい場合は、SHA-256以上の方が効率的かもしれません。しかし、PBKDF2-HMAC-SHA1は問題ありません。また、標準のHMACの使用は妥協されていませんが、このシナリオでも、原則として、ハッシュが長いほど安全です。