7

暗号化用のキーを生成するときに、「AES」などのアルゴリズムを指定する必要がある理由について混乱しています。

KeyGenerator kg = KeyGenerator.getInstance("AES");

AES キーは 128、192、または 256 ビットになる可能性があるため、キーのサイズを指定するために使用されないことは明らかです。その部分はinit()を介して行われます...

kg.init(256, new SecureRandom());
SecretKey key = kg.generateKey();

参考までに、上記のサンプル コードはhttp://android-developers.blogspot.de/2013/02/using-cryptography-to-store-credentials.htmlから借用したものです。

さらに、NIST FIPS-197 は次のように述べています...

AES アルゴリズムでは弱いキーまたは準弱いキーは特定されておらず、キーの選択に制限はありません。

...だから、128、192、または 256 ビットのいずれかをキーとして使用できると信じるようになります。

明らかに、暗号インスタンスを取得するときに「AES」を指定します。

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");

...使用する暗号アルゴリズムを示すために必要です。キー生成のためにそれを指定する目的が何なのかわかりません。

ありがとう。

4

1 に答える 1