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

Definition

Ruft den Initialisierungsvektor (IV) für den symmetrischen Algorithmus ab oder legt diesen fest.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()

Eigenschaftswert

Byte[]

Der Initialisierungsvektor.The initialization vector.

Ausnahmen

Es wurde versucht, den Initialisierungsvektor auf null festzulegen.An attempt was made to set the initialization vector to null.

Es wurde versucht, den Initialisierungsvektor auf eine ungültige Größe festzulegen.An attempt was made to set the initialization vector to an invalid size.

Hinweise

Die IV -Eigenschaft wird automatisch auf einen neuen Zufallswert festgelegt, wenn Sie eine neue Instanz SymmetricAlgorithm einer der-Klassen erstellen oder wenn Sie die GenerateIV -Methode manuell aufzurufen.The 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. Die Größe IV der Eigenschaft muss mit der BlockSize Eigenschaft dividiert durch 8 identisch sein.The size of the IV property must be the same as the BlockSize property divided by 8.

Die Klassen, die von der SymmetricAlgorithm -Klasse abgeleitet werden, verwenden einen Verkettungs Modus namens Verschlüsselungs Block Verkettung (CBC), der einen Schlüssel und einen Initialisierungs Vektor erfordert, um kryptografische Transformationen für Daten auszuführen.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. Zum Entschlüsseln von Daten, die mit einer der SymmetricAlgorithm -Klassen verschlüsselt wurden, müssen Sie die Key -Eigenschaft und die- IV Eigenschaft auf dieselben Werte festlegen, die für die Verschlüsselung verwendet wurden.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.

Bei einem geheimen Schlüssel kwird ein einfacher Blockchiffre, der keinen Initialisierungs Vektor verwendet, denselben Eingabe Block von Klartext in denselben Ausgabe Block mit verschlüsseltem Text verschlüsseln.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. Wenn ein nur-Text-Stream doppelte Blöcke enthält, sind in Ihrem Verschlüsselungs Textstream doppelte Blöcke vorhanden.If you have duplicate blocks within your plain text stream, you will have duplicate blocks within your cipher text stream. Wenn nicht autorisierte Benutzer etwas über die Struktur eines Blocks Ihres Klartext wissen, können Sie diese Informationen verwenden, um den bekannten Chiffre Text Block zu entschlüsseln und ggf. den Schlüssel wiederherzustellen.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. Um dieses Problem zu beheben, werden die Informationen aus dem vorherigen Block in den Prozess der Verschlüsselung des nächsten Blocks gemischt.To combat this problem, information from the previous block is mixed into the process of encrypting the next block. Folglich ist die Ausgabe von zwei identischen nur-Text-Blöcken anders.Thus, the output of two identical plain text blocks is different. Da diese Technik den vorherigen Block verwendet, um den nächsten Block zu verschlüsseln, ist ein Initialisierungs Vektor erforderlich, um den ersten Datenblock zu verschlüsseln.Because this technique uses the previous block to encrypt the next block, an initialization vector is needed to encrypt the first block of data.

Gilt für:

Siehe auch