4

暗号化と、暗号化がキーと初期化ベクトルの生成にどのように影響するかについて頭を悩ませています。

TripleDESCryptoServiceProviderASCIIエンコーディングを使用して24バイトのキーと8バイトの初期化ベクトルを必要とするを使用しています。別のエンコーディングを使用することにした場合、これはキーの生成と初期化ベクトルにどのように影響しますか?

代わりにUTF8/16/32を使用する必要があるエンコーディングはどれですか?

ありがとうございました

4

2 に答える 2

2

暗号化パラメータは、選択したエンコーディングとはまったく関係ありません。暗号化パラメータは常にバイト単位で定義されます。エンコーディングは、文字をバイトに変換し、バイトを文字に戻すことに関係しています。それらが「衝突」する唯一の場所は、パスワードを使用して暗号化キーを生成することです。Rfc2898DeriveBytesのように、これを行うために特別に設計されたクラスを使用する必要があります。

ほとんどの場合、ASCII エンコーディングが使用されており、プログラマーは UTF8 エンコーディングを使用した方が適切でした。UTF8 エンコーディングは、ASCII エンコーディングとまったく同じ方法で ASCII 文字をエンコードおよびデコードしますが、残りのすべての Unicode も正しく効率的にエンコードします。非 ASCII 文字が検出されたときに例外を生成する必要がある場合は、ASCII エンコードを使用します。

于 2010-07-09T12:02:22.493 に答える
0

私は専門家ではありませんが、TripleDES はもはや十分に安全であるとは考えられていません。Microsoft の推奨事項は、AES 256 ビット以上を使用することです。テキストエンコーディングが暗号化の強度に影響を与えるとは思わず、「プレーンテキスト」キーと IV の長さだけが影響します。

于 2010-07-09T12:12:15.597 に答える