Основные режимы работы алгоритма DES
Алгоритм DES можно использовать как для шифрования, так и для аутентификации данных. Он позволяет непосредственно преобразовывать 64-битовый входной открытый текст в 64-битовый выходной шифрованный текст. Однако данные редко ограничиваются 64 разрядами.
Чтобы воспользоваться алгоритмом DES для решения разнообразных криптографических задач, разработаны четыре рабочих режима использования алгоритма:
электронная кодовая книга ЕСВ (Electronic Code Book);
сцепление блоков шифра СВС (Cipher Block Chaining);
обратная связь по шифротексту CFB (Cipher Feed Back);
обратная связь по выходу OFB (Output Feed Back).
Режим "Электронная кодовая книга" (ECB).
Сообщение разбивают на 64-битовые отрезки (блоки) по 8 байтов. Каждый из этих блоков шифруют независимо с использованием одного и того же ключа шифрования (рис. 19).
Основное достоинство - простота реализации. Недостаток - относительно слабая устойчивость против квалифицированных криптоаналитиков. Из-за фиксированного характера шифрования при ограниченной длине блока 64 бита возможно проведение криптоанализа "со словарем". Блок такого размера может повториться в сообщении вследствие большой избыточности в тексте на естественном языке.
Рис. 19. Схема алгоритма DES в режиме электронной
кодовой книги
Это приводит к тому, что идентичные блоки открытого текста в сообщении будут представлены идентичными блоками шифротекста, что дает криптоаналитику некоторую информацию о содержании сообщения.
Режим "Сцепление блоков шифра" (СВС).
В этом режиме исходный файл М разбивается на 64-битовые блоки: М = M1M2...Mn. Первый блок М1 складывается по модулю 2 с 64-битовым начальным вектором IV, который меняется ежедневно и держится в секрете (рис. 20). Полученная сумма затем шифруется с использованием ключа DES, известного и отправителю, и получателю информации. Полученный 64-битовый шифр С1 складывается по модулю 2 со вторым блоком текста, результат шифруется и получается второй 64-битовый шифр С2, и т.д. Процедура повторяется до тех пор, пока не будут обработаны все блоки текста.
Рис. 20. Схема алгоритма DES в режиме сцепления
блоков шифра
Таким образом, для всех i = 1...n (n - число блоков) результат шифрования Cij определяется следующим образом: Сi =DES (Mi + Сi-1), где С0 = IV - начальное значение шифра, равное начальному вектору (вектору инициализации).
Очевидно, что последний 64-битовый блок шифротекста является функцией секретного ключа, начального вектора и каждого бита открытого текста независимо от его длины. Этот последний блок шифротекста называют кодом аутентификации сообщения (КАС).
Код КАС может быть легко проверен получателем, владеющим секретным ключом и начальным вектором, путем повторения процедуры, выполненной отправителем. Посторонний, однако, не может осуществить генерацию КАС, который воспринялся бы получателем как подлинный, чтобы добавить его к ложному сообщению, либо отделить КАС от истинного сообщения для использования его с измененным или ложным сообщением.
Достоинство данного режима в том, что он не позволяет накапливаться ошибкам при передаче.
Блок Мi является функцией только Сi-1 и Ci. Поэтому ошибка при передаче приведет к потере только двух блоков исходного текста.
Режим "Обратная связь по шифру" (CFB).
В этом режиме размер блока может отличаться от 64 бит (рис. 21). Файл, подлежащий шифрованию (расшифрованию), считывается последовательными блоками длиной к битов (к =1 ...64).
Схема шифрования реализуется следующим образом.
1. Исходное сообщение (файл) разбивается на блоки длиной к битов каждый (остаток дописывается нулями или пробелами).
2. Задается входной блок (называется 64-битовый регистр сдвига), который содержит 64-битовый вектор инициализации.
3. Входной блок подвергается DES шифрованию.
4. Полученный после шифрования блок разделяется на k старших бит и 64-k бит. K старших бит складываются по модулю 2 с k битами открытого текста. Блок, полученный после сложения, является k битовым блоком шифротекста.
5. k битовый блок шифротекста участвует в обновлении регистра сдвига. Из входного блока удаляются k старших битов, остальные биты сдвигаются влево и на освободившееся место записывается k битовый блок шифротекста.
6. Процесс шифрования заканчивается, когда будут зашифрованы все блоки открытого текста.
Рис. 21. Схема алгоритма DES в режиме обратной связи по шифротексту
Таким образом, получение i =1...п блоков шифротекста осуществляется по формуле:
Сi = Мi + Рi-1,
где Рi-1 обозначает к старших битов предыдущего зашифрованного блока.
Восстановление зашифрованных данных также выполняется относительно просто: Pi-1 и Сi вычисляются аналогичным образом и
Мi = Сi + Pi-1.
Режим "Обратная связь по выходу" (OFB).
Этот режим тоже использует переменный размер блока и сдвиговый регистр, инициализируемый так же, как в режиме CFB, а именно - входной блок вначале содержит вектор инициализации IV, выровненный по правому краю (рис. 22).
Рис. 22. Схема алгоритма DES в режиме обратной связи по выходу
При этом для каждого сеанса шифрования данных необходимо использовать новое начальное состояние регистра, которое должно пересылаться по каналу открытым текстом.
Для всех i = 1... п Ci = Mi + Pi ,
где Рi - старшие к битов операции DES (Ci-1).
Отличие от режима обратной связи по шифротексту состоит в методе обновления сдвигового регистра.
Это осуществляется путем отбрасывания старших к битов и дописывания справа Рi.