Чтобы воспользоваться алгоритмом DES для решения разнообразных криптографических задач, разработаны четыре рабочих режима:
1. электронная кодовая книга ЕСВ (Electronic Code Book);
2. сцепление блоков шифра СВС (Cipher Block Chaining);
3. обратная связь по шифротексту СРВ (Cipher FeedBack);
4. обратная связь по выходу OFB (Output FeedBack).
Режим "Электронная кодовая книга"
Длинный файл разбивают на 64‑битые отрезки (блоки) по 8 байт. Каждый из этих блоков шифруют независимо с использованием одного и того же ключа шифрования (рис. 5.4).
Основное достоинство ‑ простота реализации. Недостаток ‑ относительно слабая устойчивость против квалифицированных криптоаналитиков. Из-за фиксированного характера шифрования при ограниченной длине блока 64 бита возможно проведение криптоанализа "со словарем". Блок такого размера может повториться в сообщении вследствие большой избыточности в тексте на естественном языке. Это приводит к тому, что идентичные блоки открытого текста в сообщении будут представлены идентичными блоками шифротекста, что дает криптоаналитику некоторую информацию о содержании сообщения.
|
|
Режим "Сцепление блоков шифра"
В этом режиме исходный файл разбивается на 64‑битые блоки: . Первый блок складывается по модулю 2 с 64‑битовым начальным вектором , который меняется ежедневно и держится в секрете (рис. 5.5). Полученная сумма затем шифруется с использованием ключа DES, известного и отправителю, и получателю информации. Полученный 64‑битовый шифр складывается по модулю 2 со вторым блоком текста, результат шифруется и получается второй 64‑битовый шифр и т.д. Процедура повторяется до тех пор, пока не будут обработаны все блоки текста.
Таким образом, для всех ( ‑ число блоков) результат шифрования определяется следующим образом: , где ‑ начальное значение шифра, равное начальному вектору (вектору инициализации).
Очевидно, что последний 64‑битовый блок шифротекста является функцией секретного ключа, начального вектора и каждого бита открытого текста независимо от его длины. Этот блок шифротекста называют кодом аутентификации сообщения (КАС).
Код КАС может быть легко проверен получателем, владеющим секретным ключом и начальным вектором, путем повторения процедуры, выполненной отправителем. Посторонний, однако, не может осуществить генерацию КАС, который воспринялся бы получателем как подлинный, чтобы добавить его к ложному сообщению, либо отделить КАС от истинного сообщения для использования его с измененным или ложным сообщением.
Достоинство данного режима в том, что он не позволяет накапливаться ошибкам при передаче.
|
|
Блок является функцией только и . Поэтому ошибка при передаче приведет к потере только двух блоков исходного текста.
Режим "Обратная связь по шифротексту"
В этом режиме размер блока может отличаться от 64 бит (рис 5.6). Файл, подлежащий шифрованию (расшифровыванию), считывается последовательными блоками длиной бит ().
Входной блок (64‑битовый регистр сдвига) вначале содержит вектор инициализации, выровненный по правому краю. Предположим, что в результате разбиения на блоки мы получили блоков длиной бит каждый (остаток дописывается нулями или пробелами). Тогда для любого блок шифротекста , где обозначает старших бит предыдущего зашифрованного блока.
Обновление сдвигового регистра осуществляется путем удаления его старших бит и записи в регистр. Восстановление зашифрованных данных также выполняется относительно просто: и вычисляются аналогичным образом и .
Режим "Обратная связь по выходу"
Этот режим тоже использует переменный размер блока и сдвиговый регистр, инициализируемый так же, как в режиме СРВ, а именно ‑ входной блок вначале содержит вектор инициализации , выровненный по правому краю (рис. 5.7). При этом для каждого сеанса шифрования данных необходимо использовать новое начальное состояние регистра, которое должно пересылаться по каналу открытым текстом.
Положим для всех , где ‑ старшие бит операции . Отличие от режима обратной связи по шифротексту состоит в методе обновления сдвигового регистра.
Это осуществляется путем отбрасывания старших бит и дописывания справа .