私の機能は次のとおりです。
pbkdf2($raw_pw,$salt,1000,128)
1000はパスの数であり、128はキーサイズです。この関数は、base64を使用してデータベースに保存するバイナリキーを返します。
私の質問は、sha512を使用するpbkdf2の推奨キーサイズとソルトサイズは何ですか?
キーサイズ32は、キーサイズ128と同じくらい安全ですか?
1000 は反復回数であり、パスではありません。128 は端の長さです。
ウィキペディア(および暗号に関する私自身のわずかな知識)によると、128 ビット (または、求めているように 32 ビット) 以上を使用する必要があります。結果のキーのサイズは、ハッシュ衝突の可能性に相当します。256 (WPA2 のように) または 512 を使用しても問題はありません。また、CPU/メモリなどの問題でもありません。
また、1000 は、pbkdf2 の他の統合と比較して、反復の量が非常に少ないです。5000 または 10000 (iOS4 など) を簡単に使用できます。これにより、処理時間が 10 ミリ秒長くなる可能性がありますが、より強力なキーが作成されます (参照: 可能性のある攻撃者は 10k の反復も実行する必要があります。これにより、必要な時間が変更される可能性があります。 1 日から 10 日、または 1 か月からほぼ 1 年)。