Файл: Лабораторна робота №8.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 02.05.2024

Просмотров: 21

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рисунок 10 – Матриця здвигу для обчислення ключа

Отримане значення знову “перемішується” у відповідності до матриці (рис. 11).

Рисунок 11 – Матриця кінцевої обробки ключа

Схема алгоритму обчислення ключа наведена на рисунку 12.

Рисунок 12 – Схема алгоритму генерації ключа

Відзначимо, що відновлення вихідного тексту виконується за допомогою такої самої послідовності дій, що й при шифруванні, але (!) спочатку використовують ключ і т.д.

Аналіз ефективності алгоритму des

Оскільки довжина блоків вихідного тексту дорівнює 64, підтримка каталогів частот використання блоків є для зловмисника завданням, що виходить за межі сучасних технічних можливостей.

Однак даний алгоритм має ряд недоліків. За час, що пройшов після створення DES, комп'ютерна техніка розвинулася настільки швидко, що виявилося можливим здійснювати вичерпний перебір ключів і тим самим розкривати шифр. Вартість цієї атаки постійно знижується. В 1998 р. була побудована машина вартістю близько 100 тис. доларів, здатна по даній парі (вихідний текст, шифрований текст) відновити ключ за середній час 3 доби. Таким чином, при стандартному використанні алгоритм DES став далеко не оптимальним вибором для задоволення вимогам таємності даних.

Була висунута велика кількість пропозицій по вдосконаленню алгоритму DES, які частково компенсують зазначені недоліки.

Потрійний des

Широко найвідомішою пропозицією по посиленню DES є так званий «потрійний DES», одна з версій якого визначається формулою

.

Тобто, ключ для EDE3  має довжину 56”3=168 байт, і шифрування 64-бітового потоку здійснюється шифруванням з одним підключом, розшифруванням з іншим і потім шифруванням з третім. (Причина, по якій другим кроком є , а не , є сумісність з DES: якщо вибрати , то EDE3 K=DESk. Причина використовування DES три рази замість 2-х полягає в існуванні атаки «зустріч в середині на подвійній DES.)


Проблема з потрійним DES  полягає в тому, що він набагато повільніше, ніж сам DES – його швидкість складає одну третину початкової. При використовуванні EDE3  в режимі зчеплення блоків це уповільнення позначиться як на апаратному так і на програмному (навіть якщо спробувати компенсувати його додатковою апаратною частиною) рівнях. У багатьох випадках таке падіння продуктивності неприйнятне.


Desx - розширення des

В 1984 Рон Ріверст запропонував розширене DES, зване DESX (DES eXtended), вільне від недоліків потрійного DES.

DESX визначається так

тобто, ключ DESX складається з 54+64+64=184 біт і включає три різних підключа: ключ «DES» до, попередній «зашумляючий» ключ  , і завершальний «зашумляючий» ключ .

Для шифрування блоку повідомлення ми складаємо його порозрядний по модулю 2 з  , шифруємо його алгоритмом DES з ключем до і знов порозрядний складаємо по модулю 2 з  .

Таким чином, витрати DESX на шифрування блоку всього на дві операції по модулю 2 більше, ніж витрати початкового алгоритму.

Відносно DESX чудове те, що ці дві операції XOR (що «виключає АБО») роблять шифр набагато менш уразливим по відношенню до перебору ключів. Вкажемо, що DESX утрудняє отримання навіть однієї пари < >  у тому випадку, коли зловмисник організовує атаку на шифр по вибраному початковому тексту, одержуючи безліч пар < >

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

Алгоритм породження ключів

1 В циклі по i від 1 до 16 виконати:

2 Ключ Кi розділити на дві частини: Сi l і Сi r, в перший помістити ліві 28 біт, а в другій - праві 28 біт;

3 Одержати напівключі Сi l і Сi r,  прокрутивши циклічно вліво кожний напівключ З i l і З i r на число біт, задане в таблиці 1. Залишити по 28 біт в кожному з блоків Сi l і Сi r згідно перестановці КР-2, одержавши укорочені напівключі   і ;


4 Конкатенувати   з і запам'ятати укорочений 48-бітовий ключ ; конкатенувати Сi l і Сi r, щоб одержати повний 56-бітовий ключ спершу наступної ітерації

5 Кінець циклу {i}.

З таблиці 1 видно, що за 16 ітерацій напівключі скоюють повний круг, так що К016

Алгоритм шифрування даних

Після початкового перемішування 64-бітовий блок ділиться на дві половини: ліву L0 і праву R0 Цей розподіл на дві половини Li, і Ri після кожної i-той ітерації, i= 1,2..., 16. Після всіх ітерацій половини будуть конкатеновані і поступлять в завершальне перемішування, зворотне до початкового. Операції над Li, і Ri в ході i-той ітерації схематично показані на малюнку  13.

Рисунок 13

Як видно з малюнка, права частина без змін переноситься в ліву частину наступної ітерації, а ліва частина попередньої ітерації піддається декільком  перетворенням, перш ніж стати правою частиною наступної ітерації.

Опишемо ці перетворення.

Перетворення Е. 32 біти вхідного слова діляться на 8 блоків по 4 біти (рис. 2), а потім кожний 4-бітовий блок  перетвориться в 6-бітовий (рис. 3) (див. Алгоритм DES крок 1).

Вхідне слово "закручено" в цикл, так що остання четвірка є сусідньою зліва до першої. Таким чином, вхідне 32-бітове слово перетвориться в 48-бітове. Позначимо результат цієї операції через R' (див. Алгоритм DES крок 2).

Примітка

XOR - порозрядне складання двійкових чисел, без перенесення зайвої одиниці в старший розряд. Для двійкових чисел рівної довжини, якщо aXORb=c, то cXORb=a, тобто перше складання з ключем зашифровує, а друге - розшифровує

Операція XOR [1]. Вводиться черговий 48-бітовий підключ К', і порозрядний складається з R'. Одержуємо

.

Перетворення S . 48-бітовий результат попередній операції ділиться на 8 6-бітових блоків, і кожний блок перетвориться в 4-бітний блок по своїй таблиці S j. (див. Алгоритм DES крок 3).


Перетворення Р . Перестановка, що перемішує (рис. 6) (див. Алгоритм DES крок 3)

Таблиці S і перетворення Р - постійні системи, у відмінності від ключа K i, який часто міняється.