3

C#で暗号化と復号化にAESアルゴリズムを使用しています。暗号化と復号化にAesCryptoServiceProviderクラスを使用しています。

ここにコードの私の設定があります

AesCryptoServiceProvider result = new AesCryptoServiceProvider();
result.BlockSize = 128;
result.KeySize = 256;
result.Mode = CipherMode.CBC;
result.Padding = PaddingMode.PKCS7;

ここで使用しているコードが AES 128 または AES 256 の実装であるかどうか、少し混乱しています。

簡単な質問は、AES 256 / AES 128 を使用していることを確認する方法です。

私はこのリンクを試しました: -aes

しかし、私は答えを得ませんでした。

4

2 に答える 2

7

AES 256 です。数字は鍵のサイズです。

ウィキペディアから:

厳密に言えば、AES 標準は、ブロック サイズが 128 ビットに制限されている Rijndael の変形です。

したがって、ブロック サイズは常に128 です。


(私が知る限り)AES-<Number>は常に非公式の省略表現であるため、公式のドキュメントを参照することはできません。研究論文を引用している Bruce Schneier のブログ投稿を紹介します。

AES は、最もよく知られており、最も広く使用されているブロック暗号です。その 3 つのバージョン (AES-128、AES-192、および AES-256) は、キー サイズ (128 ビット、192 ビット、および 256 ビット) とラウンド数 (それぞれ 10、12、および 14) が異なります。の場合 ...

ただし、Schneier は AES-256 よりも AES-128 を推奨しているため、クライアントはそのブログ投稿の残りの部分を気に入らないかもしれません。

于 2013-08-21T07:25:21.113 に答える
2

AES の公式仕様は FIPS-197 です。キーサイズとブロックサイズに関する次のテキストが含まれています。

1. Introduction

This standard specifies the Rijndael algorithm ([3] and [4]), a symmetric block cipher that can
process data blocks of 128 bits, using cipher keys with lengths of 128, 192, and 256 bits.
Rijndael was designed to handle additional block sizes and key lengths, however they are not
adopted in this standard.

Throughout the remainder of this standard, the algorithm specified herein will be referred to as
“the AES algorithm.” The algorithm may be used with the three different key lengths indicated
above, and therefore these different “flavors” may be referred to as “AES-128”, “AES-192”, and
“AES-256”.

コンテストの結果、NIST が Rijndael を AES として選択したため、これ以上信頼できるリファレンスを取得することはできません。

コードには CBC および PKCS#7 パディングも含まれていますが、これらは AES の仕様の一部ではないことに注意してください。ただし、CBC は NIST によって承認されたブロック暗号操作モードです (NIST SP 800-38A を参照)。その仕様では、パディング スキームが NIST によって考慮されていないことも言及されています。これは、おそらくセキュリティを提供するアルゴリズムとしてパディング スキームを使用すべきではないためです (つまり、ブロック暗号モードの場合)。

于 2013-08-31T21:22:26.110 に答える