logo
MethodFull

Режим сцепления блоков шифра.

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

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

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

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

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

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

Набивка

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

Шифрование короткого последнего блока в режимеСВС.

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

Лучшим способом является похищение щифротекста (см. 4th). Рп_] - последний полный блок открытого текста, Рп - заключительный, короткий блок открытого текста. С„_; - последний полный блок шифротекста, С„ -заключительный, короткий блок шифротекста. С" - это просто промежуточный результат, не являющийся ч а-стью переданного шифротекста. Преимуществом этого метода является то, что все биты открытого текста соо б-щения проходят через алгоритм шифрования.

Похищение шифротекста в режимеСВС.

Распространение ошибки

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

ленный открытый текст будет содержать ту же единственную ошибку.

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

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

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

Вопросы безопасности

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

При использовании СВС вы должны структурировать ваш открытый текст так, чтобы вы знали, где находя т-ся концы сообщений, и могли обнаружить добавление лишних блоков .

Во вторых, Мэллори может изменить блок шифротекста, изменения определенным образом блоки расши ф-рованного открытого текста. Например, если Мэллори изменит один бит шифротекста, весь блок будет расши ф-рован неправильно, а в следующем блоке в соответствующей позиции будет неправильный бит . Возможны си­туации, когда это нежелательно. Открытое сообщения должно обладать некоторой избыточностью или среде т-вами идентификации.

Наконец, хотя структура открытого текста маскируется сцеплением, структура очень длинных сообщений все равно будет заметна. Парадокс дня рождения предсказывает, что после 2т/2 блоков, где т - размер блока, появ­ляются одинаковые блоки. Для 64-битового блока длина такого сообщения примерно равны 32 Гбайтам. По­добная проблема возникает только для сообщений немаленького размера.