Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/6386| Title: | Інформаційна система шифрування/дешифрування даних |
| Authors: | Чичужко Марина Володимирівна Соломаха Дмитро Сергійович |
| Issue Date: | Jun-2024 |
| Abstract: | Кваліфікаційна робота бакалавра складається із вступу, трьох розділів, висновків та списку використаних джерел. В даній кваліфікаційній роботі бакалавра проведено дослідження криптографічних алгоритмів, проведено огляд існуючих методів криптографії, зокрема: симетричні методи, асиметричні методи, хеш-функції, метод Цезаря, метод Віженера. Також розглянуто принципи роботи шифрувальної машини «Енігма» та проблеми сучасного крипто аналізу. Для виконання поставленної задачі обрано методи Цезаря та Віженера. В ході виконання роботи було розроблено програму, яка дозволяє створювати шифровані повідомлення та відновлювати раніше зашифровані. Також було створено та додано функцію зламу шифру без відомого ключа. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/6386 |
| Appears in Collections: | 174 Автоматизація, комп'ютерно-інтегровані технології та робототехніка (Автоматизація та комп'ютерно-інтегровані системи та компоненти) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| Б_174_2024_Соломаха.pdf Restricted Access | 1.76 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
ЗМІСТ С ВСТУП 3 1. ДОСЛІДЖЕННЯ КРИПТОГРАФІЧНИХ АЛГОРИТМІВ 6 1.1 Загальні поняття 5 1.2 Огляд існуючих методів криптографії 8 1.3 Шифрувальна машина «Енігма» 12 1.4 Сучасний криптоаналіз 18 2. МЕТОДИ ШИФРУВАННЯ ТА ДЕШИФРУВАННЯ 26 2.1 Симетричні методи 26 2.2 Асиметричні методи 28 2.3 Хеш-функції 30 2.4 Метод Цезаря 32 2.5 Метод Віженера 38 3. ПРОГРАМНА РЕАЛІЗАЦІЯ 42 3.1 Вибір середовища розробки 42 3.2 Проектування та реалізація методів шифрування 44 3.3 Реалізація алгоритму зламу 46 ВИСНОВКИ 61 СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 63 ДОДАТОК А 65 ДОДАТОК Б 66 ДОДАТОК В 67 ЧДТУ.242268.001 ПЗ Змн Лист № докум. Підпис Дата Розроб. Соломаха Літ. Лист Листів Перевір. Чичужко Інформаційна система шифрування/ 2 Реценз. дешифрування даних Н. контр. ЧДТУ, АКІТС-2299 Затверд. Лукашенко ВСТУП У сучасному інформаційному середовищі швидко поширюються останні досягнення у галузі комп'ютерних і телекомунікаційних технологій. Комп'ютерні системи активно використовуються у фінансовому, промисловому, торговому та соціальному секторах. Це призвело до збільшення зацікавленості широкого загалу користувачів у питаннях захисту інформації. Захист інформації означає використання комплексу організаційних, технічних та юридичних заходів для запобігання завданню шкоди інтересам власника цієї інформації. Інформація вважається однією з ключових цінностей в наш час. Світові комп'ютерні мережі полегшили доступ до інформації для індивідуальних користувачів і великих організацій. Проте зручність і швидкість доступу до даних через Інтернет створюють значущі загрози безпеці цих даних у відсутність відповідних заходів їх захисту. З самого початку, коли люди винайшли писемність, з'явилося бажання зробити написане зрозумілим не всім, а лише вузькому колу осіб. Ця практика розпочалася з використання умовних символів ще в стародавні часи. Головною метою цих символів було передавання інформації від одного члена племені до іншого. У той час навіть сусідні ворожі племена не могли розшифрувати повідомлення, оскільки не мали знань про ці символи. З тих часів минуло безліч століть, виникли великі цивілізації, розвинулися писемність, культура і наука в бурхливий спосіб. Проте навіть у сучасний час усі країни світу по-просту мусять мати надійний спосіб захисту важливих державних інформаційних ресурсів. Жодна розвідка не може обійтися без використання кодів і шифрів, і з часом вони стали все більш складними і ефективними. Криптографія, як наука, лежить в основі методології створення систем для безпечної передачі інформації. Лист ЧДТУ.242268.001 ПЗ 3 Змн Лит № докум. Підпис Дата Криптографія (від грец. κρυπτός – прихований і γράφω – пишу) – наука про методи забезпечення конфіденційності (неможливості прочитання інформації стороннім) і автентичності (цілісності і справжності авторства, а також неможливості відмови від авторства) інформації. Спочатку криптографія досліджувала методи шифрування інформації, тобто процес перетворення відкритого тексту на шифрований текст за допомогою секретного алгоритму або ключа. Традиційна криптографія створює клас симетричних криптосистем, де для шифрування та розшифрування використовується один і той же секретний ключ. Поява перших електронних обчислювальних машин в середині ХХ століття кардинально змінила хід розвитку практичної криптографії. Термін "криптографія" відступив від свого первісного значення, яке включало "тайнопис" та "таємний лист". Сьогодні ця дисципліна об'єднує методи захисту інформаційних взаємодій абсолютно різного характеру, що базуються на перетворенні даних з використанням секретних алгоритмів, включаючи алгоритми, які використовують секретні параметри. Звісно, сучасна криптографія охоплює різноманітні аспекти, включаючи асиметричні криптосистеми, системи електронного цифрового підпису (ЕЦП), хеш-функції, управління ключами, отримання прихованої інформації та навіть квантову криптографію. Всі ці криптографічні алгоритми відрізняються своїми загальними характеристиками і основними принципами, на яких ґрунтуються їхні функції. Важливо зауважити, що надійність криптографічних алгоритмів є відносною. Багато з раніше розроблених алгоритмів, які раніше вважалися надійними, тепер можуть вважатися ненадійними, і ця надійність може викликати великий сумнів. Тому при розробці криптографічних алгоритмів важливо враховувати тенденції розвитку комп'ютерної техніки та інші фактори, які можуть потенційно підірвати їхню стійкість у майбутньому. Лист ЧДТУ.242268.001 ПЗ Змн Лит 4 № докум. Підпис Дата Мета кваліфікаційної роботи: провести дослідження основних принципів криптографії, ознайомити з різними методами шифрування інформації, а також розробити програму для шифрування, дешифрування та можливого злому даних за допомогою криптографічних алгоритмів. У роботі було обрано два відомих алгоритми шифрування – метод Цезаря та метод Віженера, а також розроблено алгоритм для можливого злому шифрованих даних. Ця кваліфікаційна робота дозволить глибше зрозуміти принципи і методи захисту інформації та протистояння можливим атакам, а також покращити розуміння криптографії та її застосувань у сучасному інформаційному середовищі. Лист ЧДТУ.242268.001 ПЗ 5 Змн Лит № докум. Підпис Дата 1. ДОСЛІДЖЕННЯ КРИПТОГРАФІЧНИХ АЛГОРИТМІВ 1.1 Загальні поняття Впродовж тривалого часу під криптографією розумілося переважно лише шифрування — процес перетворення звичайної інформації (відкритого тексту) в незрозуміле "сміття" (шифротекст). Криптографія зосереджувалася на забезпеченні конфіденційності повідомлень, тобто зміні повідомлень із зрозумілої форми в незрозумілу і зворотньому відновленні цієї форми на стороні отримувача, зробивши її незрозумілою для будь-якої особи, яка може спробувати перехопити або підслухати повідомлення без секретного знання (ключа), необхідного для його розшифрування. Проте в останні десятиліття область застосування криптографії значно розширилася, включаючи не лише таємну передачу повідомлень. Тепер криптографія охоплює методи перевірки цілісності повідомлень, ідентифікації відправника/одержувача (аутентифікація), цифрові підписи, інтерактивні підтвердження, а також технології для забезпечення безпечного спілкування тощо. Розширення цієї сфери дозволяє криптографії виконувати більше завдань, ніж просто забезпечення конфіденційності, і грає важливу роль у забезпеченні безпеки в сучасному інформаційному середовищі. Сучасна криптографія використовує відкриті алгоритми шифрування, які можуть бути перевірені та використовувані з використанням обчислювальних засобів. Більше десятка перевірених алгоритмів шифрування відомі, і при правильній реалізації алгоритму та використанні ключа відповідної довжини вони надійно захищають інформацію від можливого криптоаналізу. Широко використовуються такі алгоритми шифрування як Twofish, IDEA, RC4 та ін. Окрім криптографії, існують пов'язані з нею науки, які мають особливе значення в сучасному світі. Наприклад, дослідження Лист ЧДТУ.242268.001 ПЗ 6 Змн Лит № докум. Підпис Дата характеристик мов, які мають відношення до криптоаналізу, таких як частоти зустрічання певних літер, комбінацій літер, загальні шаблони тощо, відомі як криптолінгвістика. Сам процес криптоаналізу входить в сферу криптології, науки, яка досліджує методи шифрування та дешифрування інформації. Криптоаналітики використовують математичні методи для розкриття конфіденційності та цілісності інформації без знання секретного ключа. Іншими словами, це процес аналізу безпеки обраного алгоритму шифрування. Так, слова "шифр" і "код" є досить загально відомими, але не завжди розуміється їх справжнє значення. Всі шифри будуються на схожих принципах, де кожен символ або цифра замінюється на інший символ або цифру. У таких шифрах один символ завжди замінює одну і ту ж літеру або цифру. Наприклад, символ "1" завжди може означати "А" або "Я", але ніколи не може представляти слово "Ко" або весь вираз "Комп'ютер". Шифри можуть бути простими, де один символ завжди замінює одну конкретну літеру або цифру, як, наприклад, "В" завжди замінює "Я", а "9" завжди замінює "Д". Коди відрізняються від шифрів у тому, що вони можуть використовувати більш складні взаємозв'язки між символами, де буква, символ, цифра, склад, слово або навіть група слів можуть представляти букву, символ, склад, слово, групу слів або навіть концепцію. Наприклад, група цифр "2059" може означати "замовити піцу", а склад "Ра" може представляти слово "Сонце". Проте, важливо, що кожного разу, коли така група цифр або слово зустрічається в повідомленні, вони завжди вказують на одне і те ж значення. Кодування також використовується для опису змін вихідного тексту з метою підготовки його до передачі за допомогою технічних пристроїв. Сучасні приклади кодування відомі нам добре, вони включають телеграф та Лист ЧДТУ.242268.001 ПЗ 7 Змн Лит № докум. Підпис Дата цифровий телефонний зв'язок, зокрема всі мобільні телефони. Важливо відзначити, що спосіб кодування не є секретним і повинен бути відомий всім користувачам цього способу зв'язку. У криптографії, вихідне повідомлення називається "відкритим текстом" (plaintext або cleartext). Процес зміни вихідного тексту для приховання його змісту називається "шифруванням" (encryption). Результат шифрування називається "шифротекстом" (ciphertext). Процес, при якому з шифротексту відновлюється відкритий текст, називається "дешифруванням" (decryption). Зазвичай для шифрування та дешифрування використовується "ключ" (key), і алгоритм забезпечує, що дешифрування можливе лише при наявності правильного ключа. Схема, яка зображає даний процес, на рисунку 1.1 Рисунок 1.1 – Схема симетричного алгоритму шифрування Е – шифрування, D – дешифрування Сучасні алгоритми шифрування та дешифрування є досить складними і не можуть бути виконані вручну. Вони розроблені для використання комп'ютерами або спеціальними апаратними пристроями. У більшості додатків криптографічні процеси автоматизовані та виконуються за допомогою програмного забезпечення. Для цього доступні різні криптографічні пакети, які допомагають забезпечити безпеку інформації. Лист ЧДТУ.242268.001 ПЗ 8 Змн Лит № докум. Підпис Дата Багато якісних криптографічних алгоритмів широко доступні і можуть бути знайдені в книжкових магазинах, бібліотеках, патентних бюро або в Інтернеті. До відомих симетричних алгоритмів відносяться DES і IDEA. Зазвичай, найкращим асиметричним алгоритмом вважається RSA. Криптографічні генератори випадкових чисел створюють випадкові числа, які використовуються в криптографічних додатках, таких як генерація криптографічних ключів. Звичайні генератори випадкових чисел, які доступні в багатьох мовах програмування і програмних середовищах, не завжди підходять для потреб криптографії. Криптографічні системи розробляються таким чином, щоб зробити їх стійкими до атак і зламу як можна більше. Тому важливо використовувати спеціальні криптографічні генератори випадкових чисел, які гарантовано забезпечують випадковість і важко передбачити. Важливо підкреслити, що рівень надійності криптографічної системи визначається її найслабшою ланкою. Не можна пропустити жодного аспекту розробки системи, починаючи від вибору алгоритму і закінчуючи політикою використання та поширення ключів. 1.2 Огляд існуючих методів криптографії Початок криптографії співпадає з початком писемності, оскільки написаний текст міг розшифрувати лише той, хто володів навичками читання. Існували три основні способи захисту інформації. Один із них передбачав захист силовими методами: охорона документа – носія інформації – фізичними особами, передача його спеціальним кур'єром і т.п. Другий спосіб отримав назву "стеганографія," яке є поєднанням латино- грецьких слів і означає в сукупності "тайнопис." Він полягав в тому, щоб приховувати сам факт наявності інформації. Наприклад, для цього Лист ЧДТУ.242268.001 ПЗ 9 Змн Лит № докум. Підпис Дата використовувалися так звані симпатичні чорнила, які ставали видимими лише при відповідному "прояві" на папері. Ще один спосіб захисту інформації полягав у перетворенні осмисленого тексту в послідовність хаотичних символів або букв алфавіту. Одержувач такого повідомлення міг відновити його зміст, якщо володів ключем для розшифрування. Цей метод захисту інформації називається криптографією. За деякими твердженнями фахівців, криптографія як наука і мистецтво відома щонайменше так давно, як і стародавні єгипетські піраміди. Документи зі стародавніх цивілізацій, таких як Індія, Єгипет і Месопотамія, містять відомості про системи і методи створення шифрованих повідомлень. Найперші форми тайнопису потребували мінімальних засобів, таких як аналог олівця та паперу, оскільки в ті часи більшість людей не могла читати. З поширенням писемності серед ворогів з'явилася необхідність у криптографії. Основними типами класичних шифрів є перестановочні шифри, які змінюють порядок літер у повідомленні, і підстановочні шифри, які систематично замінюють літери або групи літер іншими літерами або групами літер. Прості варіації обох типів шифрів надавали лише обмежений захист від досвідчених супротивників. В V столітті до нашої ери правителі Спарти вже мали добре відпрацьовану систему секретного військового зв'язку і використовували "Скитала" – перший найпростіший криптографічний пристрій, який реалізовував метод простої перестановки для шифрування своїх послань. Шифрування відбувалося так: спочатку на циліндрі, що має форму жезла (зображено на рисунку 1.2), намотувалася вузька папірусна стрічка без просвітів. Потім на цій стрічці вздовж осі циліндра писали кілька рядків тексту повідомлення. Після цього стрічку розмотували. Для непосвячених осіб виглядало так, наче на стрічці були просто незв'язані літери. Адресат отримував такий же жезл і таким же чином намотував на нього отриману Лист ЧДТУ.242268.001 ПЗ Змн Лит 10 № докум. Підпис Дата стрічку, тим самим відновлюючи початкове повідомлення. Цей шифр отримав назву за формою жезла і став відомим як "шифр жезла". Рисунок 1.2 – Сучасна реконструкція шифру «Скитала» Один з ранніх і відомих прикладів підстановочних шифрів - це шифр Цезаря, в якому кожна літера в повідомленні зсувалася на певну кількість позицій у алфавіті. Цей шифр отримав свою назву на честь Юлія Цезаря, який використовував його для комунікації зі своїми генералами під час воєнних походів. Після падіння Римської імперії під впливом варварів і наступних "Темних століть", Європа пережила період великого спаду, коли багато досягнень цивілізації було забутими. Історики часто називають цей період "Темними століттями". Проте до кінця середньовіччя використання криптографії почало відроджуватися. Наприклад, у книзі "Екватор Планет", яка була опублікована у 1390 році і приписується Джефрі Чосеру, містяться розділи, закодовані за допомогою шифрів. Лист ЧДТУ.242268.001 ПЗ 11 Змн Лит № докум. Підпис Дата Це відродження досліджень з шифрування провадилось відомими вченими, які досліджували і розвивали цю науку. Крім традиційних застосувань криптографії в політиці та військовій справі, виникали завдання, що були близькі до сучасних, такі як застосування криптографії для захисту інтелектуальної власності від переслідувань інквізицією чи від позичення іншими вченими. У ручних шифрах цього періоду, часто використовувалися таблиці, які визначали прості шифрувальні процедури для перестановки літер у повідомленні. Ключем у таких шифрах може бути розмір таблиці, фраза, яка визначає порядок перестановки, або спеціальні властивості таблиць. Леон Батіста Альберті вигідно виділяється в цьому контексті своїм внеском в криптографію. Його винахід багатоалфавітної заміни робив шифрування надзвичайно стійким до розшифрування. Крім розробки самого шифру, він також детально описав пристрої з обертовими колесами для його реалізації. Його книга "Трактат про шифр", написана в 1466 році, стала першою науковою працею з криптології у світі, за винятком можливих арабських рукописів, які Європа тоді, швидше за все, не була добре знайома. Багато істориків вважають Йоганна Трисемуса, німецького абата, другим батьком сучасної криптології. У 1508 році Трисемус написав "Поліграфію," першу опубліковану працю з криптології. У цьому творі він систематично описав застосування шифруючих таблиць, де букви алфавіту розміщувалися у випадковому порядку. Для створення такого шифру зазвичай використовували ключове слово або фразу, які вписувалися в таблицю по рядках, при цьому повторювані букви відкидалися. Таблиця завершалася всіма літерами алфавіту, які не були включені в неї, у звичайному порядку. Оскільки ключове слово було легко запам'ятовувати, цей метод спрощував процеси шифрування і дешифрування. Такі табличні шифри, де шифрування проводиться по одній букві, отримали назву монограмних шифрів. Йоганн Трисемус був першим, хто Лист ЧДТУ.242268.001 ПЗ 12 Змн Лит № докум. Підпис Дата помітив, що можна шифрувати текст по дві букви одночасно. Ці шифри отримали назву біграмних шифрів. Один з найвідоміших біграмних шифрів - це шифр Плейфера (Playfair). Він був використовуваний Великобританією під час Першої світової війни. Спосіб формування шифрованого тексту з відкритого тексту виконувався за наступними двома простими правилами: Якщо обидві літери в біграмі (парі літер) вихідного тексту належали одній колонці таблиці, то літерами шифру ставали літери, які перебували під ними. Якщо літера відкритого тексту знаходилася в нижньому ряду, то для шифру використовувалася відповідна літера з верхнього ряду. Це правило також застосовувалося до біграм, що складалися з однієї літери, або пар літер, що були однаковими, і вони також підкорялися цьому правилу. Якщо обидві літери в біграмі вихідного тексту належали одному рядку таблиці, то для шифрування використовувалися літери, які розташовувалися праворуч від них. Якщо буква відкритого тексту була в правій колонці, то для шифру вибирався відповідний символ з лівої колонки. Якщо обидві літери в біграмі відкритого тексту розташовувалися в різних рядах і колонках таблиці, то для шифрування обирали дві літери так, щоб всі чотири літери утворювали прямокутник. При цьому послідовність літер у шифрі була оберненою у порівнянні з вихідною парою. Шифрування біграм різко підсилило стійкість шифрів до зламу. Росла потреба у використанні шифрів, що поставило нові вимоги перед ними, наприклад, легкість масового застосування та підвищена стійкість до розшифрування. Так, у 1854 році Чарльз Уітстон, британський винахідник, розробив новий вид біграмного шифру, відомий як "подвійний квадрат", що відкрив новий розділ в історії криптографії. Подвійний квадрат отримав свою назву через схожість з полібіанським квадратом, але відрізняється від нього тим, що використовує дві таблиці, розташовані горизонтально. Шифрування відбувається Лист ЧДТУ.242268.001 ПЗ Змн Лит 13 № докум. Підпис Дата біграмами, схожим чином до шифру Playfair. Ці незначні зміни призвели до створення нової системи ручного шифрування, яка виявилася дуже надійною і зручною. Навіть під час Другої світової війни німці використовували її завдяки великій стійкості до розкриття. Шифрування біграмами надає високу стійкість до розшифрування, і для злому шифру подвійного квадрата необхідно вкласти значні зусилля та мати велику кількість тексту, довшого за тридцять рядків. Четвертий період розвитку криптографії, який тривав з середини 20- го століття до 70-х років, відзначився впровадженням електромеханічних пристроїв у роботу шифрувальників, при цьому використовувалися поліалфавітні шифри. Проте з середини 70-х років почалася перехід до математичної криптографії. В цьому періоді вчені розробляли точні математичні концепції, такі як кількість інформації, передача даних, ентропія та функції шифрування. Створення шифру включало в себе вивчення його вразливості до різних відомих атак, таких як лінійний і диференціальний криптоаналіз. Проте до 1975 року криптографія лишалася переважно сферою "класичних" або, точніше, криптографії із секретним ключем. Сучасний період розвитку криптографії, який триває з кінця 1970-х років і до наших днів, відрізняється зародженням та розвитком нового напрямку - криптографії з відкритим ключем. Поява цього напрямку супроводжується не лише новими технічними можливостями, але також значним поширенням використання криптографії серед приватних користувачів. 1.3 Шифрувальна машина «Енігма» Найвідомішою попередницею сучасних криптографічних машин є роторна машина, яку винахідник Едвард Хеберн створив у 1917 році і назвав її "Енігма" (слово "enigma" перекладається як загадка). Незалежна Лист ЧДТУ.242268.001 ПЗ 14 Змн Лит № докум. Підпис Дата промислова версія цієї машини була розроблена трохи пізніше берлінським інженером Артуром Кірхом і зображена на рисунку 1.3. Рисунок 1.3 – Зовнішній вигляд «Енігми» Енігма складалася з чотирьох обертових барабанів, які розташовувалися на одній осі, надаючи понад мільйон варіантів для шифрування методом простої заміни. Кожен барабан мав 25 електричних контактів з обох сторін, відповідно до кількості літер в алфавіті. Ці контакти з'єднувалися випадково попарно за допомогою 25 проводів, утворюючи заміну символів. Колеса обертових барабанів спільно працювали і дозволяли електричним сигналам проходити через весь набір барабанів. Перед роботою Енігми барабани налаштовувалися в певне положення, щоб встановити кодове слово або ключ. Під час кодування кожного символу, правий барабан обертався на одну позицію. Після завершення Лист ЧДТУ.242268.001 ПЗ 15 Змн Лит № докум. Підпис Дата оберту цього барабану, наступний барабан також робив один оберт, подібно до лічильника електроенергії. Цей процес дозволяв отримувати ключ, значно довший за вихідне повідомлення. Наприклад, у першому правому барабані провід, пов'язаний з контактом, що відповідає букві "U", був з'єднаний з контактом, що відповідає літері "F" з іншого боку. Якщо барабан обертався на один крок, то цей же провід відповідав за заміну наступних букв - "U" на "V" і "F" на "G". Оскільки барабани мали контакти з обох боків, то електричний сигнал від натискання клавіші з буквою вихідного тексту зазнавав чотирьох замін, по одній на кожному барабані, перш ніж виходив з системи. Для ускладнення розшифрування барабани щодня переміщувались або змінювали конфігурацію. Подальше вдосконалення цієї машини призвело до того, що рух барабанів став хаотичним, а їх кількість спочатку зросла до 5, а потім до 6. Весь пристрій був настільки компактним, що його можна було помістити в портфель, і він був настільки простим у використанні, що обслуговувався звичайними зв'язківцями. На перший погляд, шифр Енігми здавався надзвичайно надійним, і було вкрай складно його зламати. Проте, англійські криптографічні служби в Блетчлі Парку майже протягом усієї війни змогли розшифровувати німецькі шифри, завдяки чому були в курсі військових дій та планів нацистської Німеччини. Це досягнення стало можливим завдяки польській розвідці, яка до 1939 року змогла отримати креслення Енігми і дослідити її принципи роботи. Після німецького нападу на Польщу, креслення німецької шифрувальної машини були передані до Великої Британії. Відразу ж британські криптоаналітики зрозуміли, що для того, щоб зламати шифр Енігми, потрібно знати конкретну конфігурацію проводів в шифруючих колесах машини. Почалася операція з вилучення зразків Лист ЧДТУ.242268.001 ПЗ 16 Змн Лит № докум. Підпис Дата машини Енігма. Перший успішний злет із цим планом вдалося здійснити прямо з заводу на південному сході Німеччини. Злам шифрів Енігми виявився надзвичайно важким завданням до тих пір, поки, в 1942 році, Алан Тьюрінг та його команда не впровадили в дію кілька спеціалізованих електромеханічних обчислювальних машин (ЕОМ), зокрема "Bombe". Ця ЕОМ, розроблена Тьюрінгом, стала першою в світі досить швидкодіючою машиной для злому шифрів. Вона була спеціально створена для декодування шифрів Енігми. З впровадженням "Bombe" британські криптоаналітики могли розкрити будь-який шифр Енігми, отриманий раніше, менше ніж за один день, методично перебираючи всі можливі ключі. німці, розроблюючи шифр Енігми, сподівалися на його безпеку завдяки складності ручного дешифрування. Однак, англійські криптоаналітики відомі своєю винахідливістю та впровадили механічні обчислювальні машини, такі як Bombe, для розшифровки. Навіть самі німці припускали можливість злому шифру Енігми. У 1930 році Георг Шредер, провідний німецький криптоаналітик, вже показав цю можливість. Однак робота з "Енігмою" постійно ускладнювалася, і були періоди, коли навіть в Блетчлі Парку не вдавалося впоратися з розкодуванням шифрів Енігми. Bombe була важливим кроком у розкритті цих шифрів та завдяки їй була виявлена багатошаровість шифру Енігми, що дозволило англійським криптоаналітикам успішно вирішувати проблему дешифрування. Криптологічна бомба, спроектована польським криптологом Маріаном Реєвським разом із Єжимом Рожицьким і Генріхом Зигальським у 1938 році, створена з метою розшифровування повідомлень, які німці шифрували за допомогою машини Енігма. Розробка цього пристрою стала можливою завдяки ненадійній процедурі подвоєння ключа, використовуваної німцями, що допомогло встановити щоденні налаштування Енігми. Лист ЧДТУ.242268.001 ПЗ 17 Змн Лит № докум. Підпис Дата Ця розробка послужила основою для створення більш вдосконаленого пристрою в Англії за підтримки її творців. Головною метою криптологічної бомби було визначення щоденних налаштувань машини Енігма на різних військових об'єднаннях німців, зокрема, позицій роторів, які визначали ключ для зашифрованого повідомлення. Теоретичну частину роботи виконав Алан Тюрінг. Його роботи з криптографічного аналізу алгоритму, реалізованого в шифрувальній машині «Енігма», грунтувалися на більш ранньому криптоаналізі попередніх версій цієї машини, які були виконані Маріаном Реєвским. Принцип роботи розробленого Тюрингом дешифратора складався в переборі можливих варіантів ключа шифру і спроб розшифрування тексту, якщо була відома структура дешифрованого повідомлення або частина відкритого тексту. Розшифрувати повідомлення німецької машини «Енігма» можливо лише в тому випадку, якщо відомий ключ, тобто положення роторів. Машина "Бомба" відтворює функціональність декількох з'єднаних машин "Енігма". Зазвичай машина "Енігма" має три ротора, кожен з яких може бути налаштований в одну з 26 позицій. Машина "Бомба" може одночасно опрацьовувати три ключі для секретних повідомлень, і вона еквівалентна 26 машинам "Енігма", кожна з яких має три ротори. У відміну від роторів у "Енігми", барабани в машині "Бомба" мають як вхідні, так і вихідні контакти, і їх можна з'єднувати послідовно. Кожен барабан містить 104 дротяні щітки, які торкаються пластин, на які вони завантажені. Щітки та відповідні контакти на пластині розташовані у чотирьох концентричних кільцях з 26 контактами кожне. Зовнішні кільця відповідають струму, що проходить через "Енігму" в одному напрямку, в той час як внутрішні кільця відповідають струму, що проходить в протилежному напрямку. Лист ЧДТУ.242268.001 ПЗ 18 Змн Лит № докум. Підпис Дата Перебір ключів машини "Бомба" супроводжувався звуком, схожим на цокання годинника, що спричинило назву цієї машини. Для кожного можливого ключа, який визначався положеннями роторів (кількість можливих ключів дорівнювала приблизно 10^19 для "сухопутної Енігми" і 10^22 для машин "Енігма," використовуваних на підводних човнах), машина "Бомба" виконувала перевірку з відомим відкритим текстом за допомогою електричних засобів. Перша "Бомба" Тьюрінга в Блетчлі була запущена 18 березня 1940 року. Польські колеги спробували пробити систему шифрування, використовуючи помилки німецьких шифрувальників. Однак ці помилки досить швидко виправлялися. Алан Тьюрінг запропонував більш ефективний спосіб, який полягав в переборі послідовностей символів на основі відомого відкритого тексту. Його метод включав щоденне дізнання або вгадування невеликого фрагмента повідомлення, що було досить досяжним завданням, оскільки німецькі військові використовували стандартні фрази. Після цього він використовував механічний перебір усіх двадцяти шести символів латинського алфавіту, щоб точно визначити місце цього фрагмента в повному зашифрованому тексті. Підходячи до рішення методом виключення, він враховував, що "Енігма" замінювала кожну букву іншою, але не ту саму букву. Лист ЧДТУ.242268.001 ПЗ 19 Змн Лит № докум. Підпис Дата Рисунок 1.4 – Робоча відреставрована машина в музеї Блетчлі-Парк. Перша машина "Bombe" Алана Тьюрінга була запущена 18 березня 1940 року. Вона складалася з 108 обертових електромагнітних барабанів і інших допоміжних блоків. Машина мала великі розміри: 10 футів (3,0 м) у довжину, 7 футів (2,1 м) у висоту, 2 фути (0,61 м) у ширину і важила 2,5 тонни. Загалом у "Блетчлі-Парку" було встановлено 210 машин типу "Bombe," що дозволяло розшифровувати до 3 тисяч повідомлень щодня. Це відіграло важливу роль у воєнних зусиллях Великої Британії, особливо в боротьбі з підводними човнами в Атлантиці. Завдяки "Bombe" були отримані інформація про підготовку вторгнення в СРСР, і ця інформація була передана радянському уряду. Після закінчення війни Вінстон Черчілль з міркувань секретності віддав наказ знищити всі матеріальні сліди програми Ultra, включаючи машини "Bombe." Лист ЧДТУ.242268.001 ПЗ 20 Змн Лит № докум. Підпис Дата Британські історики та ентузіасти відновили одну з машин "Bombe" Алана Тьюрінга після 60 років. Навіть за наявності докладних креслень і пояснень (комплект збірки був зібраний за 2 роки), процес відновлення забрав 10 років їхнього часу. Рисунок 1.5 – Відновлювана Bombe в Блетчлі-парку, 2004 рік 1.4 Сучасний криптоаналіз Криптоаналіз – це наука про дешифрування закодованих повідомлень без знання ключів. В теорії, будь-який шифрувальний алгоритм, що використовує ключ, може бути розкритий шляхом послідовного перебору всіх можливих значень ключа. Метод "грубої сили" включає в себе пошук правильного ключа, перебираючи всі можливі комбінації. Проте, із збільшенням довжини ключа необхідна обчислювальна потужність зростає Лист ЧДТУ.242268.001 ПЗ 21 Змн Лит № докум. Підпис Дата експоненціально. Наприклад, для ключа довжиною 32 біти потрібно виконати 232 (приблизно 4 мільярди) ітерацій. Це завдання може бути виконане навіть звичайним персональним комп'ютером. Проте, ключі довжиною 128 біт мають 2128 можливих комбінацій, і їх злам методом "грубої сили" в наш час вважається надзвичайно важким завданням, що не вирішується в найближчому майбутньому. Є багато криптоаналітичних підходів. Деякі з найбільш важливих для розробників наведені нижче: ● Атака на шифр, коли атакуючий має доступ лише до зашифрованого тексту (атака зі знанням лише шифрованого тексту, ciphertext-only attack), полягає в тому, що зловмисник не має жодної інформації про вміст відкритого тексту і повинен працювати виключно з зашифрованим текстом. У практиці, атакуючий може базуватися на загальних знаннях про можливу структуру повідомлення, наприклад, на стандартних заголовках, що використовуються в повідомленнях. Зазвичай, навіть звичайні листи або документи мають певні загальні риси, такі як структура і початкові рядки. Також можуть існувати припущення про наявність певних слів у тексті. Використовуючи ці загальні відомості, атакуючий може спробувати розкрити шифр, аналізуючи зв'язок між зашифрованим і відкритим текстами. ● Атака на шифр, коли атакуючий має знання про вміст частини або всього зашифрованого тексту (атака зі знанням відомого тексту, known-plaintext attack), полягає в тому, що атакуючий володіє інформацією про відкритий текст, що відповідає частині або всьому зашифрованому тексту. Задача полягає у розшифруванні решти повідомлення. Це може бути виконано шляхом визначення ключа шифрування або обходу його. ● Атака із заданим текстом (chosen-plaintext attack) передбачає, що атакуючий має можливість отримати шифрований документ для будь- Лист ЧДТУ.242268.001 ПЗ 22 Змн Лит № докум. Підпис Дата якого тексту, який він вибирає, але при цьому не знає ключа шифрування. Його завданням є визначення цього ключа. Деякі шифрувальні алгоритми, зокрема RSA, можуть бути дуже вразливими до атак цього типу. Отже, при використанні таких алгоритмів необхідно дотримуватися високого рівня обережності, щоб атакуючий не міг зашифрувати обраний ним текст і використовувати цю інформацію для аналізу ключа. ● Атака за допомогою таймера (timing attack) - це новий тип атак, який ґрунтується на послідовному вимірюванні часу, що потрібний для виконання операції піднесення до степеня за модулем цілого числа. Найбільш вразливі до цього типу атак є шифри, такі як RSA, Діффі- Геллман і метод еліптичних кривих. Атака використовує вимірювання часових затрат на виконання певних операцій і може допомогти атакуючому визначити конфіденційну інформацію, включаючи ключі шифрування. Таким чином, виробники і користувачі криптографічних систем повинні бути обережні і ретельно враховувати можливість атаки за допомогою таймера при розробці та використанні криптографічних рішень. Є безліч інших криптографічних атак і криптоаналітичних підходів. Однак, наведені вище є найбільш важливими для практичної розробки систем. Справа в тому, що для вирішення однієї і тієї ж задачі існує багато різних математичних рішень. Навіть в останні роки були зроблені різні просування в різних галузях математики, які в сумі можуть призвести до поліпшення будь-якого алгоритму. Криптографія – це наука на стику фундаментальної математики, фізики та прикладної технології. А математичний апарат – це інструмент криптографії і по суті щось вторинне, він визначається тим, що в даний момент зручно і легко реалізовувати. Якщо раніше, до Другої світової війни, Лист ЧДТУ.242268.001 ПЗ 23 Змн Лит № докум. Підпис Дата основними в цій області були комбінаторика, теорія ймовірності, то після появи мікроелектроніки стала актуальною теорія автоматів, а тепер найважливішим є напрям теорії складності обчислень, а також теорія чисел. Наприклад, такі односторонні функції з секретом. Ці функції неможливо розшифрувати без знання внутрішнього секрету або "пастки". Протягом останніх 15-20 років було розглянуто багато кандидатів на роль таких функцій. З усіх математичних задач, які були перевірені, щоб знайти таку функцію, тільки одна – завдання розкладання на множники – надає можливість вбудовування секрету. До основних методів криптоаналізу входять чотири основних та три додаткових методи, припускаючи, що криптоаналітикам відомий алгоритм шифру. Основні методи криптоаналізу: ● Атака на основі шифротексту ● Атака на основі відкритих текстів і відповідних шифротекстів ● Атака на основі підібраного відкритого тексту (можливість вибрати текст для шифрування) ● Атака на основі адаптивно підібраного відкритого тексту Додаткові методи криптоаналізу: ● Атака на основі підібраного шифротексту ● Атака на основі підібраного ключа ● Бандитський крипто аналіз (шантаж) Окремим напрямком криптоаналізу є інженерний криптоаналіз, який вивчає методи атак на програмні, програмно-апаратні та апаратні реалізації криптографічних перетворень. У інженерному криптоаналізі розглядаються: ● час виконання криптографічних перетворень; ● коливання споживання енергії; Лист ЧДТУ.242268.001 ПЗ 24 Змн Лит № докум. Підпис Дата ● збої внаслідок впливу електричних, магнітних полів, екстремальних температур, іонізуючого випромінювання, зміни частоти тактового генератора тощо. За останні роки стали активно обговорювати дві обіцяючі галузі - квантову криптографію і динамічний хаос. Це свідчить про постійний розвиток криптографії і її готовність адаптуватися до нових наукових досягнень. Завжди, коли з'являється новий науковий напрям, вчені шукають можливості використання його в криптографії, і це сприяє постійному розвитку цієї важливої галузі. Лист ЧДТУ.242268.001 ПЗ 25 Змн Лит № докум. Підпис Дата 2. МЕТОДИ ШИФРУВАННЯ ТА ДЕШИФРУВАННЯ 2.1 Симетричні методи Симетричні алгоритми шифрування використовуються для захисту інформації. Одна з особливостей цих алгоритмів полягає в тому, що один і той самий ключ використовується як для шифрування, так і для розшифрування повідомлення. Симетричні алгоритми поділяються на дві основні категорії: потокові та блочні. Потокові алгоритми шифрування обробляють текст повідомлення послідовно, символ за символом чи бітом за бітом. Блочні алгоритми, натомість, ділять текст повідомлення на фіксовані блоки і працюють з кожним блоком окремо. Зазвичай розмір блоку складає 64 біти, але, наприклад, у випадку алгоритму AES використовується блок довжиною 128 біт. Одна з особливостей симетричних алгоритмів — це використання одного і того ж ключа для обох операцій шифрування та розшифрування, що відзначає їх симетричність. Алгоритми симетричного шифрування використовують ключі невеликої довжини і здатні швидко шифрувати значні обсяги даних. Симетричні алгоритми шифрування часто використовуються в поєднанні з іншими криптографічними методами у сучасних криптосистемах. Наприклад, комбінації симетричних та асиметричних алгоритмів використовуються в SSL, PGP та GPG для максимізації переваг обох підходів. Асиметричні алгоритми часто використовуються для розповсюдження ключів швидших симетричних алгоритмів. До деяких відомих і широко використовуваних алгоритмів із доброю репутацією входять Twofish, AES, RC4, TDES та IDEA. Симетричні алгоритми шифрування, в основному, вимагають менше обчислень, ніж асиметричні. На практиці це означає, що якісні асиметричні Лист ЧДТУ.242268.001 ПЗ Змн Лит 26 № докум. Підпис Дата алгоритми можуть бути сотні або тисячі разів повільнішими, ніж якісні симетричні алгоритми. Недоліком симетричних алгоритмів є необхідність мати секретний ключ з обох боків передачі інформації. Оскільки ключі можуть бути предметом можливого перехоплення, їх необхідно часто змінювати та передавати по безпечним каналам передачі інформації під час розповсюдження. Симетричне шифрування має ряд переваг. По-перше, це висока швидкість криптографічних операцій, що робить його ефективним для шифрування даних, які залишаються у вас. Однак використання симетричного шифрування самостійно, як засобу захисту передаваних даних, може бути витратним через складність обміну таємним ключем. Для встановлення криптографічного зв'язку за допомогою симетричного алгоритму, відправник і одержувач повинні попередньо узгодити ключ та утримувати його в секреті. Якщо вони знаходяться в географічно віддалених місцях, їм може знадобитися довірений посередник, такий як надійний кур'єр, щоб уникнути компрометації ключа під час транспортування. Зловмисник, який перехопить ключ під час передачі, матиме можливість читати, змінювати та підробляти будь-яку інформацію, зашифровану або підписану цим ключем. 2.2 Асиметричні методи В історії криптографії проблема передачі ключів була важливою. У минулому використовувалися симетричні шифри, де один і той самий ключ використовувався для шифрування і розшифрування даних. Хоча ключі можна було передавати по іншому каналу зв'язку, криптографія вважала всі канали незахищеними і, таким чином, небезпечними для передачі ключів. Наприклад, передача ключа по телефону вважалася ризикованою, оскільки можливість прослуховування з боку третьої сторони була великою. Лист ЧДТУ.242268.001 ПЗ 27 Змн Лит № докум. Підпис Дата До 1970-х років проблема передачі ключів була настільки поширеною, що вважалася аксіомою — фактом, що при використанні шифрів потрібно передавати і ключі разом з зашифрованим повідомленням. Проте у 1976 році Діффі та Геллман вирішили цю проблему, представивши "метод експоненціального обміну ключів". Цей метод відзначив початок розвитку асиметричних криптосистем. Даний метод показаний у таблиці 2.1 Таблиця 2.1 – Алгоритм створення ключів Діффі-Геллмана Крок Відправник Отримувач Обидва участники домовляються про значення Y и P для загальної односторонньої функції. Ця інформація не є таємною. Нехай, були обрані значення 7 та 11. Загальна функція буде мати 1 вигляд: 7x (mod 11) Обирає випадкове число, наприклад 3, і Обирає випадкове число, наприклад 6, і 2 зберігає його у секреті, позначимо його як зберігає його у секреті, позначимо його як число A число B Підставляє число A у функцію і обраховує Підставляє число В у функцію і обраховує результат результат 3 73 (mod 11) = 343 (mod 11) = 2, 76 (mod 11) = 117649 (mod 11) = = 4, визначає визначає результат цього обрахунку як число a результат цього обрахунку як число b 4 Передає число a Передає число b Отримує b, і рахує значення Отримує а, і рахує значення 5 bA (mod 11) = 43 (mod 11) = aB (mod 11) = 26 (mod 11) = = 64 (mod 11) = 9 = 64 (mod 11) = 9 6 Обидва участники в результаті отримали число 9. Це і є ключ. Лист ЧДТУ.242268.001 ПЗ 28 Змн Лит № докум. Підпис Дата У методі Діффі-Геллмана для отримання кінцевого ключа використовуються три числа: значення a і P, і секретне число отримувача B, або значення b і P, і секретне число відправника A. Важливо відзначити, що секретні числа залишаються конфіденційними і не передаються по каналу, ускладнюючи завдання третім особам встановлення кінцевого ключа. Асиметричні шифри, відомі як алгоритми з відкритим ключем або криптографією з відкритим ключем, дозволяють використовувати відкритий ключ для шифрування повідомлень, але лише володар відповідного закритого ключа може їх розшифрувати. Такий відкритий ключ є загальнодоступним, що дозволяє будь-кому шифрувати повідомлення, але розшифрувати їх може лише той, хто володіє відповідним закритим ключем або секретним ключем. Загалом, сутність даного алгоритму полягає в тому, що приймаюча сторона, перед тим як отримати повідомлення, генерує пару ключів за допомогою алгоритму модульної арифметики, а саме приватний і публічний ключі. Відправник, перед тим як відправити повідомлення, отримує публічний ключ та шифрує повідомлення цим ключем. Для розшифрування потрібно використовувати лише приватний ключ, який залишається у секреті у приймаючої сторони. Схема цього алгоритму показана на рисунку 2.1. Лист ЧДТУ.242268.001 ПЗ 29 Змн Лит № докум. Підпис Дата Рисунок 2.1 – Схема асиметричного алгоритму Деякі асиметричні алгоритми можуть використовуватися для створення цифрового підпису. Цифровий підпис - це блок даних, що генерується за допомогою секретного ключа. За допомогою відкритого ключа можна перевірити, що дані дійсно були створені за допомогою цього секретного ключа. Алгоритм генерації цифрового підпису повинен гарантувати, що створити підпис без секретного ключа практично неможливо, і при перевірці він виявиться правильним лише при наявності відповідного секретного ключа. Цифрові підписи використовуються для підтвердження автентичності повідомлення, тобто для підтвердження того, що воно було надіслане саме від відправника, якому належить відповідний секретний ключ (в припущенні, що тільки відправник володіє секретним ключем, який відповідає його відкритому ключу). Крім того, цифрові підписи використовуються для проставлення штампа часу на документах. Сторона, Лист ЧДТУ.242268.001 ПЗ 30 Змн Лит № докум. Підпис Дата якій ми довіряємо, може підписати документ із штампом часу за допомогою свого секретного ключа, підтверджуючи тим самим, що документ існував на момент, вказаний у штампі часу. Цифрові підписи можна використовувати для підтвердження того, що документ належить конкретній особі. Цей процес включає підписання відкритого ключа та інформації про його власника стороною, якій довіряємо. Довіра до цього підписуємого відкритого ключа може ґрунтуватися на тому, що його було підписано третьою стороною, до якої ми також довіряємо. Так утворюється ієрархія довіри, і важливою є наявність кореневого ключа, якому можна довіряти безпосередньо, не базуючись на підписі іншої сторони. Цифровий підпис документа зазвичай включає кілька етапів. Спершу, для документа обчислюється хеш-функція (дайджест), яка виробляє унікальний "відбиток" або суму для забезпечення цілісності ідентифікованого тексту. Після цього до дайджесту може додаватися інша інформація, така як дані про підписувача, штамп часу і т. д. Отриманий набір даних підписується секретним ключем відправника, використовуючи криптографічний алгоритм. Зашифрований підпис разом із відкритим ключем відправника складає цифровий підпис, який прикріплюється до документа. Отримувач перевіряє підпис, використовуючи відкритий ключ відправника. Він перевіряє, чи відповідає отриманий підпис документу та іншій інформації. Якщо підпис вірний і валідний, то повідомлення вважається підтвердженим і вірогідним. Довжина ключів, використовуваних в криптографії з відкритим ключем, зазвичай значно більша, ніж у симетричних алгоритмах. Тут проблема полягає не в підборі ключа, а в утрудненні відтворення секретного ключа з відкритого. У випадку RSA проблема еквівалентна розкладанню на множники великого цілого числа, яке є результатом перемноження пари Лист ЧДТУ.242268.001 ПЗ 31 Змн Лит № докум. Підпис Дата невідомих простих чисел. У випадку деяких інших криптосистем, проблема еквівалентна вирахуванню дискретного логарифма по модулю великого цілого числа (таке завдання вважається приблизно аналогічним за складністю до завдання розкладання на множники). Щоб отримати уявлення про складність розкриття RSA, давайте розглянемо деякі приклади. Модулі з ключами довжиною 256 біт можуть бути факторизовані звичайними програмістами. Ключі в 384 біт можуть стати доступними для розкриття дослідницькими групами університетів або компаній. 512-бітові ключі можуть бути взяті під контроль великими державами. Ключі довжиною 768 бітів, можливо, не будуть надійними на тривалий період. Ключі довжиною 1024 біти можуть залишатися безпечними до того часу, поки не з'явиться значний прогрес в алгоритмах факторизації. Ключі довжиною 2048 бітів, ймовірно, залишаться надійними на протязі десятиліть. 2.3 Хеш-функції Проте, описана вище схема має свої недоліки. Вона працює надто повільно і обробляє великі обсяги даних, щонайменше удвічі більше, ніж обсяг вихідної інформації. Спроби вдосконалення цієї схеми призвели до виникнення нового елемента в криптографії – однобічної хеш-функції. Криптографічна хеш-функція є алгоритмом, який приймає будь-який блок даних і повертає фіксований рядок заданого розміру, відомий як (криптографічне) хеш-значення. Зміни в даних, будь то випадкові або навмисні, призводять до кардинально зміненого хеш-значення. Ці дані перед кодуванням часто називають "повідомленням", а отримане хеш- значення іноді вказують як дайджест повідомлення або просто дайджест, що дослівно означає "стислий виклад".Ідеальна криптографічна хеш-функція має чотири основні або значимі властивості: ● легкість обчислення хеш-значення для будь-якого повідомлення; Лист ЧДТУ.242268.001 ПЗ 32 Змн Лит № докум. Підпис Дата ● неможливість відновити повідомлення для заданого хеш-значення; ● неможливість змінити повідомлення без зміни хеша; ● неможливість знайти два різних повідомлення з тим самим хешем. Криптографічні хеш-функції широко використовуються в області інформаційної безпеки, зокрема в цифровому підписі, коді автентифікації повідомлення та інших формах аутентифікації. Зазвичай їх використовують як стандартні хеш-функції для індексації даних в хеш-таблицях, виявлення повторень даних, унікальної ідентифікації файлів та як контрольну суму для виявлення пошкодження даних. В контексті інформаційної безпеки криптографічні хеш-значення іноді називають (цифровими) відбитками пальців. У загальному випадку, хеш-функція будується на основі ітеративної послідовної схеми (рисунок 2.2). Ядро алгоритму представлено стискаючою функцією, яка перетворює k вхідних біт в n вихідних біт, де n - розрядність хеш-функції, а k - довільне число, більше n. Рисунок 2.2 – Схема роботи хеш-функції Лист ЧДТУ.242268.001 ПЗ 33 Змн Лит № докум. Підпис Дата Вхідний потік розбивається на блоки по (k - n) біт. Алгоритм використовує тимчасову змінну розміром в n біт, початковим значенням якої є деяке число. Кожен наступний блок даних об'єднується з вихідним значенням стискаючої функції на попередній ітерації. Значенням хеш- функції є вихідні n біт останньої ітерації. Кожен біт вихідного значення хеш- функції залежить від усього вхідного потоку даних і початкового значення. Таким чином досягається лавинний ефект. При розробці хеш-функцій на основі ітеративної схеми виникає проблема вибору розміру вхідного потоку даних. Розмір цього потоку повинен бути кратним (k - n). Зазвичай перед початком алгоритму дані розширюються обраним наперед способом. Крім однопрохідних алгоритмів, існують багатопрохідні алгоритми, в яких лавинний ефект ще більше підсилюється. У таких випадках дані спочатку повторюються, а потім розширюються до необхідних розмірів. 2.4 Метод Цезаря Історичним прикладом симетричного шифру заміни є шифр Цезаря, який винайдений Гаем Юлієм Цезарем в 1 столітті до н.е. та описаний істориком Светонієм, представником Стародавнього Риму. У цьому шифрі використовувався простий принцип: алфавіт (A, B, C...) відображався, а потім виписувався ще раз зі зсувом на 3 букви вліво: Початковий: ABCDEFGHIJKLMNOPQRSTUVWXYZ Шифр: DEFGHIJKLMNOPQRSTUVWXYZABC При зашифровці, літера A замінювалася на D, B замінювалася на E і так далі. Наприклад, слово «ROME» перетворювалося в слово «URPH». Одержувач повідомлення «URPH» шукав ці букви в нижньому рядку і по буквах над ними відновлював вихідне слово. Сам Цезар застосовував величину зсуву 3 (рисунок 2.3). Наступник Юлія Цезаря – Цезар Август – Лист ЧДТУ.242268.001 ПЗ Змн Лит 34 № докум. Підпис Дата використовував той же шифр, але з ключем зсуву 4. Слово «ROME» він, в цьому випадку, зашифрував би у буквосполучення «VSQI». Рисунок 2.3 – Схема шифру Цезаря із зсувом на 3 Існує обмежена кількість можливих значень для зсуву (26 для англійської мови), і всі вони можуть бути перевірені методом грубої сили. Один з методів для цього - виписати уривок зашифрованого тексту в стовпець для всіх можливих зсувів, цей прийом іноді називають "завершенням простого компонента". Інший метод полягає в перевірці частоти використання літер. Зобразивши діаграму частоти зустрічання літер у зашифрованому тексті та знаючи очікуваний розподіл для звичайного тексту, можна легко визначити зсув, аналізуючи характерні риси на діаграмі (див. рисунок 2.4). Цей метод відомий як частотний аналіз. Наприклад, в англійському тексті частоти літер E, T (зазвичай найбільш часті), а також Q, Z (зазвичай менш розповсюджені), мають відмінності відзначені на діаграмі частот. Цей процес можна автоматизувати, розробивши комп'ютерну програму, яка оцінює, наскільки добре фактичний розподіл частот відповідає очікуваному розподілу. Лист ЧДТУ.242268.001 ПЗ 35 Змн Лит № докум. Підпис Дата Розподіл літер у типовому зразку тексту англійською мовою має характерний та передбачуваний вигляд. Шифр Цезаря «переміщує» цей розподіл, і можна визначити зсув, аналізуючи графік частот для кожного із можливих зсувів. Рисунок 2.4– Відсотковий розподіл частоти літер в англійській мові Багаторазове шифрування не покращує стійкість, оскільки застосування шифрів із зсувом a і b еквівалентне застосуванню шифру із зсувом a + b. Крок шифрування, властивий шифру Цезаря, часто використовується як складова більш складних схем, таких як шифр Віженера, і залишається актуальним у системі ROT13. Незважаючи на те, що шифр Цезаря легко зламується та практично не застосовується в реальних умовах через свою вразливість, він залишається популярним в навчальних цілях. Лист ЧДТУ.242268.001 ПЗ 36 Змн Лит № докум. Підпис Дата 2.5 Метод Віженера У 1466 році Леон Альберті, видатний архітектор і філософ, представив трактат про шифри в папській канцелярії. У цьому трактаті розглядалися різні методи шифрування, включаючи приховування відкритого тексту в допоміжному тексті. Робота завершилася розробкою його власного шифру, який він охарактеризував як "шифр, гідний королів". Це був багатоалфавітний шифр, реалізований у вигляді шифрувального диска. Суть полягала в тому, що в цьому шифрі використовувалося кілька замін відповідно до ключа. Пізніше Альберті винайшов код із перешифровкою. Його винахід був значно передовжений за свій час, оскільки цей тип шифру став широко використовуватися в країнах Європи лише через 400 років. Шифр Віженера насолоджувався репутацією, що його майже неможливо взламати "вручну". У своїй статті "Алфавітний шифр", опублікованій у дитячому журналі в 1868 році, відомий письменник і математик Чарльз Доджсон Доджсон (Люіс Керролл) вважав шифр Віженера незламним. У 1917 році Scientific American також визнавав його невразливим до злому. Проте ця репутація була спростована, коли Фрідріх Касіскі, офіцер прусської армії, повністю взламав шифр у XIX столітті. Навіть у XVI столітті деякі досвідчені криптоаналітики змогли зламати цей шифр. Шифр Віженера є досить простим для використання в умовах польових операцій, особливо при використанні шифрувальних дисків. Наприклад, під час Громадянської війни "конфедерати" використовували мідний шифрувальний диск (див. рисунок 2.5) для застосування шифру Віженера. Лист ЧДТУ.242268.001 ПЗ 37 Змн Лит № докум. Підпис Дата Рисунок 2.5 – Репродукція шифрувального диска Конфедерації Шифр Віженера - це розширення ідеї шифру Цезаря. У шифрі Цезаря кожна буква алфавіту зсувається на фіксовану кількість позицій (наприклад, на 3: A → D, B → E і так далі). У шифрі Віженера використовується послідовність декількох шифрів Цезаря з різними значеннями зсуву. Для шифрування використовується таблиця алфавітів, відома як tabula recta або квадрат (таблиця) Віженера. В таблиці Віженера латинського алфавіту рядки складаються з 26 символів, і кожен наступний рядок зсувається на певну кількість позицій. Таким чином, таблиця містить 26 Лист ЧДТУ.242268.001 ПЗ 38 Змн Лит № докум. Підпис Дата різних шифрів Цезаря. На кожному етапі шифрування використовується окремий алфавіт, вибраний відповідно до символу ключового слова. Рисунок 2.6 – Квадрат Віженера, також відомий як «tabula recta» Людина, яка посилає повідомлення, записує ключове слово циклічно до тих пір, поки його довжина не буде відповідати довжині вихідного тексту. Рисунок 2.7 – Приклад шифрування методом Віженера Лист ЧДТУ.242268.001 ПЗ 39 Змн Лит № докум. Підпис Дата На прикладі (рисунок 2.7), перший символ вихідного тексту "A" зашифрований послідовністю "L", яка є першим символом ключа. Цей перший символ "L" в зашифрованому тексті визначається як символ, який знаходиться на перетині рядка "L" і стовпця "A" у таблиці Віженера. Так само для другого символу вихідного тексту використовується другий символ ключа, тобто другий символ зашифрованого тексту "X" визначається на перетині рядка "E" і стовпця "T". Подібним чином шифрується решта вихідного тексту. Якщо n — кількість літер в алфавіті, mj — літери відкритого тексту, kj— літери ключа, то шифрування Віженера можна записати наступним чином: cj = mj ± kj (mod n), де плюс використовується при шифруванні, а мінус при дешифруванні. Розшифрування проводиться аналогічним чином, зі зрушенням за алфавітом у зворотному напрямку. У комп'ютерному середовищі ця операція відповідає додаванню ASCII-кодів символів повідомлення і ключа по модулю. Для ручного застосування багатоалфавітного шифру важливо враховувати довжину та складність ключа, використовуючи таблицю (рисунок 2.6), яку можна не сховувати відомою, що полегшує процес шифрування та розшифрування. Шифр Віженера дозволяє певним чином уникнути характерних особливостей частот появи символів у тексті, але його ключ, як недолік, має тенденцію повторюватися. Це створює можливість простого криптоаналізу, який може бути виконаний у два етапи: 1. Пошук довжини ключа. Можна аналізувати розподіл частот в зашифрованому тексті з різним проріджування. Тобто брати текст, що включає кожну 2-ю літеру зашифрованого тексту, потім кожну 3-ю і т. д. Як Лист ЧДТУ.242268.001 ПЗ Змн Лит 40 № докум. Підпис Дата тільки розподіл частот букв буде дуже відрізнятися від рівномірного (наприклад, по ентропії), то можна говорити про знайдену довжині ключа. 2. Криптоаналіз. Сукупність n шифрів Цезаря (де n – знайдена довжина ключа), які окремо легко зламуються. Як тільки довжина ключа стає відомою, зашифрований текст можна записати в безліч стовпців, кожен з яких відповідає одному символу ключа. Кожен стовпець складається з початкового тексту, який зашифрований шифром Цезаря; ключ до шифру Цезаря є всього-на-всього одним символом ключа для шифру Віженера, який використовується в цьому стовпці. Використовуючи методи, подібні методам злому шифру Цезаря, можна розшифрувати зашифрований текст. Гілберт Вернам, американський інженер у сфері телекомунікацій, намагався удосконалити шифр (відомий як шифр Вернама-Віженера, введений у 1918 році), проте, незважаючи на його зусилля, шифр залишався вразливим до криптоаналізу. Тим не менше, робота Вернама у кінці кінців призвела до розробки шифру Вернама, який вважається непроникним. Лист ЧДТУ.242268.001 ПЗ 41 Змн Лит № докум. Підпис Дата 3. ПРОГРАМНА РЕАЛІЗАЦІЯ 3.1 Вибір середовища розробки Microsoft Visual Studio – лінійка продуктів компанії Майкрософт, що включають інтегроване середовище розробки програмного забезпечення і ряд інших інструментальних засобів. Дані продукти дозволяють розробляти як консольні додатки, так і додатки з графічним інтерфейсом, в тому числі з підтримкою технології Windows Forms, а також веб-сайти, веб-додатки, веб-служби для всіх платформ, що підтримують Microsoft Windows, Windows Mobile, Windows CE , .NET Framework, .NET Compact Framework і Microsoft Silverlight. Visual Studio - це інтегроване середовище розробки (IDE), яке містить редактор вихідного коду з підтримкою технології IntelliSense і здатність до простого рефакторінгу коду. Вбудований відладчик може працювати як відладчик на рівні вихідного коду, так і відладчик на рівні машинного коду. Додаткові вбудовані інструменти включають редактор форм для легкості створення графічного інтерфейсу додатків, веб-редактор, дизайнер класів і дизайнер схеми бази даних. Visual Studio відкриває можливості створення та інтеграції сторонніх додатків (плагінів), що розширюють функціональність на різних рівнях. Це охоплює додавання підтримки систем контролю версій вихідного коду, таких як Subversion і Visual SourceSafe, а також внесення нових інструментів. Наприклад, це може включати розширення для редагування та візуального проектування коду на предметно-орієнтованих мовах програмування або інструментів для інших етапів циклу розробки програмного забезпечення. Середовище розробки Visual Studio визначається як високоефективний механізм, спрямований на полегшення роботи програміста. Це інтегроване середовище розробки (IDE), яке координує Лист ЧДТУ.242268.001 ПЗ 42 Змн Лит № докум. Підпис Дата взаємодію з розробником через різноманітні вікна, що містять різні керуючі елементи (див. рисунок 3.1). Засоби IDE дозволяють розробнику проектувати інтерфейсну частину програми, писати програмний код та пов'язувати його з керуючими елементами. Всі етапи розробки програми, включаючи налагодження, виконуються безпосередньо в середовищі IDE. Рисунок 3.1 – Інтерфейс Visual Studio 2015 3.2 Проектування та реалізація методів шифрування Методи шифрування/дешифрування було реалізовано у середовищі Microsoft Visual Studio, використовуючи мову програмування C#. Було обрано методи шифрування Цезаря та Віженера для початку розробки. В майбутньому є можливість використати будь-який необхідний алгоритм, використовуючи вже існуючі модулі програми. На головній формі було розміщено текстові поля для введення інформації, функціональні кнопки та поля для виведення результатів (рисунок 3.2). Лист ЧДТУ.242268.001 ПЗ 43 Змн Лит № докум. Підпис Дата Всі приведені у роботі алгоритми та методи було реалізовано без використання готових кодів з інтернету. Рисунок 3.2 – Перший робочий варіант інтерфейсу програми Користувач має ввести ключ, повідомлення/шифр та натиснути на відповідну кнопку. На елементі TextBox, який за замовчуванням є порожнім, буде виведено шифр/повідомлення відповідно до обраної функції. Програма є стійкою до регістру, будь-який текст буде переведено у верхній регістр. Всі символи та цифри буде збережено без змін, у тому числі і пропуски. Приклад шифрування тексту методом Віженера приведено на рисунку 3.3. Лист ЧДТУ.242268.001 ПЗ 44 Змн Лит № докум. Підпис Дата Рисунок 3.3 – Приклад шифрування методом Віженера Самі методи засновані на використанні таблиці ASCII-кодів. Будь-яка літера повідомлення перетворюється в свій кодовий еквівалент і модифікується відповідно до параметрів кодування (ключа). Після модифікації, код перетворюється у літеру та додається до результату. Коли процес завершиться, результат буде виведено на екран. Діаграма діяльності (Activity Diagram), яка демонструє порядок дій, приведена на рисунку 3.4. Методи налаштовані як на шифрування так і на дешифрування. Визначальним є параметр «е» (з англійської equivalent – еквівалент), який приймає значення «1» для шифрування і «-1» для зворотної операції – дешифрування. Лист ЧДТУ.242268.001 ПЗ 45 Змн Лит № докум. Підпис Дата Рисунок 3.4 – Алгоритм діяльності методу шифрування Цезаря Також фільтри, які стоять на викликах функцій, виключають помилки через неправильне введення даних (рисунок 3.5). Найпоширенішою є помилка не введеного ключа, без якого весь процес стає неможливим. Вони також забезпечують валідацію ключа, відповідно до обраного методу шифрування. Наприклад, ключем для методу Цезаря має бути число, а для Віженера – слово чи фраза. Лист ЧДТУ.242268.001 ПЗ 46 Змн Лит № докум. Підпис Дата Рисунок 3.5 – Помилка з введенням слова замість числа використовуючи метод Цезаря Рисунок 3.6 – Розподілення функціоналу програми під час шифрування Лист ЧДТУ.242268.001 ПЗ 47 Змн Лит № докум. Підпис Дата Як видно з рисунка 3.6, після введення всіх необхідних даних та натиснення відповідної кнопки, програма зчитує значення полів та передає їх у відповідні шифрувальні функції. Перед цим обов’язково перевіряючи валідність введеного ключа. Для полегшення роботи непідготовленого користувача, було додано функцію підказки, яка виводить на екран коротку інформацію про використані методи кодування. Інформацію було взято з інтернет ресурсу «Вікіпедія» та виведено англійською мовою (рисунок 3.7). Рисунок 3.7 – Виведення підказки Самі ж методи шифрування є дуже схожими. Обидва приймають на вхід однакову кількість параметрів, та повертають повідомлення або шифр. Лист ЧДТУ.242268.001 ПЗ 48 Змн Лит № докум. Підпис Дата Різницю складає ключ: для методу Цезаря необхідним є число, в той час як для метода Віженера необхідним є слово чи фраза. Відповідно до алгоритму, функція Віженера виконує декілька функцій Цезаря послідовно і в певному порядку. Після аналізу програми з боку інтерфейсу користувача (UI), було додано можливість зберегти результати роботи програми у файл, вказавши йому ім’я. Поле уведення знаходить у нижній частині екрану. При натисненні на кнопку, з’являється повідомлення про помилку або ж вдале виконання операції (рисунок 3.8). Рисунок 3.8 – Повідомлення про вдале збереження файлу Лист ЧДТУ.242268.001 ПЗ 49 Змн Лит № докум. Підпис Дата 3.3 Реалізація алгоритму зламу В процесі розробки було вирішено додати можливість ламання шифрів без наявного ключа. Це особливо цінно для вивчення, особливо в контексті шифрів Цезаря та Віженера. Дана процедура стала значущим навчальним досвідом, а отримані прийоми та методи можна розглядати як основу для майбутнього впровадження нових модулів програми. В основі програми для ламання шифру був використаний метод "brute force", що передбачає перебір всіх можливих варіантів ключа. Враховуючи невідому довжину ключа, цей підхід враховує максимальну кількість можливих варіантів для ефективного розкриття шифру. Наприклад, для методу Цезаря існує лише 26 можливих ключа (за основу береться англійський алфавіт, який містить 26 літер) тому навіть виведення всіх 26-и комбінацій на екран не є проблемою. З них вже вручну можна обрати підходящі варіанти. За методом Віженера сам ключ являє собою слово чи навіть фразу будь-якої довжини. І для ключа довжиною n, кількість варіантів рівна 26n. Перебір всіх варіантів та виведення такого об’єму інформації на екран є не доцільною. Даний метод направлений не на оптимізацію зламу, а на фільтрацію результатів при відносно малих можливих розмірах ключа. Тому реалізовано злом ключа довжиною 3 та 4 літери. Завдяки особливостям методу вони будуть включати також варіанти ключів з довжиною 1 та 2. Наприклад, якщо ключем є комбінація літер «АВ», то вона буде розглянута у варіанті з довжиною ключа 4 – «АВАВ» і все одно потрапить до кінцевого результату. Аналогічно, ключ з довжиною 1 буде розглянутий у будь-якому випадку перевіркою на ключ довжиною 3. Лист ЧДТУ.242268.001 ПЗ Змн Лит 50 № докум. Підпис Дата До речі кажучи, ключ довжиною 1 є повною копією метода Цезаря. Так як одна літера несе у собі відсутність зміни зсуву. Наприклад, літера С дає зсув всіх літер на 3 позиції і є еквівалентною ключу Цезаря. Так як під час злому кількість кінцевої інформації зросла в рази, для неї потрібне місце і гарне оформлення для зручного виведення. Для цього на головний інтерфейс програми було додано додаткове поле TextBox, яке за замовчування є невидимим. Воно використовується лише для виведення результатів злому 4х значного ключа (рисунок 3.9). Рисунок 3.9 – Перши робочий результат злому шифра Віженера Під час початку тестування, для зменшення навтаження на процесор, складність ключа була штучно знижена за рахунок зменшення алфавіту. Іншими словами на кожен символ приходилося не 26 можливих літер, а Лист ЧДТУ.242268.001 ПЗ 51 Змн Лит № докум. Підпис Дата лише 6. Що, тим не менш, дозволяло коректно проводити відладку програми та перевіряти її дієздатність. Програма зберігає використаний ключ і виводить його поряд з результатом, для можливого подальшого використання користувачем. На відміну від своїх шифруючих аналогів, кнопки злому, мають дещо іншу структуру, так-як ключ кодування є невідомим. Вони повністю ігнорують вміст поля для введення ключа, отримуючи з форми лише зашифроване повідомлення. Для початку роботи їм не потрібно більше ніяких аргументів. При натисненні відповідної кнопки генерується цикл, який перебирає всі можливі варіанти ключа, та передає їх у відповідну функцію. Було створено два окремих цикла для обрахунку варіантів ключа на 3 і 4 літери відповідно. Вкладені цикли гарантують перебір усіх можливих варіантів для даного діапазону довжини ключа. На кожному кроці з усіх складових (літер) формується разовий ключ, який і передається на раніше створені шифруючі функції. Рисунок 3.10 – Діаграма послідовності роботи зламу за методом Цезаря Лист ЧДТУ.242268.001 ПЗ 52 Змн Лит № докум. Підпис Дата Функція повертає можливий варіант дешифрованого повідомлення (рисунок 3.10), який буде перевірений новоствореною функцією isText(). На вхід функція отримує рядок – можливий варіант повідомлення. Після виконання, вона повертає істину (true) або хибу (false), і, відповідно, дає уявлення про реальність такого повідомлення. В залежності від результату, повідомлення або відкидається, або передається на вихід та додається до кінцевої відповіді. Цикл переходить до нового ключа, і все повторюється поки не будуть перевірені всі варіанти ключа. Іншими словами, розроблений метод перевіряє, чи є даний рядок (text) можливим текстом, чи лише набором літер. Суть методу лежить у головних парадигмах (в даному випадку) англійської мови. Результат дешифрування, так зване «можливе повідомлення», розбивається на слова, спираючись на пропуски та розділові знаки. Новостворений масив слів перевіряється на відповідність приведеним нижче парадигмам відповідно до довжини слова. Слів, які складаються з однієї літери в англійській мові лише двоє: «I» та «A». Перше є займенником, який вказує на першу особу однини (Я). Друге є артиклем і не має аналогу у нашій мові. Всі інші варіанти відкидаються і далі дешифрований варіант не перевіряється. Слова з двох літер, всі без винятку мають одну приголосну і одну голосну, всі інші варіанти ігноруються. На даному етапі було розроблено метод, який обчислює кількість голосних у даному слові. Для цього було написано додаткову функцію, яка перевіряє чи є дана літера голосною. Функція отримує на вхід слово і перебирає всі літери. Почергово викликаючи допоміжну функцію для виявлення голосних, в результаті вона повертає кількість голосних у слові. Кількість приголосних обрахувати вже Лист ЧДТУ.242268.001 ПЗ 53 Змн Лит № докум. Підпис Дата не скалає труднощів, потрібно лише від кількості всіх літер відняти результат вище згаданої функції. Слова, які складаються з трьох літер, більш різноманітні, та можуть мати різну кількість голосних та приголосних, але все ж деяким правилам вони мають підкорятися. У слові обов’язково має бути хоч одна приголосна, але їх не може бути три (все слово складатися з приголосних не може). Єдиним виключення є слово «YOU», яке вказує на другу особу множини або однини, і відповідно складається з трьох голосних поспіль. Було використано раніше створену функцію для обчислення кількості голосних, інвертувавши результат, щоб отримати кількість приголосних. На це значення накладено обмеження, воно має бути більшим одиниці, але не дорівнювати трьом. І обов’язково було враховано виключення у вигляді слова «YOU». Як тільки функція натикається на порушення цих обмежень, повертається хиба і цикл переходить до іншого варіанту. Для слів, які містять чотири і більше літер довелося писати окремий метод, який не є ідеальним, але відсіює досить велику кількість неможливих варіацій. Суть методу полягає у проходженні по слову та рахунку кількості голосних та приголосних підряд. Цей рахунок не може перевищувати числа три. Тобто, ні голосних, ні приголосних не може бути більше трьох підрядряд. Якщо метод знаходить підряд чотири голосних чи приголосних то повертає помилку, припиняючи проходження по слову і відповідно перериває зовнішній цикл і, як всі попередні, переводить функцію до наступного варіанту. В кінці, всі приведені вище алгоритми було реалізовано та об’єднано, одному місці – функції isText(), яка і є ключовою. Саме вона дозволяє знизити кількість неможливих варіантів до мінімуму. Діаграма діяльності функції показана у додатку А. Лист ЧДТУ.242268.001 ПЗ 54 Змн Лит № докум. Підпис Дата При виявленні хоча б однієї помилки на будь-якому кроці чи рівні перевірки, цикл припиняється і метод повертає значення false, що означає, що даний рядок не задовольняє правилам англійської мови. І перевіряється вже наступний варіант ключа. Даний метод також було застосовано до злому шифру методом Цезаря, і в залежності від розміру тексту, можна знизити кількість всіх 26 результатів до мінімуму. В залежності від довжини ключа, можна отримати від одного результату, який і є вірним. Рисунок 3.11 – Результат злому 3-значного ключа Лист ЧДТУ.242268.001 ПЗ 55 Змн Лит № докум. Підпис Дата Рисунок 3.12 – Результат злому 4-значного ключа Головним фактором, який впливає на кількість вихідних результатів, є розмір тексту. Чим більшим є об’єм вхідного шифру, тим більше шансів, що буде відкинута більша частина некоректних варіантів. Для тестування програми було обрано фразу з Пісні Майкла Джексона «All I wanna say is that, they don’t really care about us», яка була закодована двома різними ключами довжинами 3 і 4. При тестуванні програми з довжиною ключа 3 (рисунок 3.11), кількість всіх варіантів дорівнювала 263 = 17 576. Як видно з рисунку, кількість виведених результатів рівна 4. Обрати вірний варіант з такої кількості результатів вручну не є проблемою. Було відсіяно 99.97% всіх варіантів, з яких лишилися лише ті, що потенціально можуть бути текстом. При тестуванні програми, шифр який було закодовано 4-значним ключем (рисунок 3.12), з 264 = 456 976 можливих результатів, було отримано Лист ЧДТУ.242268.001 ПЗ 56 Змн Лит № докум. Підпис Дата лише 13. І знову, перевірка такої кількості варіантів вручну для людини не є проблемою. В даному випадку було відсіяно 99.997% всіх результатів. І ці результати можна покращувати практично до одного істинного варіанту, якщо збільшувати об’єм вхідного тексту. Єдиним суттєвим фізичним недоліком методу є часова затримка, при тестуванні спостерігався простій програми в 5-10 секунд. Вона виникає через внутрішній обрахунок величезної кількості варіантів, та їх перевірки. Можливо, використання додаткових фільтрів та загальна оптимізація прибере цю затримку, але вона у будь-якому випадку не є критичною. Функція має також логічний недолік, обирати з усіх відфільтрованих варіантів один істинний необхідно вже саме людині. Хоч програма і зводить кількість всіх варіантів до значно меншого числа, але при малому розмірі вхідного тексту, кількість варіантів все одно буде завеликою. Окрім того, є вірогідність отримати два різних варіанти, які є реально існуючими словами або фразами. Наприклад, якщо було використано занадто коротке повідомлення, то не лише відсоток можливих результатів буде значно більшим, але й стають можливими ситуації, коли один і той же шифр дає різні варіанти роз шифровки з різними зсувами (для методу Цезаря) та ключами (для метода Віженера). Наприклад, для методу Цезаря, зашифрований текст «MPQY», може бути розшифрований як «Aden» – порт Йемену на березі Червоного моря, так і як «know» – знати (рисунок 3.13). Точно так само «ALIIP» можна розшифрувати як «dolls» або як «wheel»; «AFCCP» як «jolly» або як «cheer». Лист ЧДТУ.242268.001 ПЗ 57 Змн Лит № докум. Підпис Дата Рисунок 3.13 – Два можливі результати злому слова «MPQY» Винекнення такої ситуації приводить до поняття «Відстань єдиності». Для криптології це число символів шифротексту, при яких умовна інформаційна ентропія ключа (а, отже, і відкритого тексту) дорівнює нулю, а сам ключ визначається однозначно. Іншими словами, це статистично мінімальна кількість символів, яка є необхідною для однозначного знаходження ключа і відповідно єдино істинного дешифрування. За визначенням, якщо довжина вхідного тексту буде меншою за це число, то існує досить висока вірогідність того, що при переборі буде знайдено декілька істинних варіантів дешифрування одного і того ж тексту. Лист ЧДТУ.242268.001 ПЗ 58 Змн Лит № докум. Підпис Дата Для обрахунку цієї відстані необхідно знати «надмірність» алфавіту та число можливих ключів. Надмірність в теорії інформації це кількість бітів, використовуваних для передачі повідомлення мінус кількість бітів фактичної інформації в повідомленні. Неофіційно, це кількість витрачених марно «полів» в структурі, що використовується для передачі певних даних. В даному випадку вона має бути виділена у вигляді надмірністі звичайного тексту в бітах на символ. Число можливих ключів, у свою чергу, є рівним факторіалу кількості літер в алфавіті. Наприклад, для англійської мови надмірність дорівнює 3,2 біта на символ. Якщо використовується моноалфавітний шифр, то число можливих ключів в ньому дорівнює 26! = 4,0329*1026, а ентропія ключа (при рівноймовірному виборі) H(Z)=log2(26!) = 88,4 біта. Тоді відстань єдиності для англійського тексту, зашифрованого шифром простої заміни, дорівнює: () 88,4 = = = 27,6 3,2 Тобто, якщо криптоаналітик перехопить більше 28 символів шифротексту, це з великим ступенем ймовірності дозволить (наприклад, повним перебором) однозначно відновити вихідний відкритий текст. Якщо ж буде перехоплено меншу кількість символів, то відновлення тексту буде неоднозначним (можуть бути декілька різних варіантів відкритого тексту. Нажаль, уникнути цієї ситуації неможливо, так як вона залежить лише від довжини шифротексту, яка в свою чергу не залежить від користувача. В майбутньому, є можливість реалізувати більш швидкі методи зламу, наприклад, на основі частотного аналізу. Модульність програми та Лист ЧДТУ.242268.001 ПЗ 59 Змн Лит № докум. Підпис Дата об’єктно-орієнтований підхід дають таку можливість. Об’єктно-орієнтована стуктура програми продемонстрована у додатку Б. Наприклад, можна реалізовувати нові методи шифрування/кодування, потрібно лише додавати необхідні функції та модифікувати при необхідності вже існуючі. Також бажаними покращеннями стали б оптимізація фільтрації результатів та виправлення можливих помилок у коді. Обидва ці пункти приведуть до збільшення швидкості роботи алгоритму та пристосування його роботи для слабких систем. Не останню роль у цьому зіграє коректування порядку виклику функцій для економії пам’яті комп’ютера. Лістинг програми приведено у додатку В. Лист ЧДТУ.242268.001 ПЗ 60 Змн Лит № докум. Підпис Дата ВИСНОВКИ В даній кваліфікаційній роботі бакалавра проведено дослідження криптографічних алгоритмів, проведено огляд існуючих методів криптографії, зокрема: симетричні методи, асиметричні методи, хеш- функції, метод Цезаря, метод Віженера. Також розглянуто принципи роботи шифрувальної машини «Енігма» та проблеми сучасного крипто аналізу. Для виконання поставленної задачі обрано методи Цезаря та Віженера. В ході виконання роботи було розроблено програму, яка дозволяє створювати шифровані повідомлення та відновлювати раніше зашифровані. Також було створено та додано функцію зламу шифру без відомого ключа. В ході збору інформації для написання алгоритмів, було проведено аналіз методів шифрування-дешифрування та розгляд криптолінгвістичних особливостей англійської мови. В результаті проведеної роботи, були детально розглянуті способи шифрування і дешифрування. Найпростішим з них є шифр заміни (або шифр Цезаря), заснований на зсуві алфавіту на певну кількість літер. Такі шифри називають алфавітними. Однак їх можна досить легко зламати, користуючись методом частотного аналізу. Сучасні шифри засновані на складних математичних алгоритмах, таких як множення двох простих чисел, або логарифмування. Надійність таких шифрів заснована тільки на складності обчислень, необхідних для знаходження ключа. Як тільки сучасна математика дійде до такого рівня, коли складність даних обчислень буде зведена до мінімуму, тоді можна буде говорити, про поразку криптографічних систем з відкритим ключем і розробці нових алгоритмів шифрування. Через свою актуальність наука криптографія приречена на подальший розвиток. Це означає, що дуже скоро будуть розроблені нові алгоритми шифрування, а, отже, і нові методи для їх розшифровки. Лист ЧДТУ.242268.001 ПЗ 61 Змн Лит № докум. Підпис Дата Криптографія, особливо з відкритим ключем, служить надійною системою захисту інформації в сучасному світі. І криптографія, і криптоаналіз - дві взаємно стимулюючі один одного галузі знань. Будь-яке просування в розвитку однієї дає поштовх до розвитку іншої. Слід зауважити, що розвиток криптографії та криптоаналізу нерозривно пов'язаний з дуже високим рівнем розвитку обчислювальної техніки. Криптографія сьогодні - це найважливіша частина всіх інформаційних систем: від електронної пошти до стільникового зв'язку, від доступу до мережі Internet до електронної готівки. Криптографія забезпечує підзвітність, прозорість, точність і конфіденційність. Вона запобігає спробам шахрайства в електронній комерції і забезпечує юридичну силу фінансових транзакцій. Криптографія допомагає встановити вашу особистість та в той самий час забезпечує вам анонімність. Вона заважає зловмисникам зіпсувати сервер і не дозволяє конкурентам отримати доступ у ваші конфіденційні документи. Для того, щоб грамотно реалізувати власну криптосистему, необхідно не тільки ознайомиться з помилками інших і зрозуміти причини, за якими вони відбулися, а, можливо, і застосовувати особливі захисні прийоми програмування і спеціалізовані засоби розробки. Лист ЧДТУ.242268.001 ПЗ 62 Змн Лит № докум. Підпис Дата СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 1. Шнайер, Б. Прикладна криптографія: протоколи, алгоритми та джерела відкритого коду. — Київ: Видавничий дім «Ін Юре», 2019. — 219с. 2. Сталлінг, В. Криптографія та безпека мереж: принципи та практика. — Київ: Навчальна книга – Богдан, 2019. — 356 с. 3. Стінгл, Д. Криптографія: теорія і практика. — Київ: Видавництво НТУ «ХПІ», 2020. — 283 с. 4. Доберіц, Х. Загальна теорія криптографії. — Київ: Видавництво «Інтерсервіс», 2021. — 62 с. 5. Галбрейт, С. Д. Математика з криптографії. — Київ: Видавництво «Наука», 2020. — 155 с. 6. Чженґ, Л. Криптографія та безпека: Принципи і практика. — Київ: Видавництво «Видавець», 2019. — 133 с. 7. Ленстра, Х., ван дер Пол, А. Теорія чисел, криптографія та кодування. — Київ: Видавництво «Університетська книга», 2019. — 75 с. 8. Куянов Д.І. Секрети шифрів. Кроки в науку / Куянов Д.І. - Матеріали муніципальної конференції. – Київ. – 2019. – 56с. 9. Ященко В.І. Криптографія, яка раніше була засекреченою / В.І. Ященко – Комп’ютерра. – 2019. – №20. – 23с. 10. Жельніков В.Л. Криптографія від папіруса до комп’ютера. / Жельніков В.Л. – Київ. – 2019. – 84с. 11. Ісаєв П. Деякі алгоритми ручного шифрування / Ісаєв П. – Комп’ютерПрес. – 2019. – В. 3. – 48с. 12. Венбо Мао Сучасна криптографія. Теорія і практика / Венбо Мао – Київ.: Вільямс. – 2017. – 768с. Лист ЧДТУ.242268.001 ПЗ 63 Змн Лит № докум. Підпис Дата 13. Нільс Фергюсон Практична криптографія. Проектування та реалізація захисних криптографічних систем / Нільс Фергюсон, Брюс Шнайер – Київ.: «Диалектика» – 2020. – 432с. 14. Сергій Панасенко Сучасні алгоритми шифрування / Панасенко С. – Журнал Byte. – № 8. – 2021. – 60с. 15. Баричев С.Г. Основи сучасної криптографії. / Баричев С.Г., Гончаров В.В., Сєров Р.Е. – К.: Гаряча лінія Телеком – 2018. – 175 с. 16. Коркішко Т. Алгоримти та процесори симетричного блокового шифрування. / Коркішко Т., Мельник А. – Львів, БаК – 2019. – 163 с. 17. Алферов А.П. Основи криптографії: Навчальний посібник. 3-е ред., випр. і доп. / Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. – К.: Геліос АРВ – 2017. – 480с. 18. Шнайер Б. Прикладна криптографія. / Шнайер Б. – К. : Тріумф – 2020. –816с. 19. Романьков В.А Введення в криптографію: курс лекцій / Романьков В.А/ К.: – 2020. – 238с. 20. Martin Keith M. Everyday Cryptography. / Martin Keith M. – Oxford University Press. – 2017. – 142с. 21. Ященко В. В. Введение в криптографию. — К. : КЦНМО, 2017. — 352с. 22. Відстань Єдиності / Wikipedia.org – Режим доступу: https://uk.wikipedia.org/wiki/Відстань_єдиності – 04.06.2018. Лист ЧДТУ.242268.001 ПЗ 64 Змн Лит № докум. Підпис Дата ДОДАТОК А Алгоритм діяльності функції перевірки тексту Лист ЧДТУ.242268.001 ПЗ Змн Лит 65 № докум. Підпис Дата ДОДАТОК Б Об’ектно-орієнтована структура програми Лист ЧДТУ.242268.001 ПЗ Змн Лит 66 № докум. Підпис Дата