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

В режиме СВС одинаковые блоки открытого текста при шифровании переходят в различные блоки шифр о-текста только, если отличались какие-то из предшествующих блоков открытого текста . Два идентичных сооб­щения, однако, будут шифроваться как один и тот же шифротекст . Что еще хуже, два одинаково начинающихся сообщения будут шифроваться одинаково, пока не появится первое различие .

У ряда сообщений может быть одинаковый заголовок - тема письма, строка "From" или еще что-нибудь. Хо­тя повтор блока будет невозможен, такое одинаковое начало может предоставить криптоаналитику какую-нибудь полезную информацию.

Избежать этого можно, шифруя в качестве первого блока какие-то случайные данные . Этот блок случайных данных называется вектором инициализации (initialization vector, IV), инициализирующей переменной или на­чальным значением сцепления. IV не имеет никакого смыслового значения, он используется только для того, чтобы сделать каждое сообщение уникальным. Когда получатель расшифровывает этот блок, он испольтзует его только для заполнения регистра обратной связи. Хорошим IV служит метка времени. Или используйте какие-нибудь случайные биты.

С использованием IV сообщения с идентичным открытым текстом при шифровании переходят в сообщения с различным шифротекстом. Следовательно, злоумышленник не сможет предпринять повтор блока, и затруд­нится создание шифровальной книги. Хотя рекомендуется для каждого сообщения, шифруемого одним и тем же ключом, выбирать уникальный IV, это требование не является обязательным.

IV не должен храниться в секрете, он может передаваться открыто вместе с шифротекстом . Если вы не по­нимаете почему, рассмотрите следующий довод. Пусть наше сообщение состоит из нескольких блоков: В,, В2, ..., Bt. В, шифруется вместе с IV. В2 шифруется с использованием шифротекста В, в роли IV. В3 шифруется с использованием шифротекста В2 в роли IV, и так далее. Итак, если количество блоков - и, то п-1 "векторов ини­циализации" открыты, даже если первоначальный IV хранится в секрете. Поэтому причин хранить в секрете IV нет, IV - это просто блок-заглушка, можно считать его нулевым блоком сцепления В0.


Набивка

Набивка используется также, как и в режиме ЕСВ, но в некоторых приложениях размер шифротекст должен в точности совпадать с размером открытого текста. Может быть, зашифрованный файл должен занять в точно­сти тот же объем памяти, что и файл открытого текста. В этом случае последний короткий блок придется шиф­ровать иначе. Пусть последний блок состоит из / битов. Зашифровав последний полный блок, снова зашифруйте шифротекст, выберите старшие / битов и выполните для них и короткого блока операцию XOR, создавая шиф­ротекст. Эта процедура показана на 5-й.



Рп-2