私はPBKDF2でキーを生成するためにこのコードスニペットを持っています。PBKDF2 - SHA512で1024ビットの鍵長を生成するとどうなりますか?
SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA512");
PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt.getBytes(), iterations, length);
SecretKey key = skf.generateSecret(spec);
byte[] res = key.getEncoded();
キーの長さが指定されたSHAダイジェストアルゴリズムの種類よりも長い場合、どのように生成されるのだろうか?
たとえば、キーの長さを1024ビットに設定し、アルゴリズムPBKDF2WithHmacSHA512
を使用するとどうなりますか? 512ビットはどこで生成されますか?次のようにPBKDF2
dkLen is the desired length of the derived key
DK is the generated derived key
当たり
PBKDF2アルゴリズムの内部動作とストレッチの仕組みについて質問していますか? –
https://tools.ietf.org/html/rfc2898#section-5.2しかし、256ビットを超えるキー素材を使用する任意の(単一の)対称アルゴリズムは非常識です –
@ dave_thompson_085これより長い出力を提供することが望ましいかもしれませんワンショットのキーとIVの両方 – zaph