Sdílet prostřednictvím


AesCryptoServiceProvider.IV Vlastnost

Definice

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

Byl proveden pokus o nastavení inicializačního vektoru na nullhodnotu .

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.

Platí pro