
- •Постановка задачі
- •Теоретична частина
- •Виконання роботи
- •3.1 Знаходження ключів
- •3.2 Шифрування
- •Виконаємо дії описані у функції fK Розділимо результат на 2 частини і пропустимо праву її частину через матрицю е/р:
- •3.3 Дешифрування
- •Виконаємо дії описані у функції fK
- •Ілюстрація роботи програми
- •Висновки
Міністерство освіти і науки України
Національний авіаційний університет
Домашня робота
з дисципліни «Захист інформації в спец. системах та мережах»
Виконав студент ФКН-502
Галанцев Г.В.
Прийняв викладач
Давиденко А.М.
Київ 2011
Зміст
Постановка задачі 3
Теоретична частина 3
Виконання роботи 8
3.1 Знаходження ключів 8
3.2 Шифрування 9
Виконаємо дії описані у функції fK 9
Розділимо результат на 2 частини і пропустимо праву її частину через матрицю Е/Р: 9
3.3 Дешифрування 11
Виконаємо дії описані у функції fK 11
Ілюстрація роботи програми 14
Висновки 25
Постановка задачі
Необхідно виконати ручні розрахунки і реалізацію за допомогою програми.
Матриці ІР та ІР-1 беруться по варіанту.
Вхідний текст для шифрування – 2 передостанні цифри студентського квитка (46 в десятковій = 0010 1110 у двійковій системі).
10-бітний ключ – додамо «01» спереду до двох передостанніх цифр студентського у двійковій системі і отримаємо 456 у 10-ковій системі.
Матриці по варіанту:
Матриця IP |
|||||||
3 |
1 |
4 |
8 |
5 |
7 |
2 |
6 |
Матриця ІР-1 |
|||||||
2 |
7 |
1 |
3 |
5 |
8 |
6 |
4 |
Теоретична частина
Спрощений DES - це алгоритм шифрування, що має, скоріше, навчальний, ніж практичне значення. По властивостях і структурі він подібний DES, але має набагато менше параметрів. Даний алгоритм був розроблений професором Едвардом Шейфер (Edward Schaefer) з Університету Санта-Клара.
Загальні відомості
На рис. 1 показана загальна структура спрощеного алгоритму DES (S-DES). Даний алгоритм отримує на вході 8-бітовий блок відкритого тексту і 10-бітовий ключ, а на виході генерується 8-бітовий блок шифрованого тексту. Алгоритм дешифрування S-DES в якості вихідних даних використовує 8-бітовий блок шифрованого тексту і той же 10-бітовий ключ, який застосовувався для шифрування, а в результаті роботи алгоритм дешифрування повинен генерувати 8-бітовий блок відкритого тексту.
Рис. 1. Схема спрощеного алгоритму DES
Алгоритм шифрування включає послідовне виконання п'яти операцій: початкової перестановки IP, складної функції f K, що є композицією операцій перестановки і підстановки і залежить від отриманого ключа, перестановки SW, за якої дві половинки послідовності даних просто міняються місцями, ще раз функції f K і, нарешті , перестановки, зворотної початкової (IP -1). Функція f K використовує в якості вихідних даних не тільки текст, що шифрується, але і 8-бітовий ключ
Даний алгоритм можна представити у вигляді композиції функцій:
шифрований текст = IP -1 (f k2 (SW (f k1 (IP (відкритий текст ))))),
де
K 1 = P8 (зсув (P10 (ключ))),
K 2 = P8 (зсув (зрушення (P10 (ключ )))).
Процес дешифрування, по суті, є процесом, зворотним процесу шифрування:
відкритий текст = IP -1 (f k1 (SW (f k2 (IP (шифрований текст ))))).
Обчислення ключів S-DES
В алгоритмі S-DES використовується 10-бітовий ключ, який повинен бути як у відправника, так і в одержувача повідомлення. З цього ключа на певних етапах шифрування і дешифрування генерується два 8-бітових підключа. На рис. 2 показана схема процедури створення цих підключений.
Рис. 2. Обчислення ключів S-DES
Спочатку виконується перестановка бітів ключа наступним чином. Перестановка P10 в табличній формі має вигляд:
P10 |
|||||||||
3 |
5 |
2 |
7 |
4 |
10 |
1 |
9 |
8 |
6 |
Цю таблицю слід читати зліва направо. Кожен її елемент ідентифікує позицію біта вихідних даних у генерується вихідний послідовності. Після цього окремо для перших п'яти бітів і окремо для других виконується циклічний зсув вліво (LS-1). Потім застосовується перестановка P8, в результаті якої з 10-бітового ключа спочатку обираються, а потім переставляються 8 бітів за наступним правилом.
P8 |
|||||||
6 |
3 |
7 |
4 |
8 |
5 |
10 |
9 |
У результаті цієї операції виходить перший підключ (K 1). Тепер треба повернутися до двох 5-бітовим рядках, отриманими в результаті застосування функцій LS-1, і виконати з кожною з цих рядків циклічний зсув вліво на дві позиції (LS-2). Нарешті, застосувавши до отриманої в результаті послідовності перестановку P8, отримаємо з'єднання K 2.
Шифрування S-DES
На рис. 3 представлена більш детальна схема алгоритму шифрування S-DES. На вхід алгоритму надходить 8-бітовий блок відкритого тексту, до якого застосовується початкова перестановка, задана функцією IP.
Усі 8 бітів відкритого тексту зберігають свої значення, але змінюється порядок їхнього проходження. На завершальній стадії алгоритму виконується зворотна перестановка.
Рис.3. Детальна схема шифрування S-DES
Функція f K
Найскладнішим компонентом S-DES є функція f K, що представляє собою комбінацію перестановки і підстановки. Нехай L і R означають відповідно перші 4 біти і останні 4 біта 8-бітової послідовності, що подається на вхід f K, і нехай F-деяке відображення простору 4-бітових рядків у себе, не обов'язково є взаємно однозначною. Тоді покладемо
fK (L, R) = (L ⊕ F (R, SK), R),
де SK позначає з'єднання, а ⊕ - операцію XOR.
Тепер опишемо відображення F. На вході цього відображення маємо 4-бітове значення (n1, n2, n3, n4). Першою операцією є операція розширення / перестановки.
E/P |
|||||||
4 |
1 |
2 |
3 |
2 |
3 |
4 |
1 |
Для подальшого розгляду зручніше представити результат в такій формі:
n4 | n1 n2 | n4
n2 | n3 n4 | n1
До цього значення за допомогою операції XOR додається 8-бітовий з'єднання K1 =
(k11, k12, k13, k14, k15, k16, k17, k18):
n4+k11|n1+k12 n2+k13|n4+k14
n2+k15|n3+k16 n4+k17|n1+k18
Давайте перейменуємо отримані в результаті 8 бітів, як показано нижче
p0,0| p0,1 p0,2|p0,3
p1,0| p1,1 p1,2|p1,3
Перші чотири біта (перший рядок наведеної вище матриці) надходять на вхід S0, на виході якого виходить 2-бітова послідовність, а решту чотири біта (другий рядок матриці) - на вхід модуля S1, на виході якого виходить інша 2-бітова послідовність. Модулі S0 і S1 можна визначити так:
S0: |
|||
1 |
0 |
3 |
2 |
3 |
2 |
1 |
0 |
0 |
2 |
1 |
3 |
3 |
1 |
3 |
1 |
S1: |
|||
1 |
1 |
2 |
3 |
2 |
0 |
1 |
3 |
3 |
0 |
1 |
0 |
2 |
1 |
0 |
3 |
Ці S-модулі (матриці кодування) працюють таким чином. Перший і четвертий біти вхідної послідовності розглядаються як 2-бітові числа, що визначають рядок, а другий і третій - як числа, що визначають стовпець S-матриці. Елементи, що знаходяться на перетині відповідних рядка і стовпця, задають 2-бітові вихідні значення.
Тепер 4 біта, отримані на виході модулів S0 і S1, перетворюються з допомогою перестановки наступним чином.
P4 |
|||
2 |
4 |
3 |
1 |
Результат застосування перестановки P4 і є результатом функції F.
Функція-перемикач
Функція f K змінює тільки чотири лівих біта. Тому наступною операцією в алгоритмі шифрування є використання функції SW, яка міняє місцями перші і останні чотири біта послідовності, щоб при наступному виклику функції f K остання працювала вже з іншого четвіркою бітів. При другому виклику f K функції E / P, S0, S1 і P4 залишаються тими ж, що і при першому, але замість ключа K 1 використовується ключ K 2.