Freigeben über


SymmetricAlgorithm.IV Eigenschaft

Definition

Dient zum Abrufen oder Festlegen des Initialisierungsvektors (IV) für den symmetrischen Algorithmus.

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

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 SymmetricAlgorithm Klassen erstellen oder die GenerateIV Methode manuell aufrufen. Die Größe der IV Eigenschaft muss mit der BlockSize Durch 8 geteilten Eigenschaft identisch sein.

Die klassen, die von der SymmetricAlgorithm Klasse abgeleitet werden, verwenden einen Verkettungsmodus namens Chiffreblockketten (CBC), der einen Schlüssel und einen Initialisierungsvektor erfordert, um kryptografische Transformationen für Daten durchzuführen. Um Daten zu entschlüsseln, die mit einer der SymmetricAlgorithm Klassen verschlüsselt wurden, müssen Sie die Key Eigenschaft und IV Eigenschaft auf die gleichen Werte festlegen, die für die Verschlüsselung verwendet wurden.

Bei einem bestimmten geheimen Schlüssel k verschlüsselt eine einfache Blockchiffre, die keinen Initialisierungsvektor verwendet, den gleichen Eingabeblock von Nur-Text in den gleichen Ausgabeblock von Chiffretext. Wenn Sie in Ihrem Nur-Text-Datenstrom doppelte Blöcke haben, verfügen Sie über doppelte Blöcke innerhalb des Chiffretextstreams. Wenn nicht autorisierte Benutzer etwas über die Struktur eines Blocks Ihres Nur-Texts wissen, können sie diese Informationen verwenden, um den bekannten Chiffretextblock zu entschlüsseln und möglicherweise Ihren Schlüssel wiederherzustellen. Um dieses Problem zu bekämpfen, werden Informationen aus dem vorherigen Block in den Prozess der Verschlüsselung des nächsten Blocks gemischt. Daher ist die Ausgabe von zwei identischen Nur-Text-Blöcken unterschiedlich. Da diese Technik den vorherigen Block verwendet, um den nächsten Block zu verschlüsseln, wird ein Initialisierungsvektor benötigt, um den ersten Datenblock zu verschlüsseln.

Gilt für:

Weitere Informationen