МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет “Львівська політехніка”
Кафедра “Телекомунікації”
ДОСЛІДЖЕННЯ АЛГОРИТМУ ШИФРУВАННЯ IDEA
Методичні вказівки до циклу лабораторних робіт № 5, 6 та 7
з курсу «Захист інформації в телекомунікаційних системах»
для студентів спеціальності «Інформаційні мережі зв'язку»
Львів 2001
“Дослідження алгоритму шифрування IDEA”. Методичні вказівки до циклу лабораторних робіт № 5, 6 та 7 з курсу “Захист інформації в телекомунікаційних системах” для студентів спеціальності 7.092402 - “Інформаційні мережі зв'язку”. - Львів 2001. – 26 с.
Автори: доцент Коваль Б.В.
доцент Ящишин Є.М.
Рецензенти: доцент, д.т.н. Тимченко О.В.
доцент, к.т.н. Оборжицький В.І.
У цикл лабораторних робіт “Дослідження алгоритму шифрування IDEA” увійшли 3 роботи:
№ 5. Ознайомлення з алгоритмом шифрування IDEA.
№ 6. Дослідження розподілу ключів алгоритму шифрування IDEA
№ 7. Дослідження шифрування різнотипної інформації алгоритмом IDEA
Методичні вказівки затверджено на засіданні кафедри “Телекомунікації” Національного університету “Львівська політехніка” 04.04.2001 р., протокол № 8.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Історія розвитку IDEA.
До початку 70-тих років дослідження в області криптографії проводились виключно в військових цілях і жодні публікації про досягнення в цій галузі науки не публікувались.
На той час в США існувала NSA яка в певній мірі систематизувала розробки для військових цілей і не існувало жодних координуючих організацій в області криптографії вцілому.
В кількох країнах існували кілька невеликих підприємств, які власноруч створювали криптосистеми для захисту інформації. Але існувала велика проблема, а саме - ці криптосистеми порозумітись між собою не могли - різноманітні алгоритми і формати представлення даних. Крім того, не існувало ніякого аналізу якості криптосистем, і жодна людина не могла сказати з якоюсь впевненістю, що саме ця криптосистема краща за іншу, і тим більше ніхто не міг показати, чим же ж вона краща.
В 1972 NBS (зараз NIST) розпочало програму, ціллю якої було забезепечення безпеки комп”ютерних даних, що пересилаються. Як частина цієї програми, було запропоновано опрацювати єдиний, стандартизований криптографічний алгоритм для забезпечення секретності передачі цифрових даних і секретності їх зберігання. Такий єдиний алгоритм можна було б протестувати і сертифікувати його безпечність і надійність. Крім того, за його допомогою могли б створюватись різноманітні криптографічні системи. Результат роботи повинен був бути якомога дешевшим в плані впровадження і легким для розуміння.
15 травня 1977 року NBS оприлюднив в Federal Register вимоги, що виставлялись до проектів стандартизованого криптографічного алгоритму. Критерії проекту були наступними:
Алгоритм повинен забезпечувати високу ступінь безпеки.
Алгоритм повинен бути повністю описаний і легко зрозумілий.
Безпека алгоритму повинна базуватись на безпеці ключа і не повинна залежати від безпеки самого алгоритму.
Алгоритм повинен бути доступним для всіх користувачів.
Алгоритм повинен мати можливість адаптації, що робило б його доступним для реалізації в інших комп”ютерних системах.
Алгоритм повинен давати можливість економічної, електронної реалізації.
Алгоритм повинен бути ефективним у вжитку.
Алгоритм повинен давати можливість переконатись
в правильності роботи.
Алгоритм повинен відповідати умовам експорту.
Кількість запропонованих проектів свідчила про велику зацікавленість у появі єдиного стандарту, але через практичну відсутність досвіду в створенні криптографічних алгоритмів жодна з надісланих пропозицій не була навіть близькою до поставлених вимог.
NBS прийшлось ще раз оголошувати конкурс в Federal Regіster 27 серпня 1974 року. В кінці кінців було отримано кандидата, який вцілому відповідав поставленим вимогам - він базувався на опрацьованому на IBM на початку 70-тих років алгоритмі під назвою Lucifer. Цей алгоритм використовував тільки прості операції над малими групами бітів і міг бути дуже ефективно реалізований як апаратно, так і програмно.
NBS попросив NSA про допомогу в визначенні ступеня безпечності алгоритму і визначення ймовірності його використання як федерального стандарту. В той же час IBM запатентувала цей алгоритм, але була згідна надавати цю свою інтелектуальну власність з ціллю продукування, реалізації і використання.
NBS i NSA виробили спільні умови і отримали остаточну ліцензію, що була вільна від сплати за авторські права на виробництво і продажу апаратури, в якій буде застосовуватись алгоритм.
В результаті, 17 березня 1975 року, NBS надрукувала в федеральному реєстрі опис алгоритму. В іншому повідомленні від 1 серпня 1975 року було запрошено всіх зацікавлених осіб надсилати свої коментарі щодо алгоритму.
В 1976 році NBS організувало дві наукові конференції для оцінки запропонованого стандарту. В рамках першої конференції алгоритм обговорювався з математичної точки зору і можливості існування в ньому западні, використання якої могло б звести нанівець зусилля алгоритму по наданню даним конфіденційності. Під час другої конференції розглядались питання можливої зміни довжини ключа алгоритму і вплив довжини ключа на надійність алгоритму. На обидві конференції були запрошені автори алгоритму, експерти, виробники, продавці, споживачі і критики.
Перша згадка про даний алгоритм була в 1990 році, коли опубліковано алгоритм PES - запропонований стандарт шифрування. Після цього роком пізніше було опубліковано працю про криптоаналіз і автори піддали атаці свій шифр. Так виник новий алгоритм IPES - покращений PES. Назва була змінена на IDEA в 1992 році.
IDEA (International Data Encryption Algorithm) - це другая версія блочного шифру розробленого К.Лейем (Lai) і Д.Мессі (Massey) в кінці 80-х. IDEA (International Data Encryption Algorithm - Міжнародний алгоритм шифрування даних), попередня версія PES (Proposed Encryption Standard - Пропонований стандарт шифрування).
В обидвох шифрах явний та зашифрований текст - блоки по 64 біти, секретний ключ довжиною 128 біт. Обидва шифри базуються на новому понятті розробки "змішування операції від інших алгебраїчних груп". Потреба "путаниці" досягалася послідовним використанням трьох "несумісних" групових операцій в парах 16-ти бітових підблоків і структура шифру вибиралася, щоб запезпечити необхідне "розсіювання". Структура шифру в подальшому вибиралася так, щоб полегшити як апаратну так і програмні реалізацію. Шифр IDEA являється покращеною версією PES і був розроблений, щоб збільшити безпеку проти диференційного криптоаналізу.
1.2.Опис алгоритму.
Цей шифр складається з 64-бітових блоків, що повторюються, з 128-бітовим ключем і восьма проходами (rounds). Хоча цей шифр не шифр Файстела (Feistel), дешифрування виконується по тому ж принципу, що і шифрування. Так як і інші блокові алгоритми, які до цього часу існують, IDEA порівно використовує як змішування так і розпорошування. Шифр IDEA являється повторенням шифру з вісім циклів і супроводжується вихідним перетворенням. Структура шифру була розроблена для легкого втілення як програмно, так і апаратно, и безпека IDEA грунтується на використанні трьох не сумісних типів арифметичних операцій над 16-бітовим словами. Швидкість програмного IDEA порівнювана зі швидкістю DES.
Повний перший цикл і вихідне перетворення зображені на схемі (рис.4).
1.2.1.Процес шифрування.
В шифрувальному процесі показаному на рис.4, використовуються три інших групові операції пар 16-ти бітових підблоків, а саме
побітове виключаюче-АБО двох 16-ти бітових підблоків, позначається як (;
додавання цілих по модулю 216, де 16-ти бітовий підблок пердставлений як звичайне ціле при основі 2; результуюча операція представлена як [+];
множення цілих по модулю 216+1, де 16-ти бітовий підблок пердставлений як звичайне ціле при основі 2, крім того всі нульові підблоки розглядаються як 216; результуюча операція представлена як (;
Примітка як приклад цих групових операцій:
поскільки
64-х бітовий блок явного тексту Х розбивається на чотири 16-ти бітові підблоки X1,X2,X3,X4, тобто X = (X1; X2; X3; X 4). Чотири підблоки явного тексту потім перетворюються в чотири 16-бітові підблоки зашифрованого тексту Y1; Y2; Y3; Y4 [тобто, блок зашифрованого тексту - Y = (Y1; Y2; Y3; Y4 )] під керування 52-х 16-ти бітових підблоків клоча, які формуються з 128-бітового секретного ключа способом, який описаний нижче. Для r = 1,2,....,8, шість підблоків ключа використані в r-му циклі будіть позначені як . Чотири 16-бітові підблоки ключа використовуються при вихідному перетворенні позначені як.
В кожному циклі ці чотири підблоки посумовані по модулі 2, додані та помножені по модулю 216.
В кожному циклі порядок дій наступний:
Множимо Х1 на перший підблок ключа.
Додаємо Х2 до другого підблоку ключа.
Додаємо Х3 до третього підблоку ключа.
Множино Х4 на четвертий підблок ключа.
Додаємо по модулю 2 результати кроків 1 і 3.
Додаємо по модулю 2 результати кроків 2 і 4.
Множимо результат кроку 5 на п`ятий підблок ключа.
Додаємо результати кроків кроків 6 і 7.
Множимо результат кроку 8 на шостий підблок ключа.
Додаємо результати кроків 7 і 9.
Додаємо по модулю 2 результати кроків 1 і 9.
Додаємо по модулю 2 результати кроків 3 і 9.
Додаємо по модулю 2 результати кроків 2 і 10.
Додаємо по модулю 2 результати кроків 4 і 10.
На виході циклу отримуємо чотири підблоки результатів кроків 11, 12, 13, 14. Після заміни місцями двох внутрішніх підблоків (в останньому циклі ця оперція не виконується) отримуємо вихідний блок для наступного циклу.
По восьмому циклі виконується кінцева перестановка:
Множимо Х1 з першим підблоком ключа.
Додаємо Х2 до другого підблоку ключа.
Додаємо Х3 до третього підблоку ключа.
Множимо Х4 з четвертим підблоком ключа.
Остататочно отримані в результаті вище наведений операцій чотири підблоки з`єднуються в один блок шифрограми.
1.2.2.Процес дешифрування.
Підблоки ключа при дешифруванні є одночасно як адетивними так і мультиплікативними оберненнями підблоків ключа вжитого для шифрування. Для алгоритму IDEA прийнято, що мультиплікативна зворотність нуля є нуль.
Граф процесу дешифрування той самий, що і для процесу шифрування, єдина відмінність в тому, що підблоки ключа дешифрування Ki(r) обраховуються з підблоків ключа шифрування Zі(r) наступним чином:
де Z-1 визначено як інверсія множення (по модулю 216+1) від Z, тобто Z(Z-1=1;
-Z визначено як інверсія додавання (по модулю 216) від Z, тобто -Z[+]Z=0;
Обрахунок підблоків ключа дешифрування з підблоків ключа шифровання показаний в таблиці 1.
Рис.4. Структурна схема алгоритму IDEA.
1.2.3.Розподіл ключів.
52 підблоки ключа довжиною 16 біт, що використовуються в процесі шифрування генеруються з 128-бітового ключа користувача наступним чином: 128-бітний ключ користувача поділяється на вісім підблоків, які безпосередньо використані в якості перших восьми підблоків ключа, де впорядковані підблоки ключа визначені як:
.
128-бітний ключ користувача потім циклічно зсувається вліво на 25 позицій, після якого результуючий 128-бітний блок знову поділяється на вісім підблоків, які взяті як наступні вісім підблоків ключа. Отриманий 128-бітний блок знову циклічно зсувається на 25 позицій вліво, щоб утворити наступні вісім підблоків ключа, і ця процедура повторюється поки всі 52 підблоки ключа не будуть згенеровані.
Таблиця №1
Цикл
Підблоки ключа шифрування
Підблоки ключа дешифрування
1
2
3
4
5
6
7
8
Кінцева перестановка
1.2.4.Групові операції і їх взаємозв`язок.
Шифр IDEA базується на новому понятті розробки змішаних операцій інших алгебраїчних груп однакової кількості елементів. Групові операції вибрані поскільки статистичне відношення трьох будь-яких змінних U; V; W зв`язане груповою операцією W=U*V має властивість "абсолютна секретність", якщо будь-яка з трьох випадкових змінних вибрана незалежно від інших і рівноймовірно і є любим груповим елементом, то дві інші випадкові змінні статистично незалежні. Взаємодія інших групових операцій забезпечує "путаницю" необхідну для безпечного шифру, пояснюється в двох наступних пунктах.
1.2.5.Характерестики безпеки IDEA.
Один із принципів створення IDEA - ускладнити диференційний криптоаналіз. Також не одна лінійна криптоаналітична атака не закінчилась успішно, як і не було виявлено алгебраїчно слабких місць.
Довжина ключа в алгоритмі IDEA становить 128 бітів - це понад в два рази більше ніж алгоритм DES. Така довжина ключа зумовлює те, що існує 2128 (1038) шифрограм. Якщо б спроектувати цифровий пристрій, який тестує міліард ключів в секунду і використати міліард таких пристроїв, то тривалість розпізнавання становила 1013 років, що набагато більше за час існування всесвіту. Мережа з 1024 машин знайшла ключ на протязі дня, але в цілому всесвіті не знайшлося б стільки атомів кремнію, щоб побудувати стільки машин.
Самий повний аналіз провів Daemen. Він відкривив великий клас 251 слабких ключів, при використанні яких в процесі шифрування, ключ може бути виявлений і відновлений. Однак, в IDEA існує 2128 можливих варіантів ключів, то це відкриття не впливає на практичну безпеку шифру.
Щодо ключів, що є слабкими, то конкретне рішення по їх викоританню чи невикористанню залежить від розробника криптосистеми. З одної сторони, ймовірність появи саме слабкого ключа є практично нульовою, а з іншої не складним є перед використанням перевіряти ключі на їх належність до множини слабких, напівслабких чи частково слабких ключів.
Крім того, певну небезпеку з точки зору криптостійкості системи становить властивість комплементарності ключів. Комплементарні ключі - це ключі, протилежні за формою один одному - кожній одиничці одного ключа відповідає нолик в другому і навпаки.
Небезпека є в тому, що комплементарні ключі шифрують комплементарні тексти явні до комплементарних шифрограм. В результаті, при застосуванні атаки за допомогою тексту явного достатньо реалізувати лише половину переборів ключів від максимального числа 2128. Біхам і Шамір показали, що при застосуванні такого методу потрібно як мінімум 251 різних текстів явних. Слід сказати, що ефект від властивості комплементарності дуже легко зменшити, застосувавши перетворення вихідного тексту явного в послідовність більш-менш рівноймовірних символів, і тоді час, потрачений на аналіз комплементарних текстів в порівнянні з часом, затраченим на пробу ключа, зведе до нуля ефект комплементарності.
З початку впровадження IDEA точиться дискусія щодо криптостійкості, яка забезпечується таким ключем. І що цікаво, з плином часу оцінки експертів щодо необхідних затрат ресурсів часу і грошей для злому алгоритму, що має саме таку довжину ключа збільшуються.
В результаті цього до даного часу не доказано математично, за скільки ж часу можна все-таки ефективно перебрати 2128 ключів.
Крім того, після впровадження в 1990 році Біхамом і Шаміром різнецевої атаки, питання про довжину ключа втратило актуальність через те, що для цього методу атаки на криптографічні системи довжина ключа не грає принципової ролі.
В зв”язку з цим єдиним критерієм можна назвати той, що довжина ключа повинна забезпечувати таку кількість комбінацій, яку не можна було б перебрати швидше того часу, за який можна реалізувати різнецеву криптоатаку.
В цьому розділі, вказано деякі доказані характеристики безпеки шифру IDEA.
Путаниця. Путаниця необхідна для безпечного шифру, в алгоритмі IDEA досягається змішуванням трьох несумісних групових операцій. В процесі шифрування для IDEA три групові операції так розмішуються, що вихідна операція одного типу ніколи не використана в якості вхідної операції того ж типу.
Три операції несумісні по змісту:
Ніяка пара трьох операцій не задовільняє "дистрибутивний" закон. Наприклад,для операцій ( і [+], для a,b,c в F216:
a[+](b(c)((a[+]b)((a[+]c).
Для прикладу,a=b=c=1=(0,0,...,0,1), ліва сторона нерівності 2=(0,0,...,0,1,0), права сторона - 4=(0,0,...,0,1,0,0).
Ніяка пара трьох операцій не задовільняє "узагальнений асоціативний" закон. Наприклад,для операцій [+] і (, для a,b,c в F216:
a[+](b(c)((a[+]b) ( c.
Для прикладу,a=b=c=1=(0,0,...,0,1), ліва сторона нерівності 1=(0,0,...,0,1), права сторона - 3=(0,0,...,0,1,1). Таким чином не можна випадково змінити порядок операцій, щоб спростити аналіз.
Три операції зв`язуються прямим розподілом та інверсією. Шифрувальне значення в тому, що якщо б існував ізотопізм між двома операціями, тоді можна було одну операцію іншою прикладаючи взаємно-нежалежний розподіл на вході і виході.
Розсіювання. Перевірка прямих обчислень показала, що функція циклу - "завершена",тобто кожен вихідний біт першого циклу залежить від кожного біту відкритого тексту і від кожного біта ключа використаного на цьому циклі. Це рлзсіювання проводиться в шифрі IDEA перетворенням, що називається структура множення-додавання (МД), яка показана на рис.5. Структура МД перетворює два 16 бітні підблоки в два 16-ти бітні підблоки керовані двома 16-ти бітними підблоками ключа.
Рис.6. Граф МД структури
Ця структура має наступні особливості:
для любого вибору підблоків ключа Z5 і Z6, МА(.,.,Z5,Z6) - зворотнє перетворення; для любого вибору U1 і U2, МА(.,.,U1,U2) - також зворотнє перетворення;
ця структура має "завершене розсіювання" ефект якого полягає в наступному: кожен вихідний підблок залежить від кожного вхідного підблоку, і ця структура використовує найменшу кількість потрібних операцій (чотири), щоб досягнути такого повного розсіювання.
1.2.6.Реалізація шифру.
Шифр IDEA легко реалізується в програмному забезпеченні, оскільки тільки основні операції в парах 16-ти бітних підблоків використовуються в процесі шифрування.
Регулярна модульна структура шифру забезпечує апаратну реалізацію. Схожість шифрування і дешифрування дає можливість використовувати один і той же пристрій для шифрування та дешифрування.
ДОСЛІДЖЕННЯ АЛГОРИТМУ IDEA
Аналіз структури алгоритму.
Алгоритм IDEA має високу криптостійкість, саме це забезпечує його структура зображена на рис.4. Як було уже сказано алгоритм використувує в рівній мірі як розпорошування так і змішування. Мішаються не тільки біти в 16-ти бітових блоках, але і самі блоки (X2,X3) після кожного циклу, тому якщо використовувати нульовий ключ, то розпорошування дасть шифрограму, яка буде відрізнятися від явного тексту.
Змішування та розпорошування бітів забезпечується логічними операціями над ними. IDEA використовує при роботі три таких операції:
Побітова сума по модулю 2 (виняткове АБО) 16-ти бітових чисел;
Додавання по модулю 216 16-ти бітових чисел;
Множення по модулю 216+1 16-ти бітових чисел.
Розгянуто кожну з перерахованих операцій. Почнемо з першої.
Сума по модулю 2. Це одна з основних логічних операцій, вона дорівнює істині, коли два агрументи різні. Прийнято позначати значком (, або англійським словом XOR. Табличка істинності для двох аргументів:
a
b
a(b
0
0
0
0
1
1
1
0
1
1
1
0
Однак дана логічна операція зворотньої дії, тобто маючи один аргумент та результат, можна легко визначити інший аргумент, просумувавши їх по модулю 2.
Сума по модулю 216. Це просте арифметичне додавання двох 16-ти бітових чисел з приведенням результату до 16-ти біт. Тобто додавання без врахування переносу. Дана операція також зворотньої дії.
Запис на мові С:
unsigned int a,b,c;
c=(unsigned int) a+b;
Множення по модулю 216+1. Саме ця дія забезпечує односторонність алгоритму. Для розуміння наведено блок-схему реалізації такої операції (рис.7).
Рис.7. Блок схема алгоритму множення по модулю 216+1.
Як видно з рисунку результат такої дії не буде нульовим, навіть коли два аргументи дорівнюють нулю. Це тому, що є перевірки і тому при множенні двох нулів даним алгоритмом результатом буде 1.
Робота алгоритму: функції, що виконує операцію множення по модулю 216+1, передаються два 16-ти бітових числа. Спочатку вони перевіряються на рівність нулю, якщо хоча б одне відповідає рівності, то результатом агроритму буде різниця одиниці та іншого з них. В протилежному випадку ці числа перемножаються простим алгебраїчним множенням, причому результат - число довжиною 32 біти. Після чого з результату виділяється старша та молодша частини по 16 біт кожна. Далі від молодшої частини віднімається старша, причому при цьому порівнюється чи молодша була більшою за старшу, якщо так то до результату додається 1. Тому дана операція і називається множення по модулю 216 плюс одиниця.
Для прикладу множення по модулю 216+1 чисел 21364 та 21332 дасть результат 58087.
Аналіз розподілу ключів.
Як було сказано у попередньому розділі алгоритм IDEA використовує ключ заданий користувачем довжиною 128 бітів. Але в явному вигляді цей ключ не використовується, натомість в кожному циклі алгоритм вимагає по шість ключів та в кінцевій перестановці ще чотири. Всі ці ключі це підблоки по 16 бітів утворені з головного ключа довжиною 128 бітів. В сумі підблоків ключа є 52, незалежно чи для шифрування чи дешифрування. Різниця полягає лише у їх утворенні.
При шифруванні підблоки ключа утворюються дуже просто. Спочатку початковий ключ розбивається на вісім підблоків по 16 біт. Далі ключ зсувається циклічно на 25 бітів вліво та знову розбивається на підблоки. Операція продовжується поки підблоків ключа не буде 52. Для наглядності процес утворення підблоків ключа для шифрування показаний на рис.8. На рисунку показані номери бітів, що дозволяє простежити кожен біт головного ключа в кожному підблоці ключів шифрування.
0
1
2
3
…
7
8
…
15
…
…
120
…
127
Z0
Z1
…
Z7
Зсув 1
25
26
27
28
…
32
33
…
40
…
…
17
…
24
Z8
Z9
…
Z15
Зсув 2
49
50
51
52
…
56
57
…
64
…
…
41
…
48
Z16
Z17
…
Z23
Зсув 3
73
74
75
76
…
80
81
…
88
…
…
65
…
72
Z24
Z25
…
Z31
Зсув 4
97
98
99
100
…
104
105
…
112
…
…
89
…
96
Z32
Z33
…
Z39
Зсув 5
121
122
123
124
…
1
2
…
9
…
…
113
…
120
Z40
Z41
…
Z47
Зсув 6
18
19
20
21
…
25
26
…
33
…
…
42
…
49
Z48
Z49
…
Z51
Рис.8. Формування підблоків при шифруванні.
Значно складніше з ключами для дешифрування. Спочатку утворюються ключі для шифрування, а потім по таблиці №1 або по формулі формулються підблоки ключа для дешифрування:
Як в таблиці так і формулі є багато незрозумілого, це мінуси перед числом та мінуси в степені. Як видно з таблиці №1 ключі для дешифрування береться в зворотньому порядку від ключів для шифрування. Причому вони не рівні ключам для шифрування. Мінус перед підблоком ключа означає, що береться обренене (від`ємне) число. З цим особливої складності не виникає, адже просто беремо відповідний підблок ключа для шифрування робимо його від`ємним і маємо підблок ключа для дешифрування. Значно складніше з мінусом у степені. Це так звана операція інверсії по модулю 216. На рисунку 9 зображена блок-схема алгоритму, який виконує вказану інверсію.
Робота алгоритму полягає в наступному. Алгоритму передається в якості аргумента 16-ти бітове число, що потрібно інвертувати. Його позначено як х. Для роботи алгоритму потрібні також проміжні 16-ти бітові змінні позначені як: t0, t1, q, y.
Спочатку перевіряється чи х більше від одиниці. Якщо ні, то одиниця в будь-якій степені дасть в результаті одиниці, тому результатом алгоритму е саме х. В протилежному випадку ділиться чмсло 655327 на аргумент, змінній t1 присвоюється результат від ділення, а y - остачу. Після чого перевіряється,якщо остача від ділення рівна одиниці, то результатом інверсії буде різниця 1-t1. В протилежному випадку змінній t0 присвоюємо одиницю. Після чого відбувається цикл, в якому виконуються наступні операції. Спочатку змінній q присвоюється результат ділення х та y, в ту ж змінну х записується остача. До змінної t0 додається добуток q*t1. Знову перевіряється остача від ділення на рівність одиниці, якщо рівність правильна, то результатом інверсії буде t0. Якщо ні то йде наступний блок операцій: q=y/x, y-остача, t1=t1+(q*t0). Знову перевіряється остача від ділення. Якщо вона не рівна одиниці, то цикл переходить на початок, у випадку коли рівність справджується результатом дії алгоритму буде різниця 1-t1. На цьому дія алгоритму закінчується.
В таблиці №2 показані результати розподілу підблоків ключів для шифрування та дешифрування.
Головний ключ - ST_key for Idea, в бінарному вигляді - 0101001101010100 0101111101101011 0110010101111001 0010000001100110 0110111101110010 0010000001001001 0110010001100101 0110000100000000.
Таблиця №2.
Номер підблоку ключа
Підблоки ключа
шифрування
Підблоки ключа
дешифрування
1
2
3
1
0101001101010100
0011000011100111
2
0101111101101011
1010000110111000
3
0110010101111001
1110011001100101
4
0010000001100110
1000111011010001
5
0110111101110010
0010110010001100
6
0010000001001001
1010110000100000
7
0110010001100101
0111000000111010
8
0110000100000000
0011001000010010
9
1101011011001010
1101101111110100
1
2
3
10
1111001001000000
1011011100110000
11
1100110011011110
1011011100110000
12
1110010001000000
0000101001101010
13
1001001011001000
1000101111101101
14
1100101011000010
0001101001100100
15
0000000010100110
0000100011011110
16
1010100010111110
1111100110011010
17
1000000110011001
1010100101101111
18
1011110111001000
0011010101000101
19
1000000100100101
1111011010110110
20
1001000110010101
0101111101000101
21
1000010000000001
1011100110101010
22
0100110101010001
1100110010000101
23
0111110110101101
0110111000101110
24
1001010111100100
1010001011111011
25
1001000100000010
0101101100101011
26
0100101100100011
1110011011100101
27
0010101100001000
1101010011111000
28
0000001010011010
1011010011011101
29
1010001011111011
0111011000000010
30
0101101100101011
0111110110101101
31
1100100100000011
1001010111100100
32
0011001101111011
1001011010001010
33
0100011001010110
0111101111111111
34
0001000000000101
0110111001101011
35
0011010101000101
1001111111101110
36
1111011010110110
1000000110011001
37
0101011110010010
1011110111001000
38
0000011001100110
0001010100100100
39
1111011100100010
1111111101011010
40
0000010010010110
0011010100111110
41
0000101001101010
1110000010110010
42
1000101111101101
1100110011011110
43
0110110010101111
1110010001000000
44
0010010000001100
1010001011101110
45
1100110111101110
0010100100110110
46
0100010000001001
1001111100000000
47
0010110010001100
1010001000110110
48
1010110000100000
0110111101110010
49
1101101011011001
0010000001001001
50
0101111001001000
1010001111111000
51
0001100110011011
1010000010010101
52
1101110010001000
1001101010000111
Шифрування різноманітної інформації.
Після проведення аналізу самого алгоритму шифрування IDEA, було проведено дослідження шифрування інформації даним алгоримтом та порівняльний аналіз з алгоритмом шифрування DES. Файли, які досліджувались це текстові та графічні в форматі Bitmap (bmp).
Головними показниками порівняння були алфавіт файла, його ентропія та розподіл символів.
Нижче наведено рисунки з порівнянням.
Довжина файла 188 байт.
Алфавіт файла 35.
Ентропія файла 4.45201.
Рис.10. Фрагмент текстового файла та його параметри.
Рис.10. Розподіл символів у файлі до шифрування.
Наведено характеристики файла по яким буде проводитись порівння. Закодовано даний файл двома алгоритмами з ключем Proba. Нижче наведено сам файл та параметри.
¦^¶AdбфМ’~[! |Н1'g«‹PGS”Цйшg0і«¬.Z>“+D‹ O¬ьxaфБ_ЯсRµ^Qйы0ЫN ¶шцї –_Ќk#ш}¦^¶Adбфь$ЄMЦу"“+D‹ O¬ь?°НщЪНя¦zu}Џ…K5/c8Ђmŷ꥝ͷ’:Q›±jWФ®0-Пнчњ‘т>6Ўљr?т/ћуж¬glяі†_ґЁ`D‹а‘ЉтЊkЉ`лЛ8Џ
Довжина файла 192 байти.
Алфавіт файла 129.
Ентропія файла 6.83338.
Рис.11. Зашифрований файл IDEA та його параметри.
Рис.12. Розподіл символів у файлі зашифрованому IDEA.
~»f&іИgAг?ё|PXЪ]бWU+_“WНM7”gУ‡ї¶н¦ь©џ~™Т)љkџч| нј–7qло”П
ђ—{-НЃЧ„t‚\Г~с"oщieTЪyґҐ•дёђ°dX\OоMЋѕ–ш O]+<џ-`mи‰З-6Жtр(иЦнј–7qло”ыCЙЕqдёђ°dXрQґЫ°е›ьdу`Б7Јk;ЃљPMлЉВ†]ЦЈ“ЭваќьЋџ@ж\лЧ1ќ©Нt,Dр№юЎ(‡ЮСЁ1ЁWОХЂ<w4ьд꓆•—ща=љ•
Довжина файла 260 байти.
Алфавіт файла 150.
Ентропія файла 7.02379.
Рис.12. Зашифрований файл DES та його параметри.
Рис.13. Розподіл символів у файлі зашифрованому DES.
Далі зашифровано цей самий файл тільки слабким ключем, взятим як нульовий, тобто зашифривано без ключа.
A/i|Я6У‚њi®•—l™а#щЖctnгЂў •PаЂЂчОIX·ЊDй Mч9 Ќ ъш*о8јDV®;аyА{;Њ$A/i|Я6УT=ј%жчОIX·ЊD‘:UЯЊ Д”+оПџђЂ^Љm—эљqФ]©z¶kџќ†јТ®-Ўѕ/і 41*0›_Ґ¶‘„§Dоoј‘0>a$й.ЊР\П‹‡>„С№aДyЌ3тzAB
Довжина файла 192 байти.
Алфавіт файла 124.
Ентропія файла 6.76453.
Рис.14. Зашифрований файл IDEA з слабким ключем та його параметри.
Рис.12. Розподіл символів у файлі зашифрованому IDEA з слабким ключем.
¤уі!7muЫ‘ь'2Q88e1Vљ|щxКnЊе™оEжЛ‚/`тЗn0“xi‰3nѕфOЧAрЊeоъпaЖ5ЉІЊUФХр№ЌкУPиъЃ›Т[…>"±??с11Boн®µЮx†№EM=ЛёB9†^B°IљЊ]ЎфКЈ§ЊeоъпaЖ±`В8e»гс11Boн®Yб,@снdЬmGП¶ !}ХФЙ„xдьЂдЭQЅЛkПС7Q#&ш‘у—пщnЦёіq‰ЪКg6&цўгжЎ:гCЂЙХt¦'>шСK
Довжина файла 260 байти.
Алфавіт файла 152.
Ентропія файла 7.004006.
Рис.12. Зашифрований файл DES з слабким ключем та його параметри.
Рис.13. Розподіл символів у файлі зашифрованому DES з слабким ключем.
Як видно з результатів дослідження обидва алгоритми розподілять частоту появу символів. Тому на розподілах значення по вертикальній осі після шифрування є меншим ніж до шифрування. В наведеному прикладі: до шифрування - 20, IDEA - 4, DES - 8, IDEA зі слабким ключем - 5, DES - зі слабким ключем - 8.
Також зрозумілим є те що алфавіт файла після шифрування збільшується: до шифрування - 35, IDEA - 129, DES - 150, IDEA зі слабким ключем - 124, DES - зі слабким ключем - 152.
Порівнявши результати обидох алгоритмів бачимо, що IDEA мало збільшує довжину файла, та робить розподіл символів у файлі більш рівномірнішим (згладжує) в порівнянні з DES. Однак DES збільшує алфавіт файла, що розгядити максимальне значення частоти появи на більшу кількість симлолів. В даному випадку файл є малим тому візуально різниці не видно.
Нижче наведені результати порівняння шифрування обидвома алгоритмами графічного файла формату BITMAP.
Довжина файла 5662 байти.
Алфавіт файла 96.
Ентропія файла 2.32522.
Рис.14. Вихідний графічний файла та його параметри.
Рис.15. Розподіл символів у файлі.
Довжина файла 5670 байт.
Алфавіт файла 256.
Ентропія файла 7.63682.
Рис.16. Файл зашифрований IDEA та його параметри.
Рис.17. Розподіл символів у файлі після шифрування IDEA.
Довжина файла 5725 байт.
Алфавіт файла 256.
Ентропія файла 7.65055.
Рис.18. Файл зашифрований DES та його параметри.
Рис.19. Розподіл символів у файлі після шифрування DES.
Довжина файла 5670 байт.
Алфавіт файла 243.
Ентропія файла 5.7771.
Рис.20. Файл зашифрований IDEA зі слабким ключем та його параметри.
Рис.21. Розподіл символів у файлі після шифрування IDEA зі слабким ключем.
Довжина файла 5726 байт.
Алфавіт файла 256.
Ентропія файла 7.63654.
Рис.22. Файл зашифрований DES зі слабким ключем та його параметри.
Рис.23. Розподіл символів у файлі після шифрування DES зі слабким ключем.
Як видно з результатів досліджень візуального ефекту в різниці між шифруванні графічних файлів двома алгоритмами не знайдено. Однак видно, що IDEA шифрує блоками і тому на зображенні видно вертикальні лінії. Їх можна було б усунути, якщо повернути зображенні на 90( і зашифрувати ще раз або збільшити кількість циклів в алгоритмі. Останнє приведе до сповільнення роботи алгоритму, адже логічних операцій та підблоків ключа потрібно більше. Тому для шифрування графічних файлів, особливо якщо вони не дуже заповненні, можна було б шифрувати один раз, а потім повертати зображення на 90( і шифрувати ще раз.
ЛАБОРАТОРНИЙ ПРАКТИКУМ
Лабораторна робота № 5
Ознайомлення з алгоритмом шифрування IDEA
Мета роботи
Дослідити роботу алгоритму IDEA, вивчити логічні операції, які він використовує.
Хід роботи.
Ознайомитись з теоретичними відомостями.
Запустити програму Diplom.exe та ознайомитись з оболонкою.
Зайти в лабораторну роботу №1.
В меню "Редагування" змінити ключ та джерело на потрібне значення.
Пройти роботу алгоритму покроково за допомогою кнопки "Далі", результати дій записати.
Вийти з лабораторної роботи та знову зайти для шифрування того ж тексту, але іншим ключем. Ключ ввести дуже схожим на попередній (відмінність можна зробити в одному біті). Результати також записати.
Витерти ключ та пройти алгоритм спочатку. Отримані результати записати.
Спробувати знайти пару ключів, шифрування якими дає дуже схожий результат.
Отримані результати порівняти.
Контрольні запитання.
Для чого застосовується алгоритм шифрування IDEA ?
Які логічні операції він використовує ?
За рахунок чого забезпечується односторонність алгоритму ?
Чому він відноситься до симетричних алгоритмів ?
Скільки слабких ключів існує в IDEA ?
Скільки підблоків ключа потрібно для роботи алгоритму і чому ?
Чим відрізняється процес шифрування від процесу дешифрування ?
Лабораторна робота № 6
Дослідження розподілу ключів алгоритму шифрування IDEA
Мета роботи
Вивчити принцип утворення підблоків ключа для шифрування та дешифрування.
Хід роботи
Ознайомитись з теоретичними відомостями.
Запустити програму Diplom.exe та ознайомитись з оболонкою.
Зайти в лабораторну роботу №2.
В меню "Редагування" змінити ключ на потрібний.
Пройти розподіл ключів покроково за допомогою кнопки "Далі", результати записати.
Вийти з лабораторної роботи та знову зайти для перегляду утворення підблоків, але з іншим ключем. Ключ ввести дуже схожим на попередній (відмінність можна зробити в одному біті). Результати також записати.
Витерти ключ та пройти розподіл спочатку. Отримані результати записати.
Знайти пари ключів в шифруванні та дешифруванні, які рівні між собою.
Знайти в допомозі для лабораторної роботи формулу, по якій утворюються ключі для дешифрування та записати її.
Отримані результати порівняти.
Контрольні запитання.
Як утворюються підблоки ключа при шифруванні ?
Як утворюються підблоки ключа при дешифруванні ?
Чому є пари ключів у шифруванні та дешифруванні, які співпадають? Пояснити за допомогою таблиці чи формули.
Пояснити таблицю,яка є в лабораторній роботі.
Пояснити роботу алгоритму, що інвертує по модулю 216 (наведено в файлі допомоги).
Лабораторна робота № 7
Дослідження шифрування різнотипної інформації алгоритмом IDEA
Мета роботи
Порівняти якість шифрування текстових та графічних файлів, зашифрованих алгоритмами IDEA та DES.
Хід роботи.
Ознайомитись з теоретичними відомостями.
Запустити програму Diplom.exe.
Зайти в лабораторну роботу №3.
В меню "Зміна ключа" змінити ключ на потрібний.
Вибрати будь-який текстовий файл.
Зашифрувати файл. Проглянути як змінилися: розподіл символів у файлі, ентропія та алфавіт файла.
Зашифрувати з іншим ключем. Проглянути, що змінилося.
Зашифрувати цей же файл алгоритмом DES і запустивши програму Entr.exe проглянути результати. Зробити порівняння для двох файлів.
Перейти до шифрування графічних файлів. Відкрити ВМР-файл дуже насичений (фотографія).
Зашифрувати його IDEA та відкрити новий файл такий, щоб можна було чітко бачити контури об`єктів, його також зашифрувати.
Для того, щоб провести таку ж операцію з шифром DES потрібно використати програму ex_bmp.exe.
Отримані результати порівняти.
Знайти в розділі допомоги формулу, якій рахується ентропія.
Контрольні запитання.
Що таке ентропія, від чого вона залежить ?
Що таке алфавіт джерела ?
За якою формулою рахується ентропія ?
Чим можна пояснити те, що на контурних об`єктах видно границі ?
Література
Вербіцький О.В. Вступ до криптології. - Видавництво наук.-техн. літератури. - Львів, 1998.
Столлингс Вильям. Криптография и защита сетей: принципы и практика, 2-е изд.: Пер. с англ. – М. : Издательский дом “Вильямс”, 2001. – 672 с.
Домарев В.В. Защита информации и безопасность компьютерных систем. – К. Издательство «Диасофт», 1999. – 480 с.
Підписано до друку 14.05.2001. Папір офсетний. Друк офсетний.
Умов.-друк. арк. 1,62. Формат 60х84 1/16. Наклад 100 прим. Зам. 1022.
Віддруковано в НВМ Поліграфічного технікуму УАД
79008, м. Львів, пл. Митна, 1