Федеральный стандарт США — DES




Стандарт шифрования данных DES (Data Encryption Standard), который ANSI называет алгоритмом шифрования данных DEA (Data Encryption Algorithm), a ISO — DEA-1, за 20 лет стал мировым стандартом. За годы своего существования он выдержал натиск различных атак и при известных ограничениях все еще считается криптостойким.

DES представляет собой блочный шифр, шифрующий данные 64-битовыми блоками. С одного конца алгоритма вводится 64-битовый блок открытого текста, а с другого конца выходит 64-битовый блок шифротекста. DES является симметричным алгоритмом: для шифрования и дешифрования используются одинаковые алгоритм и ключ (за исключением небольших различий в использовании ключа). Длина ключа равна 56 битам. (Ключ обычно представляется 64-битовым числом, но каждый восьмой бит используется для проверки четности и игнорируется. Биты четности являются наименьшими значащими битами байтов ключа.) Ключ, который может быть любым 56-битовым числом, можно изменить в любой момент времени.

Криптостойкость полностью определяется ключом. Фундаментальным строительным блоком DES является комбинация подстановок и перестановок. DES состоит из 16 циклов.

Oбщий вид цикла преобразования:

Если Li и Ri — левая и правая половины, полученные в результате i-й итерации, Ki — 48-битный ключ для цикла i, а f — функция, выполняющая все подстановки, перестановки и XOR с ключом, то один цикл преобразования можно представить как:

(Li, Ri) = (Ri−1,Li−1) ⊕ f(Ri−1, K)

Учитывая подстановку Fi(*) и перестановку Т(*), цикл преобразования можно представить так, как это сделано на рис.

Видно, что каждый цикл DES представляет собой композиционный шифр с двумя последовательными преобразованиями — подстановкой Fi(*) и перестановкой Т(*) (за исключением последнего, шестнадцатого цикла, где перестановка опускается).

Подстановка:

(Li, Ri) = (Ri−1, Li−1) ⊕ f(Ri−1, K)

является инволюцией, так как

Fi(Fi(Li−1, Ri−1)) = Fi(Ri−1, Li−1) ⊕ (f(Ri−1, Ki))) = (Ri−1, Li−1⊕(f(Ri−1, Ki)) ⊕ (f(Ri−1, Ki))) = (Li−1, Ri−1)

А подстановка

T(Li′, Ri′) = (Ri′, Li′),

так же является инволюцией, так как

T(T(Li′, Ri′)) = T(Ri′, Li′) = Li′, Ri

Если обозначить начальную и завершающую перестановки как (IP) и ()1, то прямое DES-преобразование (шифрование) реализует функцию:

DES = (IP)F1TF2TF15TF16(IP)1,

а обратное DES-преобразование (дешифрование) реализует функцию:

DES1 = (IP)−1F16TF15TF2TF1(IP).

Таким образом, DES является шифром Фейстеля и сконструирован так, чтобы выполнялось полезное свойство: для шифрования и дешифрования используется один и тот же алгоритм. Единственное отличие состоит в том, что ключи должны использоваться в обратном порядке.

То есть если при шифровании использовались ключи K1, K2, K3, …, K16, то ключами дешифрования будут K16, K15, K14, …, K1. Алгоритм использует только стандартную арифметику 64-битовых чисел и логические операции, поэтому легко реализуется на аппаратном уровне.

DES работает с 64-битовым блоком открытого текста. После первоначальной перестановки блок разбивается на правую и левую половины длиной по 32 бита. Затем выполняется 16 преобразований (функция f), в которых данные объединяются с ключом. После шестнадцатого цикла правая и левая половины объединяются, и алгоритм завершается заключительной перестановкой (обратной по отношению к первоначальной). На каждом цикле (см. рис.) биты ключа сдвигаются, и затем из 56 битов ключа выбираются 48 битов. Правая половина данных увеличивается до 48 битов с помощью перестановки с расширением, объединяется посредством XOR с 48 битами смещенного и переставленного ключа, проходит через 8 S-блоков, образуя 32 новых бита, и переставляется снова. Эти четыре операции и выполняются функцией f.

Затем результат функции f объединяется с левой половиной с помощью другого XOR. В итоге этих действий появляется новая правая половина, а старая правая становится новой левой половиной. Эти действия повторяются 16 раз, образуя 16 циклов DES.



Поделиться:




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

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


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