SymmetricAlgorithm.IV SymmetricAlgorithm.IV SymmetricAlgorithm.IV SymmetricAlgorithm.IV Property

定義

対称アルゴリズムの初期化ベクター (IV) を取得または設定します。Gets or sets the initialization vector (IV) for the symmetric algorithm.

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()

プロパティ値

Byte[]

初期化ベクター。The initialization vector.

例外

初期化ベクターを null に設定しようとしました。An attempt was made to set the initialization vector to null.

初期化ベクターを無効なサイズに設定しようとしました。An attempt was made to set the initialization vector to an invalid size.

注釈

クラスの1つの新しいインスタンスを作成した場合、または手動でメソッドをIV GenerateIV呼び出した場合、プロパティは自動的に新しいランダムな値に設定されます。 SymmetricAlgorithmThe IV property is automatically set to a new random value whenever you create a new instance of one of the SymmetricAlgorithm classes or when you manually call the GenerateIV method. IVプロパティのサイズは、 BlockSizeプロパティが8で割った値と同じである必要があります。The size of the IV property must be the same as the BlockSize property divided by 8.

SymmetricAlgorithmクラスから派生するクラスは、暗号ブロックチェーン (CBC) と呼ばれるチェーンモードを使用します。これには、キーと初期化ベクターを使用してデータの暗号化変換を実行する必要があります。The classes that derive from the SymmetricAlgorithm class use a chaining mode called cipher block chaining (CBC), which requires a key and an initialization vector to perform cryptographic transformations on data. SymmetricAlgorithmクラスの1つを使用して暗号化されたデータを復号化KeyするにIVは、プロパティとプロパティを、暗号化に使用したのと同じ値に設定する必要があります。To decrypt data that was encrypted using one of the SymmetricAlgorithm classes, you must set the Key property and IV property to the same values that were used for encryption.

特定の秘密キー kの場合、初期化ベクターを使用しない単純なブロック暗号では、プレーンテキストの同じ入力ブロックが暗号テキストの同じ出力ブロックに暗号化されます。For a given secret key k, a simple block cipher that does not use an initialization vector will encrypt the same input block of plain text into the same output block of cipher text. プレーンテキストストリーム内に重複するブロックがある場合は、暗号テキストストリーム内に重複するブロックがあります。If you have duplicate blocks within your plain text stream, you will have duplicate blocks within your cipher text stream. 承認されていないユーザーがプレーンテキストのブロックの構造に関する知識を持っている場合、その情報を使用して既知の暗号文ブロックを解読し、場合によってはキーを回復することができます。If unauthorized users know anything about the structure of a block of your plain text, they can use that information to decipher the known cipher text block and possibly recover your key. この問題に対処するために、前のブロックの情報は、次のブロックを暗号化するプロセスに組み込まれています。To combat this problem, information from the previous block is mixed into the process of encrypting the next block. したがって、2つの同じプレーンテキストブロックの出力は異なります。Thus, the output of two identical plain text blocks is different. この手法では、前のブロックを使用して次のブロックを暗号化するため、データの最初のブロックを暗号化するために初期化ベクターが必要になります。Because this technique uses the previous block to encrypt the next block, an initialization vector is needed to encrypt the first block of data.

適用対象

こちらもご覧ください