Головна

Формуємо ключ раунду.

Для всіх варіантів ключ для шифрування однаковий: password. Ці вісім символів також представляємо у двійковому вигляді за таблицею ASCII:

Здійснюємо перестановку PC-1. За наступною таблицею:

Кількість елементів таблиці 56. Тобто в результаті отримуємо вектор у 56 біт. Відсутні біти 8-й, 16-й, 24-й, 32-й, 40-й, 48-й, 56-й, 64-й. Ці біти ніякої участі в процесі шифрування не приймають і використовуються для контролю парності. Правило використання даної таблиці: у позицію 1 записують 57-й біт вхідного блоку, у позицію 2 записують 49 -й біт, у позицію 3 записують 41-й біт і т.д.

Результат виконання перестановки PC-1:

00000000 11011111 11011111 01010101 11001011 00000000 00001101

Розбиваємо цю послідовність біт на дві частина по 28 біт.

Ліва частина С0:

00000000 11011111 11011111 0101

Права частина D0:

0101 11001011 00000000 00001101

Виконуємо циклічний зсув обох частин на 1 біт вліво:

Отримуємо С1:

00000001 10111111 10111110 1010

Отримуємо D1:

1011 10010110 00000000 00011010

З'єднуємо обидві частини:

00000001 10111111 10111110 10101011 10010110 00000000 00011010

До цієї послідовності застосовуємо перестановку PC-2 за наступною таблицею:

В таблиці 48 комірок. Результатом виконання цієї перестановки буде 48 бітовий вектор. Правила виконання перестановки: у позицію 1 записують 14-й біт вхідного блоку, у позицію 2 записують 17 -й біт, у позицію 3 записують 11-й біт і т.д.

В результаті отримуємо ключ раунду:

11100000 10101110 01101110 10011101 11011110 01011100

Функція раунду.

Входом даної функції є права частина R (32 біти) вхідного блоку:

00000000 11111111 01000011 01010111

Застосовуємо до R функцію розширення Е за наступною таблицею:

В таблиці 48 комірок. Результатом виконання цієї перестановки буде 48 бітовий вектор. Правила виконання перестановки: у позицію 1 записують 32-й біт вхідного блоку, у позицію 2 записують 1 -й біт, у позицію 3 записують 2-й біт і т.д.

В результаті маємо 48 бітовий вектор:

10000000 00010111 11111110 10100000 01101010 10101110

Даний вектор і ключ раунду порозрядно складаються за модулем 2:

01100000 10111001 10010000 00111101 10110100 11110010

Ця 48 бітна послідовність розбивається на 8 блоків по 6 біт кожний:

011000 001011 100110 010000 001111 011011 010011 110010

Кожен з блоків подається на вхід відповідного S-блоку. Робота S-блоків описується наступними таблицями:

S1-блок

S2-блок

S3-блок

S4-блок

S5-блок

S6-блок

S7-блок

S8-блок

Ці S-блоки функціонують за наступним правилом. Входом є 6 бітний вектор. Перший та останній біти визначають номер рядка (нумерація з 0). Середні чотири біти - номер стовпчика (нумерація з 0). Десяткове число у відповідній комірці записується у вигляді 4 бітного двійкового числа, що і є виходом S-блоку.

Подані на вхід 6 бітні послідовності після обробки на відповідному S-блоці перетворюються на наступні 4 бітні вектори:

0101 0010 1001 0001 0001 1011 0011 1101

Ці 32 біти подаються на вхід перестановки Р:

В таблиці 32 комірки. Результатом виконання цієї перестановки буде 32 бітовий вектор. Правила виконання перестановки: у позицію 1 записують 16-й біт вхідного блоку, у позицію 2 записують 7 -й біт, у позицію 3 записують 20-й біт і т.д.

В результаті отримуємо значення функції раунду у вигляді 32 бітового вектора:

11111110 00100000 10101101 00100010

Значення функції раунду порозрядно складається по модулю 2 з лівою частиною вхідного блоку L:

00010001 00101100 01110111 00010101

Отриманий 32 бітний вектор є правою частиною 64 бітного вектора. Лівою частиною буде вектор R (тобто праві 32 біти 64 бітної послідовності на початку раунда).

Отже, остаточний результат раунду:

00000000 11111111 01000011 01010111 00010001 00101100 01110111 00010101

В контрольній роботі для спрощення виконується лише один раунд. Тому отриману послідовність вважаємо результатом 16 раундів.

 



В практичній частині необхідно розв'язати наступні задачі. | Заключні дії алгоритму DES.
© 2016-2022  um.co.ua - учбові матеріали та реферати