SymmetricAlgorithm.IV Свойство

Определение

Получает или задает вектор инициализации (IV) для алгоритма симметричного шифрования.

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[]

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

Исключения

Предпринята попытка задания для вектора инициализации значения null.

Предпринята попытка задания недопустимого размера вектора инициализации.

Комментарии

Свойство IV автоматически присваивается новому случайному значению при создании нового экземпляра одного из SymmetricAlgorithm классов или при вызове GenerateIV метода вручную. Размер IV свойства должен совпадать со BlockSize значением свойства, разделенным на 8.

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

Для заданного секретного ключа k простой блочный шифр, который не использует вектор инициализации, зашифрует тот же входной блок обычного текста в тот же выходной блок шифра. Если в потоке обычного текста есть повторяющиеся блоки, в текстовом потоке шифра будут повторяться блоки. Если несанкционированные пользователи ничего не знают о структуре блока обычного текста, они могут использовать эти сведения для расшифровки известного текстового блока шифра и, возможно, восстановления ключа. Для борьбы с этой проблемой сведения из предыдущего блока смешиваются в процессе шифрования следующего блока. Таким образом, выходные данные двух идентичных блоков обычного текста отличаются. Так как этот метод использует предыдущий блок для шифрования следующего блока, для шифрования первого блока данных требуется вектор инициализации.

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

См. также раздел