AesCryptoServiceProvider.IV Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví inicializační vektor (IV) pro symetrický algoritmus.
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()
Hodnota vlastnosti
- Byte[]
Inicializační vektor.
Výjimky
Došlo k pokusu o nastavení inicializačního vektoru na null
.
Došlo k pokusu o nastavení inicializačního vektoru na neplatnou velikost.
Poznámky
Vlastnost IV se automaticky nastaví na novou náhodnou hodnotu pokaždé, když vytvoříte novou instanci jedné z SymmetricAlgorithm tříd nebo při ručním GenerateIV volání metody. Velikost IV vlastnosti musí být stejná jako BlockSize vlastnost dělená 8.
Třídy odvozené z SymmetricAlgorithm třídy používají režim řetězení označovaný jako řetězení bloků šifry (CBC), který vyžaduje klíč a inicializační vektor k provádění kryptografických transformací dat. Chcete-li dešifrovat data zašifrovaná pomocí jedné z SymmetricAlgorithm tříd, musíte vlastnost a IV vlastnost nastavit Key na stejné hodnoty, které byly použity k šifrování.
Pro daný tajný klíč k jednoduchý blok šifry, která nepoužívá inicializační vektor, zašifruje stejný vstupní blok prostého textu do stejného výstupního bloku šifrového textu. Pokud máte ve streamu prostého textu duplicitní bloky, budete mít v rámci datového proudu šifrového textu duplicitní bloky. Pokud neautorizovaní uživatelé znají něco o struktuře bloku vašeho prostého textu, můžou tyto informace použít k dešifrování známého bloku šifrovaného textu a případně obnovení klíče. Pro boj s tímto problémem se informace z předchozího bloku směšují do procesu šifrování dalšího bloku. Výstup dvou identických bloků prostého textu je tedy odlišný. Vzhledem k tomu, že tato technika používá předchozí blok k šifrování dalšího bloku, je potřeba inicializační vektor k šifrování prvního bloku dat.