Дополнительные материалы DES

редактировать

В этой статье подробно описаны различные таблицы , на которые есть ссылки в Стандарте шифрования данных (DES) блочный шифр.

Все биты и байты в этом документе расположены в порядке big endian. То есть бит номер 1 всегда является самым старшим битом.

Содержание
  • 1 Начальная перестановка (IP)
  • 2 Конечная перестановка (IP)
  • 3 Функция расширения (E)
  • 4 Перестановка (P)
  • 5 Перестановка выбора 1 (PC-1)
  • 6 Переставленный вариант 2 (PC-2)
  • 7 Блоки подстановки (S-блоки)
  • 8 Генерация ключа
    • 8.1 Отбрасывание битов четности
    • 8.2 Чередование битов
    • 8.3 Сжатие ключа
  • 9 Ссылки
  • 10 Внешние ссылки
Начальная перестановка (IP)
IP
585042342618102
605244362820124
625446383022146
645648403224168
57494133251791
595143352719113
615345372921135
635547393123157

Эта таблица определяет входную перестановку в 64-битном блоке. Смысл в следующем: первый бит вывода берется из 58-го бита ввода; второй бит из 50-го бита и так далее, причем последний бит вывода берется из 7-го бита ввода.

Эта информация представлена ​​в виде таблицы для простоты представления; это вектор, а не матрица.

Конечная перестановка (IP)
Конечная перестановка
IP
408481656246432
397471555236331
386461454226230
375451353216129
364441252206028
353431151195927
342421050185826
33141949175725

Конечная перестановка инверсия начальной перестановки; таблица интерпретируется аналогично.

Функция расширения (E)
Функция расширения
E
3212345
456789
8910111213
121314151617
161718192021
202122232425
242526272829
28293031321

Функция расширения интерпретируется как для начальной и конечной перестановок. Обратите внимание, что некоторые биты из входа дублируются на выходе; например пятый бит ввода дублируется как в шестом, так и в восьмом битах вывода. Таким образом, 32-битный полублок расширяется до 48 бит.

Перестановка (P)
P перестановка
P
167202129122817
11523265183110
282414322739
19133062211425

Перестановка P перемешивает биты 32-битного полублока.

Переставленный вариант 1 (ПК-1)
Переставляемый вариант 1
ПК-1
Левый
5749413325179
1585042342618
1025951433527
1911360524436
Правый
63554739312315
7625446383022
1466153453729
211352820124

«Левая» и «правая» половины таблицы показывают, какие биты из входного ключа формируют левую и правую секции состояния ключевого расписания. Обратите внимание, что выбраны только 56 бит из 64 битов ввода; оставшиеся восемь (8, 16, 24, 32, 40, 48, 56, 64) были указаны для использования как биты четности.

Переставленный выбор 2 (ПК-2)
Переставляемый вариант 2
ПК-2
1417112415
3281562110
2319124268
1672720132
415231374755
304051453348
444939563453
464250362932

Эта перестановка выбирает 48-битный подключ для каждого раунда из 56-битного состояния расписания ключей. Эта перестановка игнорирует 8 битов ниже:

Переставленный вариант 2 «PC-2» Игнорируемые биты 9,18,22,25,35,38,43,54.

Блоки замены (S-блоки)
S-блоки
S1x0000xx0001xx0010xx0011xx0100xx0101xx0110xx0111xx1000xx1001xx1010xx1011xx1100xx1101xx1110xx1111x
0yyyy01441312151183106125907
0yyyy10157414213110612119538
1yyyy04114813621115129731050
1yyyy11512824917511314100613
S2x0000xx0001xx0010xx0011xx0100xx0101xx0110xx0111xx1000xx1001xx1010xx1011xx1100xx1101xx1110xx1111x
0yyyy01518146113497213120510
0yyyy13134715281412011069115
1yyyy00147111041315812693215
1yyyy11381013154211671205149
S3x0000xx0001xx0010xx0011xx0100xx0101xx0110xx0111xx1000xx1001xx1010xx1011xx1100xx1101xx1110xx1111x
0yyyy01009146315511312711428
0yyyy11370934610285141211151
1yyyy01364981530111212510147
1yyyy11101306987415143115212
S4x0000xx0001xx0010xx0011xx0100xx0101xx0110xx0111xx1000xx1001xx1010xx1011xx1100xx1101xx1110xx1111x
0yyyy07131430691012851112415
0yyyy11381156150347212110149
1yyyy01069012117131513145284
1yyyy13150610113894511127214
S5x0000xx0001xx0010xx0011xx0100xx0101xx0110xx0111xx1000xx1001xx1010xx1011xx1100xx1101xx1110xx1111x
0yyyy02124171011685315130149
0yyyy11411212471315015103986
1yyyy04211110137815912563014
1yyyy11181271142136150910453
S6x0000xx0001xx0010xx0011xx0100xx0101xx0110xx0111xx1000xx1001xx1010xx1011xx1100xx1101xx1110xx1111x
0yyyy01211015926801334147511
0yyyy11015427129561131401138
1yyyy09141552812370410113116
1yyyy14321295151011141760813
S7x0000xx0001xx0010xx0011xx0100xx0101xx0110xx0111xx1000xx1001xx1010xx1011xx1100xx1101xx1110xx1111x
0yyyy04112141508133129751061
0yyyy11301174911014351221586
1yyyy01411131237141015680592
1yyyy16111381410795015142312
S8x0000xx0001xx0010xx0011xx0100xx0101xx0110xx0111xx1000xx1001xx1010xx1011xx1100xx1101xx1110xx1111x
0yyyy01328461511110931450127
0yyyy11151381037412561101492
1yyyy07114191214206101315358
1yyyy12114741081315129035611

В этой таблице перечислены восемь S-блоков, используемых в DES. Каждый S-блок заменяет 6-битный вход на 4-битный выход. При 6-битном входе 4-битный выход находится путем выбора строки с использованием двух внешних битов и столбца с использованием внутренних четырех битов. Например, вход «0 1101 1 » имеет внешние биты «01 » и внутренние биты «1101»; отмечая, что первая строка - «00», а первый столбец - «0000», соответствующий вывод для S-блока S 5 будет «1001» (= 9), значение во второй строке, 14 столбец. (См. S-блок ).

Генерация ключа

Основной ключ, предоставленный пользователем, имеет 64 бита. С ним производятся следующие операции.

Отбрасывать биты четности

Отбрасывать биты серых позиций (8x), чтобы освободить 56-битное пространство для дальнейшей работы на каждом этапе.

Таблица падения четности
12345678
910111213141516
1718192021222324
2526272829303132
3334353637383940
4142434445464748
4950515253545556
5758596061626364

После этого биты переставляются в соответствии со следующей таблицей,

Таблица является основной строкой, значит,

Фактическое Положение бита = Заменить на бит строки * 8 + столбец .

Таблица перестановок
12345678
157494133251791
2585042342618102
3595143352719113
46052443663554739
5312315762544638
6302214661534537
729211352820124

Вращение битов

Перед тем, как будет выбран подключа раунда, каждая половина состояния расписания клавиш поворачивается влево на определенное количество мест. В этой таблице указано количество повернутых мест.

• Ключ разделен на две 28-битные части

• Каждая часть сдвигается влево (по кругу) на один или два бита

• После сдвига две части затем снова объединены для формирования 56-битного временного ключа

Таблица смены битов
Число раундов12345678910111213141516
Количество вращений влево1122222212222221

Сжатие клавиш

• P-блок сжатия изменяет 56-битный ключ на 48-битный key, который используется как ключ для соответствующего раунда.

Таблица является основной строкой, означает,

Фактическая Позиция бита = Заменить битом строки * 8 + столбец .

Таблица сжатия ключей
12345678
11417112401050328
21506211023191204
32608160727201302
44152313747553040
55145334844493956
63453464250362932

После этого верните 48-битный ключ раунда вызываемой функции, то есть циклу.

Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-16 08:54:18
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте