logo
125 Кібербезпека / 4 Курс / 4

Генерування ключів ki

Ключі ki виходять з початкового ключа k (64 біт = 8 байтів або 8 символів у ASCII) таким чином. Вісім бітів, що знаходять в позиціях 8, 16, 24, 32, 40, 48, 56, 64 додаються в ключ k такий спосіб щоб кожен байт містив непарне число одиниць. Це використовується для виявлення помилок при обміні і зберіганні ключів. Потім роблять перестановку для розширеного ключа (крім додаються бітів 8, 16, 24, 32, 40, 48, 56, 64). Така перестановка визначена як в таблиці 5.

Рис.6 Схема розшифрування алгоритму DES

Таблиця 5.

57 49 41 33 25 17 9 1 58 50 42 34 26 18 C0

10 2 59 51 43 35 27 19 11 3 60 52 44 36

63 55 47 39 31 23 15 7 62 54 46 38 30 22 D0

14 6 61 53 45 37 29 21 13 5 28 20 12 4

Ця перестановка визначається двома блоками C0 і D0 по 28 біт кожен. Перші 3 біти C0 є біти 57, 49, 41 розширеного ключа. А перші три біти D0 є біти 63, 55, 47 розширеного ключа. Ci, Di i = 1,2,3 ... виходять з Ci - 1, Di - 1 одним або двома лівими циклічними зрушеннями відповідно до таблиці 6.

Таблиця 6.

i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Число зсуву 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Ключ ki, i = 1, ... 16 складається з 48 біт, вибраних з бітів вектора CiDi (56 біт) згідно з таблицею 7. Перший і другий біти ki є біти 14, 17 вектора CiDi

Таблиця 7.

14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 квітня

26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40

51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32

Кінцева перестановка

Кінцева перестановка IP - 1 діє на T16 і використовується для відновлення позиції. Вона є зворотною до перестановки IP. Кінцева перестановка визначається таблицею 8.

Таблиця 8. Зворотній перестановка IP - 1

40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25

При розшифрування даних всі дії виконуються в зворотному порядку. У 16 циклах розшифрування, на відміну від шифрування c допомогою прямого перетворення мережею Фейстеля, тут використовується зворотне перетворення мережею Фейстеля.

Ri - 1 = Li

Ключ ki, i = 1, ..., 15, функція f, перестановка IP і IP - 1 такі ж як і в процесі шифрування.