AesCryptoServiceProvider.IV Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 override byte[] IV { get; set; }
member this.IV : byte[] with get, set
Public Overrides 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 SymmetricAlgorithm Klassen erstellen oder die Methode manuell aufrufen GenerateIV . Die Größe der IV Eigenschaft muss identisch mit der Eigenschaft sein, die BlockSize durch 8 geteilt wird.
Die Klassen, die von der SymmetricAlgorithm Klasse abgeleitet werden, verwenden einen Verketteungsmodus namens Verschlüsselungsblockkette (CBC), der einen Schlüssel und einen Initialisierungsvektor benötigt, um kryptografische Transformationen für Daten auszuführen. Um Daten zu entschlüsseln, die mithilfe einer der SymmetricAlgorithm Klassen verschlüsselt wurden, müssen Sie die Eigenschaft und IV Eigenschaft auf die gleichen Werte festlegen, die Key für die Verschlüsselung verwendet wurden.
Bei einem bestimmten geheimen Schlüssel k verschlüsselt eine einfache Blockverschlüsselung, die keinen Initialisierungsvektor verwendet, den gleichen Eingabeblock von Nur-Text in den gleichen Ausgabeblock von Verschlüsselungstext. Wenn Sie doppelte Blöcke innerhalb Ihres Nur-Text-Datenstroms haben, verfügen Sie über doppelte Blöcke innerhalb Ihres Verschlüsselungstextstroms. Wenn nicht autorisierte Benutzer etwas über die Struktur eines Blocks Ihres Einfachen 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 bekämpfen, 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-Textblöcken. Da diese Technik den vorherigen Block verwendet, um den nächsten Block zu verschlüsseln, ist ein Initialisierungsvektor erforderlich, um den ersten Datenblock zu verschlüsseln.