Режимы работы алгоритма DES




 

Для наиболее полного удовлетворения всем требованиям, предъявляемым к коммерческим системам шифрования, реализованы несколько режимов работы алгоритма DES. Наиболее широкое распространение получили режимы:

· электронный шифроблокнот (Electronic Codebook) – ECB;

· цепочка цифровых блоков (Cipher Block Chaining) – CBC;

· цифровая обратная связь (Cipher Feedback) – CFB;

· внешняя обратная связь (Output Feedback) – OFB.

DES-ECB

В этом режиме исходный файл M разбивается на 64-битовые блоки (по 8 байтов): M = M(1) M(2)… M(n). Каждый из этих блоков кодируется независимо с использованием одного и того же ключа шифрования (рис. 5). Основное достоинство этого алгоритма – простота реализации. Недостаток – относительно слабая устойчивость против квалифицированных криптоаналитиков.

Рис. 5. Работа алгоритма DES в режиме ECB

 

В частности, не рекомендуется использовать данный режим работы для шифрования EXE файлов, потому что первый же блок – заголовок файла, является вполне удачным началом для взлома всего шифра.

В то же время следует признать, что этот режим в силу своей простой реализации наиболее популярен среди любительских разработок.

DES-CBC

В этом режиме исходный файл M также, как и в режиме ECB, разбивается на 64-битовые блоки: M = M(1) M(2)… M(n). Первый блок M(1) складывается по модулю 2 с 64-битовым начальным вектором IV, который меняется ежедневно и держится в секрете. Полученная сумма затем шифруется с использованием ключа DES, известного и отправителю, и получателю информации. Полученный 64-битовый блок шифртекста C(1) складывается по модулю 2 со вторым блоком исходного текста, результат шифруется и получается второй 64-битовый блок шифртекста C(2) и т.д. Процедура повторяется до тех пор, пока не будут обработаны все блоки исходного текста (рис. 6).

Рис. 6. Работа алгоритма в режиме CBC

Таким образом для всех i = 1…n блок шифртекста C(i) определяется следующим образом:

C(i) = DES (M(i) xor C (i-1)),

C(0) = IV – начальное значение шифра, равное начальному вектору.

Расшифровка выполняется следующим образом:

M(i) = C (i-1) xor DES-1 (C(i)),

C(0) = IV – начальное значение шифра, равное начальному вектору.

Прелесть данного режима состоит в том, что он не позволяет накапливаться ошибкам при передаче. Блок M(i) является функцией только C (i-1) и C(i). Поэтому ошибка при передаче приведет к потере только двух блоков исходного текста.

DES-CFB

В этом режиме размер блока может отличаться от 64. Исходный файл M считывается последовательными t-битовыми блоками (t <= 64): M = M(1) M(2)… M(n) (остаток дописывается нулями или пробелами).

Для всех i = 1…n блок шифртекста C(i) определяется следующим образом:

C(i) = M(i) xor P (i-1),

где P (i-1) – старшие t битов операции DES (С(i-1)), причем C(0)=IV.

Обновление сдвигового регистра осуществляется путем удаления его старших t битов и дописывания справа C(i).

Восстановление зашифрованных данных также не представляет труда: P (i-1) и C(i) вычисляются аналогичным образом и

M(i) = C(i) xor P (i-1).

Рис. 7. Работа алгоритма DES в режиме CFB

DES-OFB

Режим OFB очень похож на режим CFB.

Отличие от режима CFB состоит только в методе обновления сдвигового регистра. В данном случае это осуществляется путем удаления его старших t битов и дописывания справа P (i-1) (рис. 8).

Рис. 8. Работа алгоритма DES в режиме OFB

Каждому из рассмотренных режимов свойственны свои достоинства и недостатки, что обусловливает области их применения.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: