Ім'я файлу: Програмна реалізація шифру DES.docx
Розширення: docx
Розмір: 23кб.
Дата: 03.04.2022
скачати
Пов'язані файли:
Лабораторна-6 (1).docx
Лабораторна робота №10.docx
ЛЕКЦІЯ 3.docx

Лабораторна робота

Програмна реалізація шифру DES

Мета роботи - створити криптографічний систему шифрування даних, яка базується на алгоритмі шифрування DES. Алгоритм DES є першим симетричним алгоритмом блокового шифрування даних.

Завдання до роботи

Програмна реалізація криптографічного системи, заснованої на алгоритмі шифрування DES, повинна бути оформлена як деяка програмна оболонка. У програмній реалізації повинен бути розроблений інтерфейс, зручний для експлуатації програми, в інтерфейсі слід передбачити:

• два режими формування ключа - ключ заданий, ключ формується за замовчуванням;

• введення початкової інформації з сформованого заздалегідь файлу і з файлу, який створюється в оболонці програми;

режими шифрування, які передбачені в DES;

• режими шифрування і дешифрування інформації.

Підготувати звіт по роботі. У звіті описати алгоритм DES, описати структуру представлення даних в програмі, основні функції програми, призначення функцій, вхідні і вихідні параметри функцій. У звіт включити опис алгоритму генерації ключа, деталі програмної реалізації, які представляють інтерес з точки зору розробника.

теоретичний матеріал

Основні етапи алгоритму DES для шифрування тексту:

1. Генерується (задається) випадкова послідовність Q з 56 біт.

2. В послідовність Q, для контролю парності, додаються вісім контрольних бітів в позиції 8, 16, 24, ..., 64. Виходить блок U розміром в 64 біта.

3. Для видалення контрольних бітів з блоку U і формування ключа K для шифрування, блок U перетворять, використовуючи функцію G (U). Функція G визначається у вигляді стандартної таблиці, яку треба використовувати в незмінному вигляді. В результаті перетворення отримують блок K = G (U) розміром в 56 біт. Блок K розбивають на дві половини C0 і D0 по 28 біт.

4. Використовуючи C0 і D0, послідовно визначаються Ci і Di , i = 1, 2, ..., 16. Для формування Ci і Di застосовують операції циклічного зсуву вліво на один або два біта. Величина зсуву визначається стандартною таблицею. Операції зсуву для Ci і Di виконуються незалежно. Послідовність C5 виходить з C4 за допомогою циклічного зсуву вліво на 2 біти, а D5 - за допомогою циклічного зсуву вліво на 2 біта D4 (див. Таблицю зрушень для обчислення ключа). В результаті четвертого етапу формується 16 ключів для 16 раундів алгоритму DES.

5. Завершальний етап формування ключів. Використовуючи перестановку H, яка задається стандартною таблицею, кожен ключ розміром в 56 біт перетворюється в блок з 48 біт. Даним перетворенням завершується етап формування ключів.

6. Поточний блок відкритого тексту розміром в 64 біт, представлений у вигляді двох 32 бітових блоків (L0R0) перетворюється початковій перестановкою IP, яка задається фіксованою стандартної таблицею.

7. Виконується 16 раундів перетворень за такими формулами

Li = Ri-1, Ri = Li _ f ( Ri-1, Ki ), i = 1.2, ..., 16.

Функція f ( Ri-1, Ki ) являє собою деяку суперпозицію простих перетворень, детальний опис яких буде дано нижче. Відзначимо, що функція f ( Ri-1, Ki ) є нелінійної. Нелінійність функції f ( Ri-1, Ki ) забезпечується S-блоками.

Алгоритм обчислення функції шифрування f ( Ri-1, Ki ) До блоку Ri-1 застосовують функцію розширення E (Ri-1), яка 32 бітовий блок Ri-1 перетворює в блок R'= E (Ri-1) розміром в 48 біт.

Функція E (Ri-1) визначається стандартною таблицею. Алгоритм обчислення функції шифрування формулюється в такий спосіб.

• Обчислюється новий блок розміром в 48 біт за формулою B = E (Ri-1) Ki .

• Блок B розміром в 48 біт розбивається на вісім блоків Bj , j = 1,2, ... , 8, по шість бітів кожен B = B1B2B3B4B5B6B7B8.

• Кожен блок Bj розміром в шість біт, використовуючи свою функцію Sj , перетворюється в блок Sj ( Bj ) розміром в чотири біта. В результаті виходить наступний блок даних

B '= S1 (B1) S2 (B2) S3 (B3) S4 (B4) S5 (B5) S6 (B6) S7 (B7) S8 (B8) розміром в 32 біта.

• Алгоритм перетворення блоку Bj розміром в шість біт в блок Sj ( Bj ) розміром в чотири біта наступний. Кожна функція Sj є стандартну таблицю, яка складається з чотирьох рядків з номерами 0, 1, 2, 3, і шістнадцяти стовпців з номерами 0, 1,2, ... , 15. Нехай, наприклад, деякий блок Bj = b1 b2 b3 b4 b5 b6 = 110010,

j = 1, 2, ..., 8.

Тоді має місце:

біти b1b6 = 10 формують номер стовпця (двійкове число 10 одно десятковому числу 2) таблиці Sj ,

біти b2 b3 b4 b5 = 1001 формують номер рядка (двійкове число 1001 дорівнює десятковому числу 9) та бліц Sj . Блок Bj = b1 b2 b3 b4 b5 b6 = 110010 замінюють двійковим значенням числа таблиці Sj , яке знаходиться на перетин рядка з номером b1b6 = 10 (2) зі стовпцем з номером b2 b3 b4 b5 = 1001 (9). Перетворюючи кожне Bj , j = 1, 2, ..., 8, з блоку B, отримаємо новий блок B 'розміром в 32 біта.

Контрольні питання


1. За яким принципом побудований блоковий шифр DES?


2. Який шифр передував шифру DES?

3. Вказати довжину початкового ключа в алгоритмі DES.

4. Перерахувати основні етапи формування ключів в алгоритмі DES.


5. Скільки раундів в алгоритмі DES?


6. Скільки ключів формується в алгоритмі DES для шифрування тексту?

7. Вказати довжину ключа для шифрування тексту в алгоритмі DES.


8. Скільки S-функцій визначено в алгоритмі DES?

9. Яка арифметична операції використовується при перетвореннях в

алгоритмі DES.

10. Вкажіть довжину шифруємого блоку в алгоритмі DES.
скачати

© Усі права захищені
написати до нас