Изучение современных методов криптоанализа. Бабенко Л.К - 8 стр.

UptoLike

8
F(
) T(
)
(L
i-1
, R
i-1
)
K
i
(L
i
, R
i
)
(L’
i
, R’
i
)
Рис. 1.3. Цикл DES с учетом перестановки и подстановки
Подстановка F
i
(L
i-1
, R
i-1
) = (R
i-1
, L
i-1
f (R
i-1
, K
i
)) является инволюцией, так как
F
i
(F
i
(L
i-1
, R
i-1
)) = F
i
(R
i-1
, L
i-1
f (R
i-1
, K
i
)) = (R
i-1
, L
i-1
(f (R
i-1
, K
i
)) (f (R
i-1
, K
i
))) =
= (L
i-1
, R
i-1
).
В свою очередь подстановка T(L’
i
, R’
i
) = (R’
i
, L’
i
) также является инволю-
цией, поскольку
Т(T(L’
i
, R’
i
)) = T(R’
i
, L’
i
) = (L’
i
, R’
i
).
Если обозначить начальную и завершающую перестановки как IP и IP
-1
, то
прямое DES-преобразование (шифрование) реализует функцию
DES = IPF
1
TF
2
T…F
15
TF
16
IP
-1
,
а обратное DES-преобразование (дешифрование) реализует функцию
DES
-1
= IP
-1
F
16
TF
15
T…F
2
TF
1
IP.
Таким образом, DES является шифром Фейстеля и сконструирован так,
чтобы выполнялось полезное свойство: для шифрования и дешифрования ис-
пользуется один и тот же алгоритм. Единственное отличие состоит в том, что
ключи должны использоваться в обратном порядке.
То есть если при шифровании использовались ключи К
1
, К
2
, К
3
,… К
16
, то
ключами дешифрования будут К
16
, К
15
, К
14
,… К
1
. Алгоритм использует только
стандартную арифметику 64-битовых чисел и логические операции, поэтому
легко реализуется на аппаратном уровне.
DES работает с 64-битовыми блоками открытого текста. После первона-
чальной перестановки блок разбивается на правую и левую половины длиной
по 32 бита. Затем выполняется 16 преобразований (функция f), в которых дан-
ные объединяются с ключом. После шестнадцатого цикла
правая и левая поло-
вины объединяются и алгоритм завершается заключительной перестановкой
(обратной по отношению к первоначальной). На каждом цикле (см. рис. 1.4)
биты ключа сдвигаются, и затем из 56 битов ключа выбираются 48 битов. Пра-
вая половина данных увеличивается до 48 битов с помощью перестановки с
расширением, объединяется посредством XOR с 48 битами смещенного и пере
-
ставленного ключа, проходит через 8 S-блоков, образуя 32 новых бита, и пере-
ставляется снова. Эти четыре операции выполняются функцией f.
Затем результат функции f объединяется с левой половиной с помощью
другого XOR. В итоге этих действий появляется новая правая половина, а ста-
рая правая становится новой левой половиной. Эти действия повторяются 16
раз, образуя 16 циклов DES.