0

そのため、RijndaelManagedクラス (.NET 2.0) を使用して、構成ファイル内の小さな文字列 (約 12 文字以下) に対して AES-128 CBC 暗号化を実行しています。データを復号化するときにパディングバイトが削除されないことを除いて、すべてが正常に機能しています。パディングを行わないことを選択できることは理解していますが、それは非常に安全ではなく、パディングバイトを追加する必要があることを理解しています. 現在、暗号ランダムバイトを自動的に追加PaddingMode.ISO10126できるようにするために使用しています。CryptoStream

これを処理する業界標準の方法は何ですか? 復号化時にこれらの「余分なバイト」を取り除く正しい方法は何ですか?

4

1 に答える 1

1

もちろん、パディングを取り除く最善の方法は、GregS が提案したように、代わりに PKCS#7 パディングを使用し、暗号インスタンスにパディングを取り除くことです。

現在、暗号化を実行する最善の方法は、代わりに CTR モード暗号化を使用することです。GCM などの認証/整合性保護を含む暗号を使用することをお勧めします。ただし、小さな文字列の場合、暗号文のサイズによって情報が明らかにならないように注意する必要があります (「はい」で CTR モード暗号化を実行した結果は 3 バイトになり、「いいえ」では 2 バイトになります)。

于 2012-07-06T23:27:06.023 に答える