Основные режимы работы алгоритма 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 бита возможно проведение криптоанализа "со словарем". Блок такого размера может повто­риться в сообщении вследствие большой избыточности в тексте на естественном языке.

Основные режимы работы алгоритма DES - student2.ru

Рис. 19. Схема алгоритма DES в режиме электронной

кодовой книги

Это приводит к тому, что идентичные бло­ки открытого текста в сообщении будут представлены идентичны­ми блоками шифротекста, что дает криптоаналитику некоторую ин­формацию о содержании сообщения.

Режим "Сцепление блоков шифра" (СВС).

В этом режиме исходный файл М разбивается на 64-битовые блоки: М = M1M2...Mn. Первый блок М1 складывается по модулю 2 с 64-битовым начальным вектором IV, который меняется ежедневно и держится в секрете (рис. 20). Полученная сумма за­тем шифруется с использованием ключа DES, известного и отпра­вителю, и получателю информации. Полученный 64-битовый шифр С1 складывается по модулю 2 со вторым блоком текста, ре­зультат шифруется и получается второй 64-битовый шифр С2, и т.д. Процедура повторяется до тех пор, пока не будут обработаны все блоки текста.

Основные режимы работы алгоритма DES - student2.ru

Рис. 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. Процесс шифрования заканчивается, когда будут зашифрованы все блоки открытого текста.

 
  Основные режимы работы алгоритма DES - student2.ru

Рис. 21. Схема алгоритма DES в режиме обратной связи по шифротексту

Таким образом, получение i =1...п блоков шифротекста осуществляется по формуле:

Сi = Мi + Рi-1,

где Рi-1 обозначает к старших битов предыдущего зашифрованно­го блока.

Восстанов­ление зашифрованных данных также выполняется относительно просто: Pi-1 и Сi вычисляются аналогичным образом и

Мi = Сi + Pi-1.

Режим "Обратная связь по выходу" (OFB).

Этот режим тоже использует переменный размер блока и сдвиговый регистр, инициализируемый так же, как в режиме CFB, а именно - входной блок вначале содержит вектор инициализации IV, выровненный по правому краю (рис. 22).

 
  Основные режимы работы алгоритма DES - student2.ru

Рис. 22. Схема алгоритма DES в режиме обратной связи по выходу

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

Для всех i = 1... п Ci = Mi + Pi ,

где Рi - старшие к битов операции DES (Ci-1).

Отличие от режима обратной связи по шифротексту состоит в методе обновления сдвигового регистра.

Это осуществляется путем отбрасывания старших к битов и дописывания справа Рi.

Наши рекомендации