close

Вход

Забыли?

вход по аккаунту

?

Криптосистема на базе фракталов

код для вставкиСкачать
Криптографическая система на основе фрактала Мандельброта
 Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
9
9
9
ВСТУП
У галузі
електроного документообігу та інших предметних областях, де пред'являються підвищені вимоги до безпеки даних при їх зберіганні і передачі, застосовуються різні засоби захисту інформації. Вони дозволяють поменшити ризики порушення цілісності
, конфіденційності та достовірності даних, реалізація яких може призвести до розголошення секретної інформації і, як наслідок, фінансових збитків компаній, особливо в умовах інформаційних воїн. До нашого часу, криптографія займалася виключно забезпеченням
конфіденційності повідомлень (тобто шифруванням). В останні десяти
р
і
чч
я сфера застосування криптографії розширилася і включає не лише таємну передачу повідомлень, але і методи перевірки цілісності повідомлень, ідентифікування відправника
або одержувача (а
утентифікація), цифрові підписи, інтерактивні підтвердження, та технології безпечного спілкування, тощо.
Для сучасної криптографії характерне використання відкритих алгоритмів шифрування, що припускають використання обчислювальних засобів. Відомо більше де
сятка перевір
ених алгоритмів шифрування, які
при використанні ключа достатньої довжини і коректної реалізації алгоритму роблять шифрований текст недоступним для криптоаналізу
.
Поширеним на сьогодні типом
криптографічних систем є асіметричні системи (або си
стеми з відкритим ключем), головною перевагою яких є
висока секретність завдяки відсутн
о
ст
і
необхідності попередньої передачі секретного ключа по надійному каналу.
Альтернативою є симетричні криптосистеми, яким присутня висока швидкість роботи, проте в них
існує небезпека розкриття секретного ключа під час передачі.
Одним із завдань асиметричної криптографії є генерація ключів, до яких висуваються вимоги хаотичності, незворотності і залежн
о
ст
і
від початкових даних. Для вирішення цього завдання пропонується використовувати фрактали ±
нерегулярні структури, що відзначаються
властивістю самоподібно
ст
і
. Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
10
10
Перевагою фракталів є легкість їх обчислення за допомогою рекурсивних функцій, які забезпечують виконання всіх перерахованих вимог. Незважаючи на те, що застосу
вання фракталів у комп'ютерних технологіях є досить молодим напрямом, вони дозволяють вирішувати багато актуальних на сьогодні задач з більшою ефективністю, ніж існуючи алгоритми.
Мета проекту
±
розробка криптографічної системи із використанням фракталів.
Для досягнення цієї мети
необхідно вирішити наступні задачі:
1.
Аналіз існуючих алгоритмів шифрування
, які застосовують фрактали.
2.
Вибір
алгоритмів функціонування та складових частин системи
.
3.
Програмна реалізація обраних алгоритмів
.
4.
Оцінка
якості реалізован
ої
системи
.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
11
11
1 АНАЛІЗ СУЧАСНОГО СТАНУ КРИПТОГРАФІЧНИХ СИСТЕМ
Відомо декілька класифікацій криптографічних алгоритмів
[1]
. Одна з них поділяє алгоритми
в залежності від кількості ключів, що застосовуються в конкретному алгоритмі: ±
бе
з
ключ
о
в
і
:
не використовую
ть в обчисленнях ніяких ключів; ±
одноключ
ові
:
працюють з одним ключовим параметром (секретним ключем); ±
дво
х
ключ
ові
:
на різних стадіях роботи в них застосовуються два ключових параметри: секретний і відкритий ключі.
Рисунок
1
.1 ±
Класифікація криптографічних алгоритмів
1.1
Хеш
-
функції
Хеш
-
функція призначена для перетворення
вхідн
их
дан
их
будь
-
якого (як правило, великого) розміру в дані фіксованого розміру
. Криптографічна хеш
-
функція повинна забезпечувати:
стійкість до колізій (д
ва різні набори даних повинні мати різні результати перетворення);
необоротність
, тобто неможливість обчислити вхідні дані за результатом перетворення.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
12
12
1.2
Симетричні алгоритми
До алгоритмів симетричного шифрування належать методи шифрування, в яких і відправ
ник, і отримувач повідомлення мають однаковий ключ (або, менш поширено, ключі різні але споріднені та легко обчислюються). Ці алгоритми шифрування були єдиними загально відомими до липня 1976
року.
Сучасні дослідження симетричних алгоритмів шифрування зосе
реджено, в основному, навколо блочних та потокових алгоритмів шифрування та їхньому застосуванні. Б
лочні шифри от
ри
мують фрагмент відкритого тексту та ключ, і видають на виході шифротекст такого самого розміру. Оскільки повідомлення зазвичай довші за один блок, потрібен деякий метод склеювання послідовних блоків. Було розроблено декілька методів, що відрізняються в різних аспектах. Вони є режимами дії блочних шифрів та мають обережно обиратись під час застосування блочного шифру в криптосистемі.
Шифри
Data
Encryption
Standard
(
DES
) на
протязі довгого часу залишався стандартом блочних шифрів, доки не був визнан застарілим
. Його модифікація 3
DES залишається досить популярним; він використовується в багатьох випадках, від шифрування в банкоматах до забезпечення
приватності електронного листування та безпечно
го
доступ
у
до віддалених терміналів. У 2001 році на зміну DES
прийшов в
досконалений стандарт шифрування Advanced Encryption Standard (
AES
), що ознаменував нову еру в питаннях захисту даних
.
Потокові шифри, на
відміну від блочних, створюють ключ довільної довжини, що накладається на відкритий текст побітово або політерно, в дечому подібно до одноразової дошки. В потокових шифрах, потік шифротексту обчислюється на основі внутрішнього стану алгоритму, який змінює
ться протягом його дії. Зміна стану керується ключем, та, в деяких алгоритмах, ще і потоком відкритого тексту. RC4 є прикладом добре відомого, та широко розповсюдженого потокового шифру.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
13
13
1.3
Асиметричні а
лгоритми
Асиметричні криптосистеми ±
ефективні системи
криптографічного захисту даних, які також називають криптосистемами з відкритим ключем. В таких системах для зашифровування даних використовується один ключ, а для розшифровування ²
інший ключ. Перший ключ є відкритим і може бути опублікованим для викорис
тання усіма користувачами системи, які шифрують дані. Розшифровування даних за допомогою відкритого ключа неможливе. Для розшифровування даних отримувач зашифрованої інформації використовує другий ключ, який є секретним. Хоча ключова пара математично зв'я
зана, обчислення закритого ключа з відкритого в практичному плані нездійсненна. Кожний, у кого є відкритий ключ, зможе зашифрувати дані, але не зможе їх розшифрувати. Тільки людина, яка володіє відповідним закритим ключем може розшифрувати інформацію.
Появ
а шифрування з відкритим ключем стала технологічною революцією, яка зробила стійку криптографію доступною масам.
Ідея криптографії з відкритим ключем дуже тісно пов'язана з ідеєю односторонніх функцій, тобто таких функцій f(x)
, що за відомим x досить прост
о знайти значення f(x)
, тоді як визначення x
з f(x)
складно в сенсі теорії.
Але сама одностороння функція марна в застосуванні: нею можна зашифрувати повідомлення, але розшифрувати не можна. Тому криптографія з відкритим ключем використовує односторонні фу
нкції з лазівкою. Лазівка ²
це якийсь секрет, який допомагає розшифрувати. Т
обто існує такий y
, що знаючи f(x)
, можна обчислити x
. Перевага асиметричних шифрів перед симетричними шифрами полягає у відсутності необхідності попередньої передачі особи
стого к
люча по надійному каналу, а число ключів у
великих мережах в асиметричній криптосистем
і
значно менше, ніж у симетричн
ій
.
Найбільш відомими з асиметричних криптосистем є RSA
, DSA
, схеми
Рабина та Ель
-
Гамаля.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
14
14
К
риптосистеми з відкритим ключем можна використо
вувати:
±
я
к самостійні засоби для захисту переданої та збереженої інформації
;
±
як засоби розподілу ключів;
±
я
к засоби аутентифікації користувачів.
1.
3
.1 Обмін ключами
Схема обміну ключами Діффі
-
Хеллмана, винайдена в 1976 році при співпраці У
і
тф
і
лда Діффі і М
артіна Хеллмана, під сильни
м впливом роботи Ральфа Меркля про систему розповсюдження публічних ключів, стала першим практичним методом для отримання спільного
секретного ключа при спілкуванні через незахищений канал зв'язку
.
Однак цей алгоритм не вирішує п
роблему аутентифікації. Без додаткових засобів, один з користувачів не може бути впевнений, що він обмінюється ключами саме з тим користувачем, який йому потрібен.
Алгоритм передбачає, що обом абонентам відомі деякі два числа g
і p
, які не є секретними і м
ожуть бути відомі також іншим зацікавленим особам. Для того, щоб створити невідомий більш нікому секретний ключ, обидва абонента генерують великі випадкові числа: перший абонент ±
число a
, другий абонент ±
число b
. Потім перший абонент обчислює значення A = g
a
modp
і пересилає його другому, а другий обчислює B = g
b
modp
і передає першому. Передбачається, що зловмисник може отримати обидва цих значення, але не модифікувати їх (тобто у нього немає можливості втрутитися в процес передачі). На другому етапі, пер
ший абонент на основі наявно
го
в нього a
і отриманого B
обчислює значення B
a
modp = g
ab
modp
, а другий абонент на основі наявно
го
в нього b
і отриманого A
обчислює значення A
b
modp = g
ab
modp
. Отримане значення K = g
ab
modp
можна
використовувати в якості секре
тного ключа, оскільки тут зловмисник зустрінеться з практично нерозв'язною (за розумний час) проблемою обчислення g
ab
modp
, якщо числа p, a, b
обрано досить великими.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
15
15
Рис
унок
1
.2 ±
Схема обміну ключами Діффі
-
Хеллмана
1.
3
.2 Шифрування
з відкритим ключем
Криптографічні системи з відкритим ключем використовують так звані необоротні функції, які мають наступну властивість: я
кщо відомо x
, то f(x)
обчислити відносно просто; я
кщо відомо f(x)
, то для обчислення x
немає простого (е
фективного) шляху. Під односпрямованістю розуміється не теоретична односпрямованість, а практична неможливість обчислити зворотне значення, використовуючи сучасні обчислювальні засоби, за доступний для огляду інтервал часу. У криптографічній системі з ві
дкритим ключем кожен учасник має як відкритий ключ (англ. public key), так і закритий ключ (англ. private key). Кожен ключ ±
це частина інформації. Кожен учасник створює свій відкритий і закритий ключ самостійно. Відкритий ключ необхідний для шифрування документів і може бути опублікований для загального огляду. Закритий ключ має бути відомий тільки одержувачам зашифрованих повідомлень.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
16
16
В основу криптографічної системи з відкритим ключем RSA та схеми Рабіна покладено завдання множення і розкладання склад
ених чисел на прості множники, яка є обчислювально односпрямован
им
завданням.
У цих схемах
кожен ключ складається з пари цілих чисел. Безпека схеми Рабіна спирається на складність пошуку квадратних коренів по модулю складеного числа. Складність цього алго
ритму аналогічна проблемі розкладання на множники. Велика перевага криптосистеми Рабіна полягає в тому, що випадковий текст може бути відновлений повністю від зашифрованого тексту тільки за умови, що дешифрувальник здатний до ефективної факторизації відкри
того ключа. Головною незручністю практичного застосування криптосистеми Рабіна є те, що при розшифровці тексту виходить чотири різних повідомлення і потрібно застосувати додаткові зусилля для знаходження істинного вихідного тексту.
1.
3
.3 Цифровий підпис
Додаткова перевага від використання криптосистем з відкритим ключем полягає в тому, що вони надають можливість створення електронних цифрових підписів (ЕЦП). Цифровий підпис дозволяє одержувачеві повідомлення переконатися в автентичності джерела інформації
, а також перевірити, чи була інформація змінена, поки знаходилася в шляху. Таким чином, цифровий підпис є засобом авторизації і контролю цілісності даних. Крім того, ЕЦП несе принцип незречення, що означає, що відправник не може відмовитися від факту свог
о авторства підписаної ним інформації. Ці можливості настільки ж важливі для криптографії, як і таємність.
Потенційному шахраю, який би взявся за підписом автора відшукати його секретний ключ, треба розв’язати комбінаторну задачу з великим
обсягом комп’юте
рного перебору варіантів, якого вистачить практично на все життя шахрая.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
17
17
ЕЦП служить тієї ж мети, що печатка або власноручний автограф на паперовому листі. Однак внаслідок своєї цифрової природи ЕЦП перевершує ручний підпис і печатку в ряді дуже важливих аспектів. Цифровий підпис не тільки підтверджує особистість що підписала, але також допомагає визначити, чи був зміст підписаної інформації змінений. Власноручний підпис і печатка не мають подібної якості, крім того, їх набагато легше підробити. У той же ч
ас, ЕЦП аналогічна фізичної печатки в тім плані, що, як печатка може бути проставлена будь
-
якою людиною, що одержала в розпорядження печатку, так і цифровий підпис може бути згенерован
ий
ким завгодно з копією потрібного закритого ключа.
Оскільки підписуєм
і документи як правило досить великого обсягу, в схемах ЕЦП найчастіше підпис ставиться не на сам документ, а на його хеш
-
суму
. Для обчислення хеш
-
суми
використовуються криптографічні хеш
-
функції, що гарантує виявлення змін документа при перевірці підпису.
Хеш
-
функції не є частиною алгоритму ЕЦП, тому в схемі може бути використана будь
-
яка надійна хеш
-
функція. 1.4
Гібридна криптосистема
Основний недолік асиметричної криптографії полягає в низькій швидкості з
-
за складних обчислень, необхідних її алгоритмами, в той час як симетрична криптографія традиційно показує блискучу швидкість роботи. Однак симетричні криптосистеми мають один суттєвий
недолік ±
її використання припускає наявність захищеного каналу для передачі ключів.
З цієї причини на практиці повідомлен
ня зазвичай шифрують за допомогою більш продуктивних симетричних алгоритмів з випадковим ключем (сеансовий ключ), а за допомогою асиметричного алгоритму шифрують лише цей ключ, таким чином реалізується гібридна криптосистема.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
18
18
1.5 Застосування ф
рактал
ів
у
криптографії
Фрактал
±
це нерегулярна, самоподібна структура
, чиє зображення не залежить від масштабу. В широкому розумінні фрактал означає фігуру, малі частини якої в довільному збільшенні є подібними до неї самої.
Термін було введено в 1975 році
францу
зським математиком
Бенуа Мандельбротом
[2].
Розрізняють т
ри поширені методи генерування фракталів
:
ітераційні функції:
будуються відповідно до фіксован
их
правил геометричних заміщень
. Множина Кантора, килим Серпінського
, трикутник Серпінського, крива Коха,
крива дракона
є прикладами таких фракталів;
р
екурентні відношення
:
ф
рактали, що визначаються рекурентним відношенням в кожній точці простору (такому як площина комплексних чисел)
. Прикладами фракталів цього типу є множина Мандельброта та фрактал Ляпунова
;
випадкові процеси: фрактали, що генеруються з використанням стохастичних, а не детермінованих процесів
, наприклад: фрактальні ландшафти, траєкторія Леві та броунівське дерево
[3]
.
Застосування фракталів у комп'ютерних технологіях є досить молодим напрямо
м. Використання фракталів дозволяє вирішувати багато актуальних на сьогодні задач з більшою ефективністю, ніж існуючи алгоритми.
Багато досліджень присвячені метод
ам
стиснення зображень, що заснован на застосуванні систем ітеріруемих функцій. Даний алгорит
м відомий тим, що в деяких випадках дозволяє отримати дуже високі коефіцієнти стиснення
для реальних фотографій природних об'єктів, що недоступно для інших алгоритмів стиску зображень в принципі.
У криптографії використовують фрактальні хаотичні системи, я
кі мають таку властивість, що їх поведінка суттєво залежить від заданих початкових умов. При цьому стан системи в певний момент часу неможливо виразити простою формулою. Хаотична поведінка фракталів використовується в криптографії для шифрування даних і ге
нерації випадкових послідовностей чисел. Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
19
19
У фрактальн
ій
криптографії немає циклів, замість них
використовуються ітерації. Так, для обчислення n
-
ої ітерації функції, необхідно спочатку обчислити
(n
-
1)
-
ш
у ітерацію і т.д. до самої першої. Як і в звичайній криптографії, чим більше використано ітерацій ±
тим краще, тому що проітерована багато разів точка фрактала далеко віддаляється від початку і неможливо обчислити траєкторію точки не виконавши кожен крок рекурсії. Отже, якість шифрування виходить значно вищ
ою в порівнянні зі звичайними методами.
Одна з характеристик фрактальних алгоритмів
±
це чутливість до початкових умов,
тобто два близьких початкових значення будуть розходитися по мірі роботи системи. Таку
поведінку дуже трудно передбачати
аналітичними м
етодами без знан
ня секретного ключа. Це усуває один тип атак, атаки перебору ключів (
або атаки «грубою силою»
), які перебирають усі можливі ключі для р
озшифровки даних. Ці атаки явля
ються успішними дуже рідко, так як будь
-
яке на
магання зламати ключ прямо з
алежить від довжини ключа
.
Чутлива залежність
функцій генерації фракталів від по
чаткових значень ±
це один з фу
ндаментальних принципів динамічних, хаотичних систем. Мала відмінність
у поча
ткових значеннях функції приведе, після обчислення функції багато ра
зів, до значної різниці у вихідній послідовності. Ця чутливість дуже важлива у криптографії, так як одна з бажаних властивостей криптографічних алгоритмів складається у тому, що, коли ключ шифрування
змінюється навіть на маленьке число (наприклад, на один
біт), зашифрований текст
повинен бути значно іншим, тобто повинно змін
итися хоч би половина шифротекс
ту. Чутливість гарантує, що, якщо противник (
тобто осо
ба, яка намагається зламати кри
птографічну систему
) буде пробувати розши
фрувати дані різними ключами
та спостерігати за системою, це не спрацює. Навіть,
якщо початкові умови противника дуже близькі до тих, що використовувалися при
шифруванні, противник не отримає вірного результату.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
20
20
1
.
5.1
Огляд існуючих фрактальних алгоритмів
Практично усі фрактальні
а
лгоритми описані тільки у наукових статтях, проте
рідко зустрічаються у літературі про криптографію.
Nadia
Al
-
Saidi
у
своїй
роботі [4] використовує системи ітераційних функцій (
IFS
)
для заховання даних у зображенні
, а в подальшому будує криптографічну сист
ему з відритим ключем, що також заснована на афінних перетвореннях [5].
Suthikshn
Kumar
у
статті
[6] розглядає
можливість
створення
гібридної
системи
, у
якої
множина
Мандельброта
використовуються
в
якості
додаткового
засобу
забезпечення
секретності
спільно
з
поширеними сьогодні
алгоритмами RSA
та
Діффі
-
Хеллмана
.
Множина М
андельброта являє собою обмежен
у
та зв'язн
у
множин
у
на комплексній площині, межа якої утворює фрактал
.
Mohammad
Ahmad
Alia
у
[7] наводить
метод
створення
протоколу
обміну
ключами
з
використ
анням
властивостей фракталів
Мандельброта
і
Жюліа та зв'язку між ними
. Подальшим
розвитком
методу
є
розробка
системи
шифрування
з
відкритим
ключем
і
механізму
цифрового
підпису
з
використанням
зазначених
фракталів
[8,9].
D
. B
. Ojha
та інші у роботі [10] п
ропонують застосування еліптичних кривих у способі цифрового
підпису
на базі фракталів Мандельброта
і
Жюліа. При використанні алгоритмів на еліптичних кривих припуска
ється, що не існує ніяких субекспоненціальних алгоритмів для вирішення задачі дискретного логарифмування в групах їх точок. При цьому порядок групи точок еліптичної кривої визначає складність завдання. Вважається, що для досягнення такого ж рівня безпеки як в RSA потрібні групи менших порядків, що зменшує витрати на зберігання та передачу інфор
мації
.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
21
21
1.6 Висновки
У криптографії використовують фрактальні хаотичні системи, які мають таку властивість, що їх поведінка суттєво залежить від заданих початкових умов. При цьому стан системи в певний момент часу неможливо виразити простою формулою. Хаот
ична поведінка фракталів використовується в криптографії для шифрування даних і генерації випадкових послідовностей чисел.
Чутлива залежність
функцій генерації фракталів від по
чаткових значень ±
це один з фу
ндаментальних принципів динамічних, хаотичних сис
тем. Мала відмінність
у поча
ткових значеннях функції приведе, після обчислення функції багато разів, до значної різниці у вихідній послідовності.
В процесі огляду літератури, зацікавленість викликали методи на основі фракталів Мандельброта та було вирішено
більш детальніше розглянути ті їх властивости, які підходять для застосування у криптографії.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
22
22
2 РОЗРОБКА СТРУКТУРИ
КРИПТОГРАФІЧНОЇ СИСТЕМИ
Криптографічна система являє собою комплекс засобів, які дозволяють вирішувати одразу декілька завдань щодо захис
ту інформації. Після аналізу літературних джерел, можна спроектувати систему, що поєднує в собі засоби створення ключів
, шифрування текстових повідомлень та генерації
цифрового підпису
.
2
.1
Методика генерації ключів на основі фракталів
2.1.1 Область визн
ачення початкових даних
Процедура генерації ключів вимагає завдання початкового значення, на підставі якого будуть проводитися обчислення. Визначимо величину m
, як точку на комплексній площині. Обмежимо область визначення цієї точки її належністю до мн
ожини
Мандельброта.
Формально множиною Мандельброта називають сукупність елементів c
поля комплексних чисел, для яких послідовність
z
n
, що в
изначена ітераційно за правилом (2.1) не уходить у нескінченість
.
, де ︱
Таким чином, зазначена вище послідовність може бути розкрита для кожної точки на комплексній площині наступним чином:
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
23
23
Якщо переформулювати ці вирази у вигляді ітеративної послідовності значень координат комплексної площини
x
і y
, тобто замінивши на , а на , отримаємо:
Було доведено, що як тільки модуль
z
n
виявиться більше 2 (або в термінах дійсної та уявної частин ), послідовність стане прагнути до нескінченності. Порівня
ння з цим числом дозволяє виділяти точки, які не потрапляють всередину множини. Для точок, що лежать всередині множини, послідовність не буде мати тенденції до нескінченності і ніколи не досягне цього числа, тому після певного числа ітерацій розрахунок нео
бхідно примусово завершити.
Рис
унок
2
.
1
±
Множина Мандельброта
Візуально, всередині множини Мандельброта можна виділити нескінченну кількість елементарних фігур, причому найбільша в центрі являє собою кардіоїду. Також є набір овалів, що торкаються карді
оїди, розмір яких поступово зменшується, прагнучи до нуля. Кожен з цих овалів має свій набір менших овалів, діаметр яких також прагне до нуля і т.д. Цей процес триває нескінченно, утворюючи фрактал.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
24
24
2.1.2 Алгоритм обчислення відкритого ключа
Оберемо на ко
мплексній площині довільні точки c
і d
, які задовольняють умовам з п. 2.1.1. Параметр c
є відкритим і може бути відомий громадськості, параметр d
є закритим і повинен триматися в секреті.
Для генерації ключа використовується
рекурсивн
а функція:
де
n
±
кількість ітерацій, як
а
вибирається за наступним принципом
:
більше значення n забезпечує більшу видалення точки від початкових значень і підвищує крип
т
остійкість системи
;
надвеликі значення n
при
з
ведуть до тривалого обчислювально
го
п
роцесу, не підвищуючи при цьому надійності
;
рекомендується вибирати значення n
в межах 15
-
30 ітерацій
.
Обчислення рекурсивної функції зупиняється при досягненні заданого числа ітерацій. Результатом обчислення є значення відкритого фрактального ключа A
, який необхідно передати другому учаснику.
2.1.3 Схема обм
і
н
у
відкритими ключами
Розраховане з
начення відкритого фрактального
ключа A
разом
і
з параметром c
передаються іншому учаснику по відкритому каналу зв'язку.
Другий учасник на підставі отриман
ого
значен
ня с
та
власних секретних параметрів d і n
виконує
свою частину обчислень
фрактального ключа
B
, як описано у п. 2.1.2, та
передає його назад по каналу зв'язку.
Таким чином, обидва учасники мають у розпорядженні фрактальний ключ напарника.
На рис. 2.
2
показано схему передачі інформації особою А особі В. Вони можуть бути як фізичними особами, так і організаціями і так далі. Але для легшого сприйняття прийнято учасників передачі ототожнювати з людьми, частіше за все іменованими Аліса і Боб.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
25
25
Рис
унок
2
.
2
±
Схема обміну відкритими ключами
2.1.4 Алгоритм обчислення секретного
ключа
Вихідними даними для обчислення закритого ключа є
параметрі c, d
і
n
, о
брані на попередньому етапі розрахунків, а також фрактальний ключ B
, отриманий від другої сторони
. Вик
ористовуючи їх, обидва учасники здатні згенерувати однаковий спільний секретний
ключ
.
Для генерації ключа використовується
рекурсивн
а функція:
Отриманий у результаті цих операцій ключ утворюється однаковим з обох сторон завдяки вла
стивостям фракталів Мандельброта. У подальшому його можна використовувати у якості секретного ключа для шифрування тексту та цифрового підпису повідомлень.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
26
26
2.2 Методика шифрування текстових повідомлень
2.2.1 Схема алгоритму шифрування
Описана
вище схема
обміну ключами
може також використовуватися в якості алгоритму шифрування з відкритим ключем. У цьому випадку загальна схема залишається аналогічною наведеній вище, але з невеликими відмінностями. Аліса не передає значення c
і A
Бобу безпосередньо, а пуб
лікує їх заздалегідь в якості свого відкритого ключа. Боб виконує свою частину обчислень, після чого шифрує повідомлення симетричним алгоритмом, використовуючи K
як ключ, і передає шифротекст Алісі разом зі значенням B
.
Шифрування тексту здійснюється шляхо
м його складання з ключем, отриманим на попередньому етапі. Отриманий у разі перетворення шифртекст може бути розшифрований другим учасником у разі наявності у нього того ж самого ключа. 2.2.2 Алгоритм перетворення тексту у комплексне число
Для того, щоб
текст можна було скласти з ключем, його необхідно попередньо привести до
форм
и
комплексного числа.
Для цього використовується наступний алгоритм
:
а)
строка
розбивається на послідовність текстових символів;
б)
к
ожен символ перетвор
юється в його двійкове подання;
в)
о
тримане двійкове число ді
литься на праву і ліву частини;
г)
к
ожна частина перетвор
юється в десяткову форму;
д)
в
иконується норм
ування
обох
частин
з метою отримати значення, що лежать
у діапазоні [0,1];
е)
з двох частин формується
комплексне число, приймаючи отрим
ані величини за дійсну і уявну частини відповідно.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
27
27
2.3 Методика генерації цифрового підпису
2.3.1 Загальна схема цифрового підпису
На відміну від асиметричних алгоритмів шифрування, в яких зашифрование проводиться за допомогою відкритого ключа, а розшиф
рування ±
за допомогою закритого, в схемах цифрового підпису підписування проводиться із застосуванням закритого ключа, а перевірка ±
із застосуванням відкритого. Загальновизнана схема цифрового
підпису охоплює три процеси
: ±
г
енерація ключової пари. За до
помогою алгорит
му генерації ключів, описаного раніше,
з набору можливих закритих ключів вибирається закритий ключ
та
обчислюється відповідний йому відкритий ключ
;
±
ф
ормування підпису. Для заданого електронного документа за допомогою закритого ключа обчислює
ться підпис
;
±
п
еревірка (верифікація) підпису. Для даних документа та підпису за допомогою відкритого ключа визначається дійсність підпису. Рисунок 2.3 ±
C
хема роботи алгоритму цифрового підпису
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
28
28
2.3.2 Застосування фрактального ключа у схемі ЕЦП
Для то
го, щоб використання цифрового підпису мало сенс, необхідно виконання двох умов:
±
в
ерифікація підпису повинна проводитися відкритим ключем, що відповідає саме того закритому ключу, який використовувався при підписанні
;
±
б
ез володіння закритим ключем має бут
и обчислювально складно створити легітимн
ий
цифровий підпис.
У більшості ранніх систем ЕЦП використовувалися функції з секретом, які за своїм призначенням близькі до односторонніх функцій. Такі системи уразливі до атак з використанням відкритого ключа, оск
ільки, вибравши довільну цифровий підпис і застосувавши до неї алгоритм верифікації, можна отримати вихідний текст. Щоб уникнути цього, у схемі
цифров
ого
підпис
у використовується хеш
-
функція, тобто обчислення підпису здійснюється не щодо самого документа,
а щодо його хешу. У цьому випадку в результаті верифікації можна отримати тільки хеш вихідного тексту, отже, якщо використовується хеш
-
функція криптографічно стійка, то отримати вихідний текст буде обчислювально складно, а значить атака такого типу стає
неможливою.
Цифровий підпис являє собою зашифровану за допомогою фрактального секретного ключа користувача хеш
-
суму повідомлення. У подальшому підпис може бути переданий разом із даними по відкритому каналу зв'язку.
2.3.3 Схема перевірки автентичності ци
фрового підпису
Схема перевірки ЕЦП повідомлення, що здійсню
ється
одержувачем, складається з наступних етапів. На першому з них проводиться розшифрування блоку ЕЦП за допомогою фрактального відкритого ключа відправника. Потім обчислюється хеш
-
функція елек
тронного документа. Результат обчислення порівнюється з результатом розшифрування блоку ЕЦП. Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
29
29
У разі збігу приймається рішення про відповідність ЕЦП повідомлення
заявленим даними. Розбіжність результатів розшифрування з результатом обчислення хеш
-
функції п
овідомлення
може пояснюватися такими
причинами: ±
у
процесі передачі по каналу зв'язку була втрачена ці
лісність електронного документа;
±
п
ри формуванні ЕЦП був використаний не той (підроблений) секретний ключ;
±
п
ри перевірці ЕЦП був використаний не той відкри
тий ключ (в процесі передачі по каналу зв'язку або при подальшому його зберіганні ключ був модифікований або підмінений).
2.4 Висновки
Р
екурентні відношення
, що становлять основу множини Мандельброта, забезпечують хаотичну поведінку та суттєву залежність
процесу від початкових умов. Ці властивості дозволяють створити криптографічну систему, що здатна використовувати їх для вирішення поставлених задач.
Спроектована криптографічна система поєднує в собі засоби створення ключів
, шифрування текстових повідомл
ень та генерації
цифрового підпису
. Протокол
обміну ключами передбачає встановлення між учасниками спільного секретного ключа, який у
подальшому можна використовувати для шифрування тексту та цифрового підпису повідомлень
.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
30
30
3 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕ
ННЯ
3.1 Вимоги до системи
Розроблена у
рамках дипломного
проекту програма спроектована, як криптографічна система
, що поєднує в собі засоби обміну ключами, шифрування текстових повідомлень та генерації цифрового підпису.
Візуалізація проміжних етапів роб
оти дозволя
є
відстежити та краще зрозуміти процес
функціонування системи
.
Користивач системи повинен мати можливість
:
±
введення вихідних даних вручну або їх випадкової генерації
;
±
обрання параметрів безпосередньо на зображенні фракталу
;
±
отримання результатів
роботи у зручній формі
.
Програмний продукт повинен забезпечувати
:
±
створення спільного відкритого ключа
;
±
шифрування та розшифрування тексту;
±
цифровий підпис наданих повідомлень
.
3.2 Вибір засобів реалізації системи
Реалізацію даної системи вирішено викон
увати мовою програмування
C
# у середовищі Visual
Studio
. Синтаксис C# близький до С++ і Java. Мова має строгу статичну типізацію, підтримує поліморфізм, перевантаження операторів, вказівники, атрибути, події, властивості, винятки. Вона успадкувала від J
ava концепції віртуальної машини, байт
-
коду і більшої безпеки вихідного коду програм, а також
врахувала досвід використання програм на Java. Технологія об'єктно
-
орієнтованого програмування використовує механізм пересилки повідомлень та класи, що органі
зов
ані
у ієрархію
успадкування. Станом на сьогодні C# визначено флагманською мовою корпорації Microsoft, бо вона найповніше використовує нові можливості .NET.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
31
31
3.
3
Структура програми
Головний файл програми ±
Program
.
cs
, що є стандартом для програм, які роз
роб
лені на C#. Розташований в ньому м
етод Main називається точкою входу і викликається першим при запуску програми. Код у файлі включає візуальні стилі і створює об'єкт класу formMain
, який представляє головне вікно програми.
На рис. 3.1 приведена UML
-
діаграм
а класів програми. Вона показує зв'язок між класами у програмі, їх атрибути та мет
оди. Клас formMain
має атрибути
-
об'єкти класів Encoder
, Fractal
і DrawFractal
. Імена атрибутів написані на кінці стрілки, яка показує зв'язок між к
ласами, наприклад, поточний
об'
єкт класу DrawFractal
зберігається у змінній draw
об'єкту класу formMain
.
Рисунок 3.1 ±
Ді
аграма
програмних
класів
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
32
32
3.
4
Представлення
комплексних чисел
Оскільки фрактальні алгоритми оперують із комплексними ключами, споча
тку було реалізовано клас ComplexNum
для представлення комплексних чисел у програмі та виконання основних математичних операції з ними.
Комплексне число може бути задано із зазначенням його дійсної та уявної частин
:
public ComplexNum(double real, double im
ag)
{
this.real = real;
this.imag = imag;
}
Якщо уявна частина не зазначуєтьс
я, вона приймається рівною нулю
:
public ComplexNum(double real)
{
this.real = real;
this.imag = 0;
}
Арифметичні
дії
виконуються
аналогічно
до
дій
з
многочленами
, але
з
урахуван
ням
рівності
i
2
=
-
1
. Нехай та ±
комплексні числа. Тоді можна визначити наступні операції
:
±
складання
±
віднімання
±
м
ноження
±
ділення
Для комплексних чисел певним чином визначають також інші операції, наприклад, зведення
до довільного комплексного степеня, логарифмування, знаходження синуса, косинуса тощо. Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
33
33
Перевантаження операторів ±
один із засобів реалізації поліморфізму, що полягає в можливості одночасного існу
вання в одній зоні видимості декількох різних варіантів застосування операторів, що мають одне й те саме ім'я, але різні типи аргументів, до яких вони застосовуються. Можливість перевантаження операторів в мові C
# дозволяє використовувати коротку і виразну
форму запису типових операцій, значення якої важко переоцінити:
±
складання
public static ComplexNum operator +(ComplexNum op1, ComplexNum op2)
{
return new ComplexNum(op1.real + op2.real, op1.imag + op2.imag);
}
±
віднімання
public static ComplexNum operator
-
(ComplexNum op1, ComplexNum op2)
{
return op1 + (
-
op2);
}
±
м
ноження
public static ComplexNum operator *(ComplexNum op1, ComplexNum op2)
{
double real = op1.real * op2.real -
op1.imag * op2.imag;
double imag = op1.imag * op2.real + op1.real * op2.imag;
re
turn new ComplexNum(real, imag);
}
±
ділення
public static ComplexNum operator /(ComplexNum op1, ComplexNum op2)
{
double den = Math.Pow(op2.real, 2) + Math.Pow(op2.imag, 2);
double real = (op1.real * op2.real + op1.imag * op2.imag) / den;
double imag = (op1
.imag * op2.real -
op1.real * op2.imag) / den;
return new ComplexNum(real, imag);
}
±
зведення
до довільного
степеня
public static ComplexNum operator ^(ComplexNum c, int n)
{
ComplexNum x = c;
if (n == 0)
return new ComplexNum(1);
for (int i = 1; i < n; i++)
c = c * x;
return c;
}
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
34
34
Модулем (абсолютною величиною) комплексного числа називається довжина радіус
-
вектора відповідної точки комплексній площині (або, що те ж, відстань між точкою комплексної площини, відповідної цього числа, і початком координат
).
Модуль комплексного числа z
позначається |z|
і визначається виразом
:
, де z = x∙iy
Кут φ
(в радіанах) радіус
-
вектора точки, що відповідає числу z
, називається аргументом числа z
і позначається Arg(z)
.
У програмі для отримання м
одулю та аргументу комплексного числа передбачені такі аксесори:
public double Modulus
{
get { return Math.Sqrt(real * real + imag * imag); }
}
public double Argument
{
get { return Math.Atan2(real, imag); }
}
Бібліотека System
.
Math
містить потрібні мето
ди для здобуття
квадратного кореню та арктангенсу.
3.
5
Класи, що утворюють криптосистему
Звертання до класу Fractal
відбувається для перевірки належності
точки до множини Мандельброта, а також для розрахунку значень рекурсивних функцій Mandelfn
та Juli
afn
, які
ви
користовую
ться у процесі генерації ключів.
Визначити
точки, які потрапляють всередину множини
Мандельброта дозволяє порівняння, чи не перевищує модуль координат точки значення 2. Для точок, що лежать всередині множини, послідовність не буде ма
ти тенденції до нескінченності і ніколи не досягне цього числа, тому після певного числа ітерацій розрахунок необхідно примусово завершити. Максимальне число ітерацій, після яких число вважається потрапи
вшим
всередину множини, задається в програмі.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
35
35
public
bool Check(int n, ComplexNum k)
{
bool b = false;
ComplexNum m = new ComplexNum(0);
for (int i = 0; i < n; i++)
{
m = m * m + k;
}
if (m.Modulus < 2)
b = true;
return b;
}
Якщо модуль числа m
після
n
ітерац
ій
видався
менше
2, метод
повертає
значення
true
, інакше
±
false
.
Функція
Mandel
f
n
приймає
у
якості
параметрів
комплексні
числа
c
та
d
, а
також
кількість
ітерацій
n
. Результат
z
розраховується
за
рекурсивною
функцією
Z(m+1) = c
2
*d*Z(m),
де 1
<
m
<
n
, при цьо
му первісне значення z
дорівнює с
.
public ComplexNum Mandelfn(ComplexNum c, ComplexNum d, int n)
{
ComplexNum z = c; for (int i = 0; i < n; i++)
{
z = c * c * d
* z;
}
return z;
}
На відміну від цього, функція Juliafn
прий
має чотири параметри, у числі яких ±
комплексне число q
, отримане від другого учасника. Воно застосовується, як первісне значення y
у рекурсивній функції Y
(m+1) = c*d*
Y
(m),
де 1
<
m
<
n
.
public ComplexNum Juliafn(ComplexNum c, ComplexNum d, int n, ComplexNum q)
{
ComplexNum y = q;
for (int i = 0; i < n; i++)
{
y = y * c * d;
}
return y;
}
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
36
36
Рисунок 3.2 ±
Діаграма послідовності обчислення відкритого ключа
Рисунок 3.3 ±
Д
іаграма послідовності обчислення секретного ключа
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
37
37
У класі Encoder
описані методи, за допомогою яких можна представити текстові дани у вигляді комплексного числа та навпаки
:
±
public
ComplexNum
encodeString
(
string
str
) п
риймає
у
якості
параметру
строку
текст
у
та
перетворює
ії
на
послідовність
ASCII
-
коді
в
, яка
поділяється
на
дві
рівні
частини
, одна
з
яких
приймається
за
дійсну
частину
комплексного
числа
, друга
±
за
уявну
;
±
public
string
decodeString
(
ComplexNum
cnum
) приймає
комплексне
число
у
якості
параметра
т
а
перетворює
його
на
набір
символів
, вважаючи
поєднання
дійсної
та
уявної
частин
послідовністю
ASCII
-
коді
в. Повертає строку тексту, що відповідає кодам.
У разі введення даних користувачем вручну, необхідно перетворити їх з текстового вигляду в комплексне ч
исло. Для цього у введеному тексті за допомогою регулярного виразу виконується пошук двох дробових чисел за заданим шаблоном. Для роботи з регулярними виразами в C# передбачений клас System.Text.RegularExpressions.
public ComplexNum parseString(string str
)
{
MatchCollection matches = Regex.Matches(str, @"
-
?
\
s?
\
d+.
\
d+E[
\
+
-
]
\
d+");
string[] values = new string[matches.Count];
for (int i = 0; i < matches.Count; i++)
{
values[i] = matches[i].Value;
values[i] = values
[i].Replace(" ", string.Empty);
}
double real = double.Parse(values[0]);
double imag = double.Parse(values[1]);
return new ComplexNum(real, imag);
}
Для
пошуку збігів використовується метод Regex.Matches(). Цей метод повертає масив класу MatchCollection, що містить знайдені збіги і ряд іншої інформації. Доступ до знайденого тексту виробляється
за допомогою конструкції match
es
[i].Value. Отримати кількіс
ть знайдених збігів можна з властивості match
es
.Count.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
38
38
3.
6
Побудова з
ображення фракталу
Зображення фракталу можна отримати, якщо перевірити кожну точку комплексної площини на належність до множини Мандельброта.
Якщо |z|<2 при будь
-
якій кількості ітерацій
, то точка лежить всередині множини і традиційно забарвлюється в чорний колір. В іншому випадку, колір точки залежить від швидкості видалення точки від нуля. Число ітерацій, за яке точка прямує до нескінченності
є індексом у таблиці кольорів.
private Colo
r[] Colors = new Color[768];
Палітра місти
ть послідовність чотирьохбайтових
полів по числу доступних кольорів. Три молодші байти кожного поля визначають інтенсивність червоної, зеленої та синьої компоненти кольору, старший байт не використовується. Кожен піксел
ь
зображення описаний в такому випадку одним байтом, що містить номер поля палітри, в якому збережений колір цього пікселя.
Зображення у форматі Bitmap
представляється у пам
’яті комп’
ютера як структура даних DIB
та кодується в цифровому виг
ляді за до
помогою бітової карти
±
матриці, що зберігає значення елементів зображення (
пікселів)
.
Bitmap bmp = new Bitmap(p.Width, p.Height, PixelFormat.Format32bppArgb);
Для попіксельної обробки зображення в C
# використовуються методи LockBits
та UnlockBits
,
які доз
воляють закріпити частину
масив
у
даних у пам'яті, одержати доступ до нього безпосередньо і, нарешті, замінити біти в бітової карті зміненими даними. Метод LockBits повертає екземпляр клас
у
BitmapData
, в як
ому
опис
ано
структуру і поло
ження даних у
закритом
у масив
і
.
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, p.Width, p.Height), ImageLockMode.ReadWrite, bmp.PixelFormat);
Формат пікселів визначає кількість біт пам'яті, пов'язаних з даними однієї точки. Також цей формат визначає порядок колірних с
кладових в даних однієї точки.
Format32bppArgb
в
казує, що форматом відводиться 32 біти на точку: по 8 біт на червоний, зелений і синій канали, а також альфа
-
канал.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
39
39
Рис
унок
3.
4
±
С
хема побудови зображення фракталу
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
40
40
3.
7
Ін
струк
ція користувача
Для роботи програми необхідна наявність встановлено
ї платформи .
NET
Framework
3.5
, яка за замовченням входить до складу операційної системи Windows
7
. Для раніших версій Windows
платформа може бути встановлена додатково з офіційного сайту
Microsoft
.
Після запуску програми, FractalEnc
.
exe
, на екрані відображаеться головне вікно, показане на рис. 3.5.
У лівій частині вікна розташований блок вкладок, за допомогою яких можна перемикатися між компонентами системи. Зліва направо: створення ключ
ів, шифрування, цифровий підпис.
У правій частині вікна зображено фрактал Мандельброта. Картинка здатна змінюватися динамічно відповідно до числа ітерацій, яке зазначено вище
. При проведенні курсора миші понад зображенням, на екран виводяться координати то
чки на комплексній площині. Натиснувши ліву кнопку миші, користувач може миттєво задати цю точку як відкритий параметр c
.
Рисунок 3.
5
±
Головне вікно програми після запуску
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
41
41
Чорним кольором показані точки, які входять до множини Мандельброта. Червоний,
зелений та синій кольори відповідають швидкості, з якою точка, що лежить поза множиною, віддаляється від нуля.
Окрім цього, користувач може власноруч ввести відкритий параметр c
та секретний параметр d
, або згенерувати їх. При натисненні кнопки обчисленн
я відкритого ключу проходить перевірка на належність параметрів
до множини Мандельброта для заданої кількості ітерацій. Якщо перевірка завершується успішно, обчислений ключ з'являється у відповідному полі. Відкритий ключ зручно скопіювати до буферу обміну за допомогою кнопк
и
поряд із рядком.
Після отримання ключу віддаленої сторони, користувач може скористатися кнопкою для вставки ключа із буферу обміну у текстове поле. Використовуючи власні параметри та натиснувши кнопку обчислення секретного ключа, можна
побачити результат у нижньому полі. При вірних параметрах, цей ключ буде однаковим в обох учасників обміну.
Значення ключа автоматично підставляється до інших складових частин системи: шифрування та цифрового підпису.
Рисунок 3.6 ±
Приклад генерації к
лючів
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
42
42
Значення числових полів можна вводити у будь
-
якому форматі: система знайде в тексті два дробових числа та сформує з них комплексне число. Знак перед числом також враховується.
На другій вкладці розташовано поля для шифрування текстових даних. Підста
влений з попередньої операції ключ може бути змінений вручну. Після натиснення кнопки, вихідний текст перетворюється на комплексне число та шифрується заданим ключом. Результат операції можна скопіювати до буферу обміну, а також одразу перевірити, натиснув
ши другу кнопку.
Рисунок 3.7 ±
Приклад шифрування тексту
Візуалізація проміжних етапів дозволяє більш наглядно зрозуміти процес шифрування та засвідчитися у розхожденні значень вихідного та шифрованого тексту. Мала відмінність
у поча
ткових значеннях п
ри
зводить до значної різниці
у вихідній послідовності.
Це забезпечує високу ступінь хаотичності, що заважає зловмиснику зламати шифр шляхом аналізу перехоплених повідомлень.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
43
43
Остання вкладка дозволяє скористатися секретним ключом для підпису повідомлення,
який дозволяє одержувачеві переконатися в тому, що
інформація не була змінена, поки знаходилася в шляху
, та гарантує а
в
тентичност
ь
джерела інформації
.
Так як цифровий підпис не потребує бути розшифрованим, стає можливим застосовувати перетворення не до с
амого тексту повідомлення, а до його хеш
-
суми
, яка обчислюється за допомогою 128
-
бітного алгоритму хешування
MD
5. Використання хеш
-
суми знімає обмеження на довжину повідомлення, а також гарантує виявлення змін документа при перевірці підпису
. Значення хеш
-
суми виводиться для довідки у текстове поле.
Другий учасник обміну може повторити операцію із зазначенням того ж самого секретного ключа та переконатися в оригінальності повідомлення.
Рисунок 3.8 ±
Приклад цифрового підпису
Для виходу із програми необх
ідно закрити головне вікно
, натиснувши хрестик у заголовку вікна або за допомогою комбінації клавиш Alt
-
F
4.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
44
44
3.
8
Оцінка якості
розробленої системи
3
.
8
.
1 Критерії оцінки якості
У результаті аналізу літератури було визначено, що важливим критерієм якості кр
иптосистеми є простір ключів, тобто з
агальна кількість усіх можливих ключів алгоритму, що оперує з заданими параметрами (зокре
ма, при заданій довжині ключа). Чим більший розмір простору, тим складніше виконати атаку за методом «грубої сили»
, яка полягає у переборі
усі
х
можли
вих ключів для розшифровки даних.
Б
удь
-
яке намагання зламати ключ прямо залежить від довжини ключа. У поширен
ій
на сьогоднішній день схемі
обміну ключами Діффі
-
Хеллмана
для обчислень використовуються прості числа (натуральні числа, що ма
ють тільки
два натуральних дільника ±
лише 1 і саме число
). Тому для неї розмір простору ключів визначається кількістю простих чисел у скінченному полі Z
p
, де p
являє собою найбільше просте число, яке можна представити n
-
бітним значенням.
На відміну від ць
ого, у
реалізованому
алгоритмі з використанням фракталів n
-
бітний ключ має 2
n
можливих варіантів.
Результати порівняння простор
ів
ключів схеми Діффі
-
Хеллмана
та розробленого алгоритма наведені в табл. 4.1. Теорема про розподіл простих чисел стверджує, що у
заданному діапазоні [0,
n
) існує x
/
(
ln
(
x
)
-
B
)
простих чисел
, де B
=1,08…
±
константа, близька до 1.
Таблиця 3
.1
±
Простори ключів залежно від довжини ключа
Довжина ключа, біт
Фрактальний алгоритм
Схема Діффі
Хеллмана
︸בּ
︲בּ
︴דּ
︸דּ
︲
︷וּ
︱
︵
︳
︷
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
45
45
На основі табл. 3
.1 була побудована гістограма, яка демонструє перевагу фрактального алгоритма над с
хемою Діффі
-
Хеллмана
щодо розміру простору ключів (рис. 3
.
9
)
.
Рисунок 3
.
9
±
Порівняння просторів ключів
3.
8
.2 П
родуктивність системи
Сьогодні у великій кількості застосунків
використовується
криптографічна система з відкритим ключем RSA
, розроблена в
1977 році вченими Райвестом, Шаміром та Адлеманом. Безпека алгоритму RSA побудована на принципі складності факторизації.
Вихідними даними для алгоритму є прості числа, котрі для надійної роботи повинні бути досить великими (порядка 10
300
). Це є причиною низьк
ої
швидк
о
ст
і
шифруван
ня (близько 30 кбіт/сек при 512
-
бітному ключі на процесорі 2 ГГц)
.
Крім того, в RSA використовуються більш довгі ключі в порівнянні з іншими криптосистемами з відкритим ключем.
Фрактальний алгоритм забезпечує аналогічну якість шиф
рування, при цьому оперуючи з ключами меншої розрядності. Швидкість шифрування становить близько 77 кбіт/сек при довжині ключа 128 біт на процесорі 2 ГГц. Економія часу на розрахунках дозволяє зменшити затрати ресурсів та підвищити продуктивність системи в цілому.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
46
46
3.
8
.3 Надійність алгоритмів
Ді
ям
зловмисника щодо підбору ключів з використанням перехоплених
повідомлен
ь
запобігає хаотична поведінка функцій генерації фракталів, яка забезпечує дуже ч
утливу залежність
від по
чаткових значень. Так само, якщо
ключ
шифрування
змін
ити
навіть на маленьке число (наприклад, на один біт), зашифрований текст
радикально змінюється. Великий розмір простору ключів робить важкими для реалізації атаки перебору, також відомі як метод «грубої сили».
3.
9
Висновки
У цьому розділ
і приведено опис класів програми та докладну інструкцію користувача, діаграму програмних класів та діаграми послідовності виконання важливих операцій. Надані пояснення щодо представлення комплексних чисел у системі та побудови зображення фракталу. Описи ло
кальних змінних і атрибутів наведені у вигляді коментарів до коду програми.
Систему реалізовано мовою програмування C
# у середовищі Visual
Studio
2010. Вона спроектована у рамках об'єктно
-
орієнтованого підходу до розробки програмних продуктів, тому вона ви
користовує програмні класи для розподілення функціональності. У програмі реалізована обробка винятків, що перешкоджає виникненню помилок і інформує користувача про їх виникнення.
Реалізований алгоритм
має більшу кількість можливих ключів
у порівнянні з пош
иреною на сьогодні схемою обмі
ну ключами Діффі
-
Хеллмана
.
Великий
розмір
простору
ключів
робить
важкими
для
реалізації
атаки
перебору
, також
відомі
як
метод
«
грубої
сили
».
Хаотичні властивості фрактального алгоритму не вимагають використання чисел великої р
озрядності, проте забезпечу
ють
високу якість шифрування
. Економія часу на розрахунках дозволяє зменшити затрати ресурсів та підвищити продуктивність системи в цілому.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
47
47
ВИСНОВКИ
З розвитком і постійним впровадженням комп'ютерних технологiй в різні сфери людської діяльності (наукові дослідження, електронна комерція, банківська справа, медицина тощо) все гостріше постає питання безпечного обміну даними через незахищені канали передачі. Єдиним ефективним засобом захисту інформації залишається її криптографічне перетворення.
Застосування фракталів у комп'ютерних технологіях є досить молодим напрямом. Використання фракталів дозволяє вирішувати багато актуальних на сьогодні задач з більшою ефективністю, ніж існуючи алгоритми.
В процесі огляду літератури, зацікавленість викликали методи на основі фрактал
ів Мандельброта та було вирішено більш детальніше розглянути ті їх властивости, які підходять для застосування у криптографії.
Р
екурентні відношення
, що становлять основу множини Мандельброта, забезпечують хаотичну поведінку та суттєву залежність процесу в
ід початкових умов. Ці властивості дозволяють
створити
криптографічн
у
систем
у
, що здатна використовувати їх для вирішення поставлених задач.
Спроектована криптографічна система поєднує в собі засоби створення ключів
, шифрування текстових повідомлень та ген
ерації
цифрового підпису
. Протокол
обміну ключами передбачає встановлення між учасниками спільного секретного ключа, який у
подальшому можна використовувати для шифрування тексту та цифрового підпису повідомлень
.
Систему реалізовано мовою програмування C# у середовищі Visual Studio 2010.
Розроблена система здатна виконувати генерацію закритого та відкритого ключів, шиф
рування та розшифрування тексту та цифровий підпис наданих повідомлень
. Графічний інтерфейс програми передбачає можливість введе
ння вихідних даних користувачем та отримання результатів роботи у зручній формі
. Візуалізація проміжних етапів роботи дозволяє відстежити та краще зрозуміти процес функціонування системи.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
48
48
У ході тестування
розробленої системи було встановлено, що завдяки властивостям фракталів система забезпечу
є
високу
якість шифрування
, але не потребує великої кількості ресурсів для функціонування. Хаотична поведінка системи та великий обсяг простору ключів роблять важкими для реалізації атаки перебору, також відомі як метод «грубої с
или».
У результаті техніко
-
економічних розрах
унків були одержані наступні ви
сновки: ціна розробленого проекту складає 50704 грн. (за 100 екземплярів) при його трудомісткості 116 люд./дн., при цьому одноразові та поточні (проектні) витрати відповідно склада
ють 39003,15 грн. та 40318,46 грн., проте річна економія складає 92708,24 грн. і витрати на розробку проекту окупляться приблизно за 5 місяців. Можна зробити висновок, що впровадження проекту є економічно доцільним.
З метою забезпечення умов охорони праці проведено аналіз небезпечних і шкідливих факторів, впливу яких піддається користувач системи при роботі на ПЕОМ
. Бул
и
розроблені заходи, спрямовані на усунення чи зниження шкідливого впливу виявлених факторів. Було виконано індивідуальне завдання, що подає
собою розрахунок захисного занулення та заземлення.
Серед можливих напрямкiв продовження розробки можна розглядати такі покращення:
±
подальше розширення функціональності системи
;
±
можливість шифрувати текст за допомогою декількох алгоритмів;
±
контроль і керу
вання математичним апаратом
генерації фракталів.
Таким чином, усі поставлені задачі виконані. Мета роботи досягнена.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС ЗПП 7.080401
0
09
ПЗ
49
49
ПЕРЕЛІК ПОСИЛАНЬ
1.
Шнайер
Б.
Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке C
/ Б. Шнайер.
±
М.: Издательство ТРИУ
МФ, 2002. ±
816 с.
2.
Мандельброт
Б. Фрактальная геометрия природы / Б. Мандельброт.
±
М.: Институт компьютерных исследований, 2002.
±
656 с.
3.
Кроновер
Р
. Фракталы и хаос в динамических системах. Основы теории
/ Р. Кроновер.
±
М.: Постмаркет, 2000. ±
35
0 с. 4.
Al
-
Saidi
N
.
Using IFS as an Encryption method
/ N
.
Al
-
Saidi
, M
.
Rushdan
// International Conference on Education Technology and Computer
.
±
2009
.
±
p
.
275
-
278.
5.
Al
-
Saidi
N
. A New Public
Key Cryptosystem Based on IFS / N
.
Al
-
Saidi
, M
.
Rushdan
// International Journal of Cryptology Research
.
±
2010.
±
p. 1
-
13.
6.
Kumar
S
. Public key cryptography system using Mandelbrot sets
/
S. Kumar // Military Communications Conference
.
±
2006
.
7.
Alia
M
. New Key Exchange Protoco
l Based on Mandelbrot and Julia Fra
ctal Sets
/ M
. Alia
, A. Samsudin
// IJCSNS International Journal of Computer Science and Network Security
.
±
2007. ±
p
. 302
-
307.
8.
Alia
M
. A New Public
-
Key Cryptosystem Based on Mandelbrot and Julia Fractal Sets
/ M
. Alia
, A. Samsudin
// Asian Journal of Inf
ormation Technology
.
±
2007. ±
p. 567
-
575
.
9.
Alia
M
. A New Digital Signature Scheme Based on Mandelbrot and Julia Fractal Sets
/ M
. Alia
, A. Samsudin
// American Journal of Applied Sciences
.
±
2007. ±
p
. 848
-
856
.
10.
Ojha
D. B.
An Approach for Embedding E
lliptic Curve in Fractal Based Digital Signature Scheme / D. B. Ojha, Ms. Shree, A. Dwivedi, A. Mishra
// Journal of Scientific Research
.
±
2011. ±
p. 75
-
79.
Автор
Chupa
Chupa14   документов Отправить письмо
Документ
Категория
Информационные технологии
Просмотров
935
Размер файла
916 Кб
Теги
криптография, шифрование, фрактал
1/--страниц
Пожаловаться на содержимое документа