4.5. Современные блочные шифры
73
Для шифрования текста алгоритм DES использует шестнадцать 48-бито-
вых подключей. Каждый подключ образуется путем выбора 48 бит из 56-
битового ключа шифрования, причем для каждого раунда этот выбор вы-
полняется по-своему
3
.
Каждый из компонентов шифра DES имеет свое назначение. Алгоритм
Файстеля упрощает структуру шифра и гарантирует перемешивание правой
и левой половин текста. Сложение текста с подключом с помощью операции
XOR гарантирует перемешивание ключа и данных, в чем, собственно, и за-
ключается весь смысл шифрования. S-матрицы обеспечивают нелинейность.
Без них процесс шифрования можно было бы представить в виде последова-
тельности операций двоичного сложения, что очень легко взломать, исполь-
зуя
методы линейной алгебры. И наконец, сочетание S-матриц,
функции рас-
ширения и перестановки битов обеспечивает диффузию. Другими словами,
если изменить один бит во входном значении функции
F
, в ее выходном зна-
чении изменится сразу несколько битов. В следующем раунде это изменение
станет еще более обширным и т.п. При отсутствии диффузии незначительное
изменение открытого текста приведет к незначительному изменению шифро-
ванного текста, что можно легко отследить.
Алгоритм DES обладает рядом свойств, которые не позволяют считать
его безопасным в соответствии с нашим определением безопасности. Каж-
дый из подключей представляет собой не более чем выборку битов ключа
шифрования. Если ключ шифрования равен 0, все подключи также будут
равны 0. Это, в частности, означает, что все подключи будут одинаковыми.
Напомним, что процедуры шифрования и дешифрования различаются лишь
порядком применения подключей. Но в нашем случае все подключи будут
равны. Таким образом, шифрование с помощью ключа 0 — это то же самое,
что и дешифрование с помощью ключа 0. Данное свойство шифра очень лег-
ко обнаружить, а поскольку идеальный шифр таким свойством не обладает,
это позволяет осуществить легкую и эффективную различающую атаку
4
.
Алгоритм DES обладает и свойством комплементарности (или дополне-
ния). Согласно этому свойству для любого ключа
K
и открытого текста
P
справедливо следующее:
E
( ¯
K,
¯
P
) =
E
(
K, P
)
,
где
¯
X
— это значение, каждый бит которого является дополнением соответ-
ствующего бита значения
X
. Другими словами, если зашифровать дополне-
3
Выбор подключей осуществляется в соответствии с некоторым механизмом, описание
которого содержится в спецификациях DES [69].
4
Существует еще три ключа, которые обладают этим же свойством. Они называются
слабыми ключами алгоритма DES.