Широко известны четыре рабочих режима алгоритма DES, предназначенных для решения разнообразных криптографических задач. Эти режимы, осно-ванные на применении изложенного выше базового алгоритма DES, подробно изложены в [1], [2], где также приведены некоторые их достоинства и недостат-ки. Рассмотрим эти режимы
|
Рис. 5. Схема алгоритма DES в режиме электронной кодовой книги. |
Режим электронной кодовой книги (ECB). Длинный файл разбивается на 64-битовые блоки. Каждый из этих блоков шифруется независимо с использованием одного и того же ключа (рис. 5).
Основное достоинство этого режима – простота реализации. Существенным недостатком режима является слабая устойчивость против криптоанализа.
|
Рис. 6. Схема алгоритма DES в режиме сцепления блоков шифра. |
Режим сцепления блоков шифра (CBC). Исходный файл разбивается на 64-битовые блоки М=М1М2…Мn. Первый блок складывается по модулю 2 с 64-битовым начальным вектором IV, который меняется ежедневно и держится в секрете (рис. 6). Полученная сумма затем шифруется с использованием ключа DES, известного отправителю и получателю информации. Полученный 64-битовый шифр С1 складывается по модулю 2 со вторым блоком текста, результат шифруется и получается второй 64-битовый шифр С2, и так далее. Процедура продолжается до тех пор, пока не будут обработаны все блоки текста.
Таким образом для всех i = 1, 2, …, n (n – число блоков) результат шиф-рования Ci определяется следующим образом:
Ci = DES(Mi+Ci-1),
где C0 = IV – начальное значение шифра, равное начальному вектору.
Последний 64-битовый блок шифротекста является функцией секретного ключа, начального вектора и каждого бита открытого текста независимо от его длины. Этот блок шифротекста называют блоком аутентификации сообщения.
|
Рис. 7. Схема алгоритма DES в режиме обратной связи по шифротексту. |
Режим обратной связи по шифротексту (CFB). В этом режиме размер блока может отличаться от 64 бит (рис. 7). Файл, подлежащий шифрованию (расшифрованию), считывается последовательными блоками длиной k бит (k=1…64). Входной блок (64-битовый регистр сдвига) вначале содержит вектор инициализации, выровненный по правому краю. Пусть в результате разбиения на блоки мы получили n блоков длиной k бит каждый (остаток дописывается нулями или пробелами). Тогда для любого i = 1…n блок шифротекста
Ci = Mi + Рi-1,
где Рi – обозначает k старших битов предыдущего зашифрованного блока.
Обновление сдвигового регистра осуществляется путем удаления его старших k бит и записи Ci в регистр. При восстановлении зашифрованный данных Ci и Рi-1 вычисляются аналогичным образом и
Mi = C i+ Рi-1.
|
Рис. 8. Схема алгоритма DES в режи-ме обратной связи по выходу. |
Режим обратной связи по выходу (OFB). Этот режим также использует переменный размер блока и сдвиговый регистр, инициализируемый так же, как и в режиме CFB. Для каждого сеанса шифрования данных необходимо использовать новое начальное состояние регистра, которое должно пересылаться по каналу открытым текстом.
Пусть исходный файл разбит блоки М=М1М2…Мn. Для всех i = 1…n
Ci = Mi+Рi,
где Рi – старшие k битов операции DES(Ci-1). Отличие от режима обратной связи по шифротексту состоит в методе обновления сдвигового регистра. |