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
Inicializační vektor.
Výjimky
Byl proveden pokus o nastavení inicializačního vektoru na null
hodnotu .
Byl proveden pokus o nastavení inicializačního vektoru na neplatnou velikost.
Poznámky
Vlastnost IV se automaticky nastaví na novou náhodnou hodnotu při každém vytvoření nové instance některé z SymmetricAlgorithm tříd nebo při ručním volání GenerateIV metody. Velikost IV vlastnosti musí být stejná jako BlockSize vlastnost dělená hodnotou 8.
Třídy odvozené z SymmetricAlgorithm třídy používají režim řetězení označovaný jako CBC (Cipher Block Chaining), který vyžaduje klíč a inicializační vektor k provádění kryptografických transformací dat. Chcete-li dešifrovat data, která byla zašifrována pomocí jedné z SymmetricAlgorithm tříd, je nutné nastavit Key vlastnost a IV vlastnost na stejné hodnoty, které byly použity pro šifrování.
Pro daný tajný klíč k jednoduchá bloková šifra, 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 duplicitní bloky v rámci streamu prostého textu, budete mít duplicitní bloky v rámci šifrovacího textového streamu. Pokud neautorizovaní uživatelé ví 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ému 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 se tedy liší. Vzhledem k tomu, že tato technika používá předchozí blok k zašifrování dalšího bloku, je k zašifrování prvního bloku dat nutný inicializační vektor.