SymmetricAlgorithm.IV プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
対称アルゴリズムの初期化ベクトル (IV) を取得または設定します。
public:
virtual property cli::array <System::Byte> ^ IV { cli::array <System::Byte> ^ get(); void set(cli::array <System::Byte> ^ value); };
public virtual byte[] IV { get; set; }
member this.IV : byte[] with get, set
Public Overridable Property IV As Byte()
プロパティ値
初期化ベクター。
例外
初期化ベクターを null に設定しようとしました。
初期化ベクターを無効なサイズに設定しようとしました。
注釈
IV プロパティは、SymmetricAlgorithm クラスのいずれかの新しいインスタンスを作成するとき、または GenerateIV メソッドを手動で呼び出すときに、自動的に新しいランダム値に設定されます。 IV プロパティのサイズは、BlockSize プロパティを 8 で割った値と同じである必要があります。
SymmetricAlgorithm クラスから派生するクラスは、暗号ブロック チェーン (CBC) と呼ばれるチェーン モードを使用します。これには、データに対して暗号化変換を実行するためのキーと初期化ベクトルが必要です。 SymmetricAlgorithm クラスのいずれかを使用して暗号化されたデータを復号化するには、Key プロパティと IV プロパティを、暗号化に使用されたものと同じ値に設定する必要があります。
特定の秘密鍵 k について、初期化ベクトルを使用しない単純なブロック暗号は、プレーンテキストの同じ入力ブロックを同じ暗号テキストの出力ブロックに暗号化します。 プレーン テキスト ストリーム内に重複するブロックがある場合は、暗号テキスト ストリーム内に重複するブロックがあります。 許可されていないユーザーがプレーンテキストのブロックの構造について何かを知っている場合は、その情報を使用して既知の暗号テキスト ブロックを解読し、キーを回復することができます。 この問題に対処するために、前のブロックからの情報が次のブロックを暗号化するプロセスに混在します。 したがって、2 つの同一のプレーン テキスト ブロックの出力は異なります。 この手法では前のブロックを使用して次のブロックを暗号化するため、データの最初のブロックを暗号化するには初期化ベクトルが必要です。