SymmetricAlgorithm.IV SymmetricAlgorithm.IV SymmetricAlgorithm.IV SymmetricAlgorithm.IV Property

Definice

Získá nebo nastaví inicializační vektor (IV) pro symetrický algoritmus.Gets or sets the initialization vector (IV) for the symmetric algorithm.

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()

Hodnota vlastnosti

Byte[]

Inicializační vektor.The initialization vector.

Výjimky

Nastavit inicializační vektor byl proveden pokus o null.An attempt was made to set the initialization vector to null.

Byl proveden pokus o nastavení inicializační vektor neplatnou velikost.An attempt was made to set the initialization vector to an invalid size.

Poznámky

IV Je automaticky nastavena na novou náhodnou hodnotu pokaždé, když vytvoříte novou instanci jednoho z SymmetricAlgorithm třídy nebo ručně zavoláním GenerateIV metody.The IV property is automatically set to a new random value whenever you create a new instance of one of the SymmetricAlgorithm classes or when you manually call the GenerateIV method. Velikost IV vlastnost musí být stejné jako BlockSize vlastnost dělený 8.The size of the IV property must be the same as the BlockSize property divided by 8.

Třídy, které jsou odvozeny z SymmetricAlgorithm třída použít řetězení takzvané šifrování bloku řetězení (CBC), což vyžaduje klíče a inicializačního vektoru k provedení kryptografické transformace na data.The classes that derive from the SymmetricAlgorithm class use a chaining mode called cipher block chaining (CBC), which requires a key and an initialization vector to perform cryptographic transformations on data. Dešifrovat data zašifrovaná pomocí jedné z SymmetricAlgorithm třídy, je nutné nastavit Key vlastnost a IV vlastnost stejné hodnoty, které byly použity pro šifrování.To decrypt data that was encrypted using one of the SymmetricAlgorithm classes, you must set the Key property and IV property to the same values that were used for encryption.

Pro daný tajný klíč k, bude jednoduchá bloková šifra, která nepoužívá inicializační vektor bude šifrovat stejný vstupní blok prostého textu do stejného výstupního bloku šifrovaného textu.For a given secret key k, a simple block cipher that does not use an initialization vector will encrypt the same input block of plain text into the same output block of cipher text. Pokud máte duplicitní bloky v rámci vašeho datového proudu jako prostý text, budete mít duplicitní bloky v rámci vašich šifrovacích textového datového proudu.If you have duplicate blocks within your plain text stream, you will have duplicate blocks within your cipher text stream. Pokud neoprávněným uživatelům vědět nic o struktuře blok prostého textu, že pomocí těchto informací dešifrovat blok textu známé šifer a případně obnovit klíč.If unauthorized users know anything about the structure of a block of your plain text, they can use that information to decipher the known cipher text block and possibly recover your key. K boji proti tomuto problému, je do procesu šifrování další blok kombinovat informace z předchozího bloku.To combat this problem, information from the previous block is mixed into the process of encrypting the next block. Díky tomu se výstup ze dvou bloků identické prostého textu se liší.Thus, the output of two identical plain text blocks is different. Vzhledem k tomu tento postup používá k šifrování další blok předchozí blok, je potřeba šifrovat první blok dat inicializační vektor.Because this technique uses the previous block to encrypt the next block, an initialization vector is needed to encrypt the first block of data.

Platí pro

Viz také