0

iOS アプリでオープンソースの暗号化ライブラリを使用しています。説明には、AES 256 ビット暗号化であると記載されています。これは、キー サイズのみが AES 256 ビットであることを意味しますか?

私が困惑しているのは、キー サイズが 256 であるのに、アルゴリズムとブロック サイズが 128 であるということです。では、ライブラリが使用している暗号化の種類と、それらが異なる理由は何ですか?

#define FBENCRYPT_ALGORITHM     kCCAlgorithmAES128
#define FBENCRYPT_BLOCK_SIZE    kCCBlockSizeAES128
#define FBENCRYPT_KEY_SIZE      kCCKeySizeAES256
4

4 に答える 4

3

これがAESの仕組みです。キーサイズに関係なく、ブロックサイズは128です。これは、128ビットのキーのみを使用することを意味するものではありません。ウィキペディアの記事の完全な情報。

于 2012-05-16T21:49:45.963 に答える
3

AESは128ビットのブロックサイズのみをサポートします。ただし、ベースとなっているRijndaelは、さまざまなブロックサイズをサポートしています。AES-128、192、および256の間にはいくつかの違いがあります(サブキーの派生はキーサイズに固有であり、ラウンド数が異なる場合があります)が、基礎となるアルゴリズムは同じであり、常に128ビット(16バイト)ブロックを使用します。

于 2012-05-16T21:50:47.337 に答える
3

これらの定数はCommonCryptor.hで宣言されており、役立つコメントが含まれています。

AESは、キーサイズに関係なく128ビットブロックを使用するブロック暗号です。したがって、これkCCAlgorithmAES128は一般的にAESにとって単なる「ロングハンド」です。

したがって、コードは、256ビットの暗号化キーを備えた標準のAESを使用していることを示しています。

于 2012-05-16T21:51:11.040 に答える
2

AES標準(FIPS-197)(Rijndaelアルゴリズムだけではありません)は次のように述べています。

この規格は、128、192、および256ビットの長さの暗号鍵を使用して128ビットのデータブロックを処理できる対称ブロック暗号であるRijndael アルゴリズム[ 3 ]および[ 4 ]指定 します。Rijndaelは、追加のブロックサイズとキーの長さを処理するように設計されていますが、この標準では採用されていません。

于 2012-05-16T21:50:36.593 に答える