ДОСЛІДЖЕННЯ АЛГОРИТМУ ШИФРУВАННЯ IDEA.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра Телекомунікацій

Інформація про роботу

Рік:
2001
Тип роботи:
Методичні вказівки до лабораторної роботи
Предмет:
Захист інформації в телекомунікаційних системах

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” Кафедра “Телекомунікації”  ДОСЛІДЖЕННЯ АЛГОРИТМУ ШИФРУВАННЯ 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ОХЂ<w˜4ьд꓆•—ща=љ• Довжина файла 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
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!