12
с 16 нулями)
было бы невозможно, потому что компьютеры настолько
мощными. В 1998 году Electronic Frontier Foundation (EFF) создал специальную
машину, которая могла расшифровать сообщение, опробовав все возможные
ключи менее чем за три дня. Машина стоила менее 250 000 долларов США и
искала более 88 миллиардов ключей в секунду[1].
Размер блока в DES - 64 бита, для шифрования использует ключ с
длиной 56 бит, количество раундов – 16. DES
является классической сетью
Фейштеля с двумя ветвями. За несколько раундов алгоритм преобразует 64-
битный входной блок данных в 64-битный выходной блок. Стандарт DES
построен на комбинированном использовании перестановки, замены и
гаммирования. Данные для шифрования должны быть представлены в
двоичном виде.
Процесс шифрования каждого 64-битового
блока исходных данных
можно разделить на три этапа:
1.
начальная подготовка блока данных;
2.
16 раундов "основного цикла";
3.
конечная обработка блока данных.
На первом этапе выполняется начальная перестановка 64-битного
исходного блока данных. При начальной перестановке биты блока данных
определенным образом переупорядочиваются, что придает некоторую
"хаотичность" исходному сообщению, понижая
возможность использования
xкриптоанализа статистическими методами. Одновременно с начальной
перестановкой блока данных выполняется начальная перестановка 56 бит
ключа. В каждом из циклов используется соответствующий 48-битный
частичный ключ. Ключи получаются по определенному алгоритму,
используя
каждый из
битов начального ключа по нескольку раз. В каждом раунде 56-
битный ключ делится на две 28-битовые части. Затем части сдвигаются влево
на один или два бита зависимо от номера раунда. После сдвига определенным
образом выбирается 48 из 56 битов. Из-за того, что при этом не только
выбирается подмножество битов, но
и изменяется их порядок, эта операция
13
называется "перестановка со сжатием". Ее результатом является набор из 48
битов. В среднем каждый бит исходного 56-битного ключа используется в 14 из
16 подключей, хотя не все биты используются равное количество раз.
На втором этапе блок делится на две ветви по 32 бита каждая и
выполняется основной цикл преобразования, организованный по сети
Фейштеля и состоящий из 16 одинаковых раундов. При этом в каждом раунде
получается промежуточное 64-битное значение, которое затем обрабатывается
в следующем раунде.
Вначале правая часть блока увеличивается до 48 битов, используя
таблицу, которая определяет перестановку плюс расширение на 16 битов. Эта
операция приводит размер правой части в соответствие с размером ключа для
выполнения операции XOR. За счет выполнения этой операции быстрее
возрастает зависимость всех битов результата от битов исходных данных и
ключа.
После выполнения перестановки с расширением для полученного 48-
битного значения выполняется операция XOR с 48-битным подключом. Затем
полученное 48-битное значение передается на вход блока подстановки,
результат которой - 32-битное значение. Подстановка выполняется в восьми
блоках подстановки. При выполнении этой операции 48 битов данных
Достарыңызбен бөлісу: