Донецкий техникум промышленной автоматики

НОУ ІНТУЇТ | лекція | Сучасні симетричні алгоритми шифрування

  1. 7.1 Алгоритм DES
  2. 7.2 Алгоритм ГОСТ 28147-89

Анотація: З величезної кількості сучасних алгоритмів шифрування ми вибрали такі, які ілюструють застосування різних математичних конструкцій. У лекції представлені алгоритми: DES, ГОСТ 28147-89, AES, IDEA. Алгоритм DES був першим, відкрито опублікованими алгоритмом, послужив основою для розробки методів криптоаналізу. Алгоритм ГОСТ 28147-89 і в даний час використовується в Росії. Алгоритм AES цікавий тим, що побудований на своєрідній, вельми нетривіальним математики полів Галуа. Нарешті, IDEA примітний тим, що поєднує в собі різні алгебраїчні конструкції.

7.1 Алгоритм DES

Ми тут приведемо короткий опис алгоритму DES, докладний виклад можна знайти в [1], [2], [3], [4].

DES являє собою блоковий шифр, він шифрує дані 64-бітовими блоками. На вхід алгоритму подається 64-бітовий блок відкритого тексту, а виходить 64-бітовий блок шифртекста. DES є симетричним алгоритмом: для шифрування і розшифрування використовуються однакові алгоритм і ключ (за винятком невеликих відмінностей у використанні ключа).

Довжина ключа дорівнює 56 бітам. (Ключ зазвичай представляється 64-бітових числом, але кожен восьмий біт використовується для перевірки парності і ігнорується. Біти парності є найменшими значущими бітами байтів ключа.) Ключ, який може бути будь-яким 56-бітових числом, можна змінити в будь-який момент часу. Ряд чисел вважаються слабкими ключами, але їх можна легко уникнути. Безпека повністю визначається ключем.

Алгоритм є комбінацією двох основних методів шифрування: зміщення і дифузії. DES складається з 16 етапів, однакова комбінація методів застосовується до відкритого тексту 16 разів.

Алгоритм використовує тільки стандартну арифметику 64-бітових чисел і логічні операції, тому він легко реалізовувався в апаратурі другої половини 70-x.

Схема алгоритму представлена ​​на малюнку 7.1 .

Таблиця 7.1. Початкова перестановка IP шифру DES 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 14 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

Біти вхідних даних нумеруються по порядку, починаючи з 1, і переставляються підстановкою Біти вхідних даних нумеруються по порядку, починаючи з 1, і переставляються підстановкою   згідно   таблиці 7 згідно таблиці 7.1 . Таблиця трактується наступним чином: значення 58 біта вхідної послідовності переміщається в бітову позицію 1, біт 50 - в бітову позицію 2, біт 42 - в бітову позицію 3, і так далі.

Після початкової перестановки блок розбивається на праву і ліву половини довжиною по 32 біта. Потім виконується 16 етапів однакових дій, званих функцією Після початкової перестановки блок розбивається на праву і ліву половини довжиною по 32 біта , В яких дані об'єднуються з ключем. Після шістнадцятого етапу права і ліва половини об'єднуються і алгоритм завершується заключній перестановкою (зворотної по відношенню до первісної).

На кожному етапі (див. Мал. 7.2 ) Біти ключа зсуваються, і потім з 56 бітів ключа вибираються 48 бітів. Права половина даних збільшується до 48 бітів за допомогою перестановки з розширенням, об'єднується за допомогою XOR з 48 бітами зміщеного і переставлені ключа, проходить через 8 S-блоків, утворюючи 32 нових біта, і переставляється знову. Ці чотири операції і виконуються функцією На кожному етапі (див . Потім результат функції об'єднується з лівою половиною за допомогою іншого XOR. В результаті цих дій з'являється нова права половина, а стара права половина стає нової лівої. Ці дії повторюються 16 разів, утворюючи 16 етапів DES.


Мал.7.2.

Один раунд шифру DES

якщо якщо   --- результат   -ої ітерації,   і   --- ліва і права половини   ,   --- 48-бітову ключ для етапу   , a   - це функція, що виконують всі підстановки, перестановки і XOR з ключем, то етап можна уявити як: --- результат -ої ітерації, і --- ліва і права половини , --- 48-бітову ключ для етапу , a - це функція, що виконують всі підстановки, перестановки і XOR з ключем, то етап можна уявити як:

7.2 Алгоритм ГОСТ 28147-89

В алгоритмі ГОСТ ключова інформація складається з двох структур даних. Крім власне ключа, необхідного для всіх шифрів, вона містить ще й таблицю замін. Нижче наведені основні характеристики ключових структур ГОСТу.

Ключ є масивом з восьми 32-бітових елементів коду, далі в цій роботі він позначається Ключ є масивом з восьми 32-бітових елементів коду, далі в цій роботі він позначається .

У ГОСТ елементи ключа використовуються як 32-розрядні цілі числа без знака: У ГОСТ елементи ключа використовуються як 32-розрядні цілі числа без знака: . Таким чином, розмір ключа становить біт, або 32 байта.

Таблиця замін може бути представлена ​​у вигляді Таблиця замін може бути представлена ​​у вигляді   -матриці, що містить 4-бітові елементи, які можна представити у вигляді цілих чисел від 0 до 15 -матриці, що містить 4-бітові елементи, які можна представити у вигляді цілих чисел від 0 до 15. Рядки таблиці замін називаються вузлами замін, вони повинні містити різні значення, тобто кожен вузол замін повинен містити 16 різних чисел від 0 до 15 в довільному порядку.