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


В криптографии вектор инициализации ( IV ) или начальная переменная ( SV ) [1] является входом в криптографический примитив , используемый для обеспечения начального состояния. Обычно IV должен быть случайным или псевдослучайным , но иногда IV должен быть только непредсказуемым или уникальным. Рандомизация имеет решающее значение для некоторых схем шифрования для достижения семантической безопасности , свойства, благодаря которому повторное использование схемы с одним и тем же ключомне позволяет злоумышленнику вывести отношения между (потенциально похожими) сегментами зашифрованного сообщения. Для блочных шифров использование IV описывается режимами работы .

Для некоторых криптографических примитивов требуется, чтобы IV был неповторяющимся, а требуемая случайность определяется внутренним образом. В этом случае IV обычно называют одноразовым номером ( числом, используемым один раз ), а примитивы (например , CBC ) считаются с сохранением состояния , а не рандомизированными . Это связано с тем, что IV не нужно явно пересылать получателю, но он может быть получен из общего состояния, обновленного как на стороне отправителя, так и на стороне получателя. (На практике короткий одноразовый номер по-прежнему передается вместе с сообщением для учета потери сообщения.) Примером схем шифрования с отслеживанием состояния является режим работы счетчика , который имеет порядковый номер для одноразового номера.

Размер IV зависит от используемого криптографического примитива; для блочных шифров это обычно размер блока шифра. В схемах шифрования непредсказуемая часть IV имеет в лучшем случае тот же размер, что и ключ, чтобы компенсировать атаки компромисса между временем/памятью/данными . [2] [3] [4] [5] При случайном выборе IV необходимо учитывать вероятность коллизий из-за проблемы дня рождения . Традиционные потоковые шифры, такие как RC4 , не поддерживают явный IV в качестве входных данных, и требуется специальное решение для включения IV в ключ или внутреннее состояние шифра. Известно, что некоторые конструкции, реализованные на практике, ненадежны; WEP _протокол является ярким примером и подвержен атакам, связанным с IV.

Блочный шифр является одним из самых основных примитивов в криптографии и часто используется для шифрования данных . Однако сам по себе он может использоваться только для кодирования блока данных предопределенного размера, называемого размером блока . Например, один вызов алгоритма AES преобразует 128-битный блок открытого текста в блок зашифрованного текста размером 128 бит. Ключ _, который дается как один из входных данных для шифра, определяет отображение между открытым текстом и зашифрованным текстом. Если необходимо зашифровать данные произвольной длины, простая стратегия состоит в том, чтобы разделить данные на блоки, каждый из которых соответствует размеру блока шифра, и зашифровать каждый блок отдельно, используя один и тот же ключ. Этот метод не является безопасным, так как одинаковые блоки открытого текста преобразуются в одинаковые зашифрованные тексты, и третья сторона, наблюдающая за зашифрованными данными, может легко определить их содержимое, даже не зная ключа шифрования.


Ненадежное шифрование изображения в результате кодирования в режиме электронной кодовой книги .