SymmetricAlgorithm.IV Eigenschaft

Definition

Ruft den Initialisierungsvektor (IV) für den symmetrischen Algorithmus ab oder legt diesen fest.

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.

Ausnahmen

Es wurde versucht, den Initialisierungsvektor auf null festzulegen.

Es wurde versucht, den Initialisierungsvektor auf eine ungültige Größe festzulegen.

Hinweise

Die IV -Eigenschaft wird automatisch auf einen neuen Zufallswert festgelegt, wenn Sie eine neue Instanz einer der Klassen erstellen SymmetricAlgorithm oder die -Methode manuell GenerateIV aufrufen. Die Größe der IV Eigenschaft muss mit der Durch BlockSize 8 geteilten Eigenschaft identisch sein.

Die von der -Klasse abgeleiteten Klassen SymmetricAlgorithm verwenden einen Verkettungsmodus namens Verschlüsselungsblockkette (Cipher Block Chaining, CBC), der einen Schlüssel und einen Initialisierungsvektor erfordert, um kryptografische Transformationen für Daten auszuführen. Zum Entschlüsseln von Daten, die mit einer der -Klassen verschlüsselt SymmetricAlgorithm wurden, müssen Sie die -Eigenschaft und die Key IV -Eigenschaft auf die gleichen Werte festlegen, die für die Verschlüsselung verwendet wurden.

Für einen bestimmten geheimen Schlüssel k verschlüsselt eine einfache Blockchiffre, die keinen Initialisierungsvektor verwendet, denselben Eingabeblock von Nur-Text in denselben Ausgabeblock von Chiffretext. Wenn Sie in Ihrem Nur-Text-Stream doppelte Blöcke haben, sind doppelte Blöcke in Ihrem Verschlüsselungstextstream enthalten. Wenn nicht autorisierte Benutzer etwas über die Struktur eines Blocks Ihres Nur-Texts wissen, können sie diese Informationen verwenden, um den bekannten Verschlüsselungstextblock zu entschlüsseln und möglicherweise Ihren Schlüssel wiederherzustellen. Um dieses Problem zu beheben, werden Informationen aus dem vorherigen Block in den Prozess der Verschlüsselung des nächsten Blocks gemischt. Daher unterscheidet sich die Ausgabe von zwei identischen Nur-Text-Blöcken. Da bei dieser Technik der vorherige Block verwendet wird, um den nächsten Block zu verschlüsseln, wird ein Initialisierungsvektor benötigt, um den ersten Datenblock zu verschlüsseln.

Gilt für

Siehe auch