- •1 Призначення та область використання
- •Призначення системи
- •Область застосування
- •2 Перегляд аналогічних існуючих систем
- •2.1 Огляд існуючих систем, технологій, архітектур, програмних рішень по профілю теми дипломного проекту Антифішинговий захист в Opera
- •Захист від фішингу й шкідливих програм в Google Chrome
- •Захист від фішингу в Firefox
- •Захист від фішингу й шкідливих програм в Safari
- •Фільтр SmartScreen в Internet Explorer
- •2.2 Обґрунтування вибору засобів для побудови системи та мови програмування
- •2.3 Розгорнута постановка завдання
- •3 Опис і обґрунтування проектних рішень
- •3.1 Опис функціонування системи
- •Міри протидії
- •Крім цього, можна виділити наступні правила:
- •3.2 Розробка структурної схеми
- •1. Підміна іконки файлу
- •2. Назва файлу, яка інтригує
- •3. Гра на прагненні користувачів одержати доступ до жаданого контенту
- •4. Імітація живого спілкування
- •5. «Дорожнє яблуко»
- •6. Експлуатація страхів користувача
- •3.3 Розробка функціональної схеми
- •3.4 Розробка діаграми процесів
- •4 Реалізація проекту. Розрахунки і експериментальні дані, що підтверджують правильність проектних рішень
- •4.1 Блок-схеми та опис алгоритмів функціонування системи
- •4.2 Захист розробленого програмного забезпечення
- •5 Методика впровадження системи в промислову експлуатацію
- •6 Дані про економічну ефективність розробленої програми
- •6.1 Техніко-економічне обґрунтування теми дипломного проекту
- •7 Заходи з охорони праці та техніки безпеки
- •7.1 Робота з комп'ютером
- •7.2 Опис робочого приміщення
- •7.3 Аналіз шкідливих та небезпечних факторів та ергономічні вимоги до робочого місця програміста
- •7.4 Вимоги до параметрів мікроклімату
- •7.5 Заходи забезпечення сприятливих умов праці користувачів вдт
- •7.6 Розрахунок та проектування інженерно-технічного заходу захисту від шкідливого (небезпечного) виробничого фактору (освітленість приміщення)
- •7.7 Висновки
- •8 Основні висновки
- •Перелік скорочень, символів та спеціальних термінів
- •Список літератури
4.2 Захист розробленого програмного забезпечення
Для захисту розробленого програмного забезпечення запропоновано використовувати алгоритм Madryga. Алгоритм Madryga складається із двох вкладених циклів. Зовнішній цикл повторюється вісім разів (для гарантії надійності число циклів можна збільшити) і полягає в застосуванні внутрішнього циклу до відкритого тексту. Внутрішній цикл перетворює відкритий текст у шифртекст і виконується однократно над кожним 8-бітовим блоком (байтом) відкритого тексту. Таким чином, весь відкритий текст послідовно вісім разів обробляється алгоритмом.
Ітерація внутрішнього циклу оперує з 3-байтовим вікном даних, називаним робочим кадром (рисунок 4.3). Це вікно зрушується на 1 байт за ітерацію. (При роботі з останніми 2 байтами дані покладаються циклічно замкнутими). Перші два байти робочого кадру циклічно зрушуються на змінне число позицій, а для останнього байта виконується операція XOR з декількома бітами ключа. У міру переміщення робочого кадру всі байти послідовно циклічно зрушуються й піддаються операції XOR із частинами ключа. Послідовні циклічні зрушення перемішують результати попередніх операцій XOR і циклічного зрушення, причому на циклічне зрушення впливають результати XOR. Завдяки цьому процес у цілому оборотний.
|
|
|
|
|
|
|
|
|
|
|
|
||||
Текст |
1 |
2 |
3 |
4 |
5 |
6 |
|
… |
TL-2 |
TL-1 |
TL |
|
|||
|
|
|
|
|
|
|
|
|
|
||||||
Робочий кадр, що рухається
|
WF(1) |
WF(2) |
|
WF(3) |
|
|
|
||||||||
8 біт |
8 біт |
|
8 біт |
|
|
|
|||||||||
|
ROT |
|
|
|
|
|
|||||||||
Переміщення |
Об'єкт зрушення |
|
|
Лічильник зрушення |
|
|
|||||||||
|
16 біт |
|
3 біти |
|
|
||||||||||
Перетворення |
|
|
|
|
|
|
|
Об'єкт перетворення |
|
|
|||||
|
|
|
|
|
|
|
|
8 біт XOR |
|
|
|||||
Ключ |
1 |
2 |
3 |
… |
KL |
|
|
||||||||
|
|
|
|
XOR |
|
|
|
||||||||
Хеш ключа
|
1 |
2 |
3 |
… |
KL |
|
|
||||||||
|
|
|
|
|
|||||||||||
Рисунок 4.3 – Одна ітерація алгоритму Madryga
Оскільки кожний байт даних впливає на два байти ліворуч і на один байт праворуч від себе, після восьми проходів кожний байт шифртексту залежить від 16 байтів ліворуч і 8 байтів праворуч.
При шифруванні кожна ітерація внутрішнього циклу встановлює робочий кадр на передостанній байт відкритого тексту й циклічно переміщає його до третього з кінця байту відкритого тексту. Спочатку весь ключ піддається операції XOR з випадковою константою й потім циклічно зрушується вправо на 3 біти (ключ і дані рухаються в різних напрямках, щоб мінімізувати надлишкові операції з бітами ключа). Молодші три біти молодшого байта робочого кадру зберігаються, вони визначають циклічне зрушення інших двох байтів. Далі конкатенація двох старших байтом циклічно зрушується вліво на змінне число біт (від 0 до 7). Потім над молодшим байтом робочого кадру виконується операція XOR з молодшим байтом ключа. Нарешті робочий кадр зміщається вправо на один байт і весь процес повторюється.
Випадкова константа призначена для перетворення ключа в псевдовипадкову послідовність. Довжина константи повинна бути рівній довжині ключа. При обміні даними абоненти повинні користуватися однієї й тією же константою. Для 64-бітового ключа Madryga рекомендує константу 0x0fle2d3c4b5a6978.
При розшифруванні процес повторюється у зворотному порядку. У кожній ітерації внутрішнього циклу робочий кадр установлюється на байт, третій ліворуч від останнього байта шифртексту, і циклічно зрушується у зворотному напрямку до байта, розташованого на 2 байти уліво відносно останнього байта шифртексту. 2 байти шифртексту в процесі циклічно зрушуються вправо, а ключ – уліво. Після циклічних зрушень виконується операція XOR.
