Результатом шифрования
64-битного блока открытого текста А при помощи
ключа К является шифртекст С, что принято
обозначать следующим образом:

С = DES (А,К)

Алгоритм DES
функционирует следующим образом. Вначале
выполняется начальная перестановка IP входного
блока А. Логика перестановки приведена в
таблицахт стандарта.

Структурная схема алгоритма DES

Структурная схема
алгоритма DES

 После начальной
перестановки выполняются шестнадцать циклов
шифрующих преобразований, подробно описываемых
ниже, после чего следует завершающая обратная
перестановка, логика которой представлена в
таблицах стандарта.
Перейдем к рассмотрению шифрующих
преобразований, выполняемых внутри каждого из 16
циклов. Через Li и Ri, i=1,…,16, обозначаются,
соответственно левые и правые полублоки блока,
являющегося входным для i-го цикла. При этом Li и Ri
определяются по следующим правилам:

L= Ri-1
Ri = Li-1 + f(Ri-1,Ki)

где + — операция
сложения по модулю 2, выполняемая над битами,
находящимися в идентичных позициях обоих
операндов.
 Логика вычисления значений f(Ri-1,Ki) представлена в виде
структурной схемы, приведенной на следующем
рисунке:

Структурная схема вычисления функции f(Ri-1,Ki)

Структурная схема
вычисления функции f(Ri-1,Ki)

Вычисление начинается с так
называемого расширения, преобразующего 32-битовый
полублок в 48-битовый вектор в соответствии с
таблицей, приведенной в стандарте, в которой j
обозначает номер позиции в Ri-1,
а jE — номер позиции, в которую поступает
j-й бит полублока Ri-1.
Полученные 48 бит гаммируются с 48-битовым
вектором Кi, логика
формирования которого рассматривается ниже.
Результат гаммирования разбивается на восемь 6-битовых
векторов, поступающих на входы так называемых S-блоков
S1,…,S8. Каждый S-блок выдает 4-битовый
вектор, причем взаимосвязь между входными и
выходными данными определяется содержимым
таблиц, приведенных в стандарте.
Правила пользования приведенными таблицами
состоят в следующем. Пусть b1…b6 — 6-битовый
вектор поступающий на вход некоторого Sблока
Si. Образуем два десятичных числа k и l,
двоичная запись первого из которых есть b1b6, а
второго — b2b3b4b5. Тогда результатом работы
S-блока Si является 4-битовая двоичная запись
десятичного числа, стоящего в i-ой матрице на
пересечении k-й строки и l-го столбца.
Восемь 4-битовых векторов, поступающих с выходов
S-блоков, образуют 32-битовый полублок, который
подвергается перестановке.
Рассмотрим логику формирования ключей Ki, i=1,…,16, используемых
для гаммирования в ходе выполнения
соответствующих циклов шифрования.
Исходный 64-битовый ключ разбивается на восемь
8-битовых блоков. Восьмой бит каждого блока
служит для контроля четности. При этом значение
восьмого бита представляет собой результат
сложения по модулю 2 предшествующих семи битов.
Контрольные биты в процессе формирования ключей
не используются.
Структурная схема алгоритма формирования ключей
приведена ниже на рисунке.
Существо операции перестановки-выбора битов
исходного ключа определяется таблицей,
приведенной в стандарте, при этом контрольные
биты ключа К в формируемый 56-битовый ключ
не переносятся:

Структурная схема алгоритма формирования ключей

Структурная схема
алгоритма формирования ключей

После выполнения
перестановки-выбора РС-1 полученный 56-битовый
ключ разбивается на два 28-битовых вектора С0 и
D0. Далее в каждом из шестнадцати циклов i над
28-битовыми векторами выполняется операция
циклического сдвига на LSi
позиций влево.
Значения LSi приведены
в таблице стандарта.
Полученные в результате выполнения указанной
операции 28-битовые вектора в указанном
порядке объединяются в 56-битовый вектор.
Последний подвергается перестановке-выбору РС-2
в соответствии с таблицей, приведенной в
стандарте.
Таковы основные особенности алгоритма
шифрования DES. Следует отметить, что
криптостойкость DES определяется в основном
нелинейностью S-блоков.
Алгоритм расшифрования двоичных блоков,
зашифрованных при помощи DES, достаточно
очевиден: необходимо "прогнать" DES c тем
же ключом в обратном направлении. При этом:

Ri-1 = Li
Li-1 = R+ f(Ri-1,Ki)

Рассмотренный режим ECB
обладает тем недостатком, что результаты
шифрования одинаковых блоков при помощи одного и
того же ключа совпадают. С учетом того, что длина
блока криптограммы постоянна и относительно
невелика, наличие в шифртексте идентичных блоков
служит явным указанием на присутствие
совпадающих блоков и в соответствующих
фрагментах открытого текста, что, в общем случае,
может существенно облегчить криптоанализ. Кроме
того алгоритм DES в режиме ECB обладает
свойством размножения ошибок, которое состоит в
том, что искажение одного бита криптограммы
приводит к искажению нескольких бит в
дешифрованном открытом тексте.

 

Оставит комментарий