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

Определение

Получает или задает вектор инициализации (IV) для алгоритма симметричного шифрования.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()

Значение свойства

Byte[]

Вектор инициализации.The initialization vector.

Исключения

Предпринята попытка задания для вектора инициализации значения null.An attempt was made to set the initialization vector to null.

Предпринята попытка задания недопустимого размера вектора инициализации.An attempt was made to set the initialization vector to an invalid size.

Комментарии

IV Свойству автоматически присваивается новое случайное значение при каждом создании нового экземпляра одного из SymmetricAlgorithm классы или когда вручную вызвать GenerateIV метод.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. Размер IV свойство должно быть таким же, как BlockSize свойства, разделенное на 8.The size of the IV property must be the same as the BlockSize property divided by 8.

Классы, производные от SymmetricAlgorithm класса используют режим сцепления блоков шифра (CBC), вызывается которого требуется ключ и вектор инициализации для осуществления криптографических преобразований данных.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. Чтобы расшифровать данные, зашифрованные с помощью одного из SymmetricAlgorithm классов, необходимо задать Key свойство и IV свойства те же значения, которые использовались для шифрования.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.

Для заданного закрытого ключа k, простой блочный шифр, не использующий вектор инициализации, зашифрует одинаковые входные блоки обычного текста в одинаковые выходные блоки зашифрованного текста.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. При наличии дублированных блоков в потоке в виде обычного текста, вы получите одинаковые блоки внутри потока текста шифра.If you have duplicate blocks within your plain text stream, you will have duplicate blocks within your cipher text stream. Если неавторизованные пользователи подозревающий о структуре блока открытого текста, они могут использовать эту информацию для расшифровки блока известных зашифрованного текста и секретного ключа.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. Для борьбы с этой проблемой, сведения из предыдущего блока используется в процессе шифрования следующего блока.To combat this problem, information from the previous block is mixed into the process of encrypting the next block. Таким образом выходные данные из двух идентичных текстовых блоков отличается.Thus, the output of two identical plain text blocks is different. Так как этот метод использует предыдущий блок для шифрования следующего блока, вектор инициализации необходим для шифрования первого блока данных.Because this technique uses the previous block to encrypt the next block, an initialization vector is needed to encrypt the first block of data.

Применяется к

Дополнительно