Матеріал для друку "ШИФРУВАННЯ ДАНИХ: ЕВОЛЮЦІЯ КРИПТОГРАФІЧНИХ МЕТОДІВ"

Про матеріал
Проєкт присвячено дослідженню еволюції криптографічних методів, зокрема простого шифру Цезаря, який є одним із найдавніших методів шифрування інформації. Метою роботи є дослідити вплив ранніх криптографічних підходів на розвиток сучасних методів захисту інформації та кібербезпеки загалом. Проєкт включає огляд наукової літератури, порівняльний аналіз шифрів різних історичних етапів та практичну демонстрацію шифру Цезаря, що дозволяє показати принцип роботи цього шифру та його застосування. Виконане дослідження акцентує увагу на важливості історичного досвіду в розвитку криптографії, де ранні методи шифрування слугували основою для подальшого вдосконалення технологій захисту.
Перегляд файлу

1

 

 

ШИФРУВАННЯ ДАНИХ: ЕВОЛЮЦІЯ КРИПТОГРАФІЧНИХ МЕТОДІВ

 

Проєкт присвячено дослідженню еволюції криптографічних методів, зокрема простого шифру Цезаря, який є одним із найдавніших методів шифрування інформації. Метою роботи є дослідити вплив ранніх криптографічних підходів на розвиток сучасних методів захисту інформації та кібербезпеки загалом. Проєкт включає огляд наукової літератури, порівняльний аналіз шифрів різних історичних етапів та практичну демонстрацію шифру Цезаря, що дозволяє показати принцип роботи цього шифру та його застосування. Виконане дослідження акцентує увагу на важливості історичного досвіду в розвитку криптографії, де ранні методи шифрування слугували основою для подальшого вдосконалення технологій захисту. Шифр Цезаря, попри свою простоту, відіграв значну роль у становленні криптографії як науки та дисципліни, необхідної для захисту даних. Робота демонструє, що розуміння історичних підходів до шифрування є важливим для оцінки сучасних криптографічних технологій, а також для формування безпечних методів захисту інформації, які залишаються актуальними і в наш час.

 Ключові слова: криптографія, шифр, захист інформації, шифрування, криптографічні технології, розшифровка.

 

 

 

 

 

 

Зміст

Перелік скорочень, термінів та їх значення…………………………………….5

ВСТУП……………………………………………………………………………… 7

1.Старі шифри, початок шифрування

Розділ 1.1: Початок історії. Шифр Цезаря………………………………..…9

Розділ 1.2: Одноалфавітний шифр заміни та частковий аналіз…………..13

Розділ 1.3: Шифр Віженера………………………………………………...15

 

2.ХХст. Кінець епохи ручних шифрів. Подальший розвиток шифрів

Розділ 2.1: Енігма та Алан Тюрінг..……………………………………..….20

Розділ 2.2: Сучасні методи шифрування……………………………….….23

Висновок…………………………………………………………………………...30

Список використаних джерел…………………………………………………..32

Додатки…………………………………………………………………………….34

 

 

 

 

 

 

 

 

Перелік скорочень, термінів та їх значення:

RSA (Rivest-Shamir-Adleman)
Алгоритм асиметричного шифрування, який базується на складності розкладання великих чисел на прості множники. Використовується для захисту даних у відкритих мережах.

ECC (Elliptic Curve Cryptography)
Криптографія на основі еліптичних кривих, яка забезпечує високу безпеку при використанні коротших ключів, у порівнянні з RSA.

DES (Data Encryption Standard)
Старий стандарт симетричного шифрування, який використовує 56-бітний ключ. Зараз вважається застарілим через низький рівень безпеки.

AES (Advanced Encryption Standard)
Сучасний симетричний алгоритм шифрування, який забезпечує високий рівень захисту даних. Використовується в багатьох системах безпеки, включаючи VPN і Wi-Fi.

VPN (Virtual Private Network)
Віртуальна приватна мережа, яка дозволяє створити захищений тунель для передачі даних через незахищені мережі, наприклад, Інтернет.

BitLocker
Інструмент від Microsoft для шифрування дисків, який забезпечує захист даних на жорстких дисках комп’ютерів.

FileVault
Інструмент для шифрування даних, розроблений для пристроїв Apple.

WhatsApp і Telegram
Месенджери, які використовують кінцеве шифрування для забезпечення приватності листування.

SSL/TLS (Secure Sockets Layer / Transport Layer Security)
Протоколи для захисту передачі даних в Інтернеті. Вони шифрують інформацію, щоб її не могли прочитати треті сторони.

Bitcoin
Перша та найвідоміша криптовалюта, що базується на технології блокчейн. Для забезпечення безпеки транзакцій використовуються криптографічні методи.

 

PGP (Pretty Good Privacy)
Протокол для шифрування електронної пошти та файлів. Він поєднує симетричне та асиметричне шифрування.

S/MIME (Secure/Multipurpose Internet Mail Extensions)
Стандарт для захищеної електронної пошти, який дозволяє шифрувати та підписувати повідомлення.

SSH (Secure Shell)
Протокол для захищеного доступу до серверів та інших пристроїв через мережу.

Email
Електронна пошта – спосіб передачі текстових повідомлень і файлів через Інтернет.

 XOR (eXclusive OR)
Логічна операція, яка використовується в криптографії для змішування даних і ключів. Якщо два біти однакові, результат –  0; якщо різні – 1.

 ASCII (American Standard Code for Information Interchange)
Стандарт кодування тексту в числовому форматі, де кожен символ має відповідний код (наприклад, A –  65, B –  66).


ВСТУП

 З розвитком інформаційних технологій і цифрових комунікацій питання захисту інформації стало пріоритетним для суспільства. В умовах цифрової епохи обсяги даних, що передаються в електронному вигляді, досягли неймовірних масштабів, і кожна взаємодія, транзакція або обмін даними вимагають надійного захисту. Криптографія, наука про шифрування та захист інформації, стала фундаментальним інструментом для забезпечення конфіденційності, цілісності та автентичності даних. Вона є важливою складовою захисту в банківських і фінансових операціях, онлайн-платежах, в електронній комерції, а також у системах державного управління та навіть у персональних комунікаціях користувачів інтернету.

 Еволюція криптографії бере свій початок ще з античності, коли перші шифрувальні методи базувалися на простих операціях перестановки та заміни символів. Стародавні цивілізації, такі як єгипетська, китайська, римська, вже використовували примітивні форми шифрування для захисту повідомлень від перехоплення. Одним із відомих ранніх методів був шифр Цезаря, що полягав у зсуві букв на фіксовану кількість позицій, створюючи базовий рівень захисту конфіденційної інформації. Проте розвиток криптографії не обмежувався лише античними підходами: у Середньовіччі та в епоху Відродження методи шифрування ускладнювалися, і виникали нові підходи, такі як шифри Віженера, які додавали елемент випадковості та робили шифрування більш стійким до зламу.

 Найбільший стрибок у розвитку криптографії відбувся у XX столітті під час Першої та Другої світових воєн, коли виникла гостра потреба у надійній передачі військової інформації. Одним із символів криптографії цього періоду стала шифрувальна машина Енігма, яка використовувалася німецькими

 

військами для шифрування стратегічно важливих повідомлень. Розробка і подальший злам коду Енігми завдяки зусиллям криптоаналітиків, зокрема

Алана Тьюринга та його команди, показали силу і важливість криптографії для світової історії. Війни стали поштовхом до стрімкого розвитку криптографічних методів, зокрема до створення математичних підходів, що лягли в основу сучасних алгоритмів.

 З появою комп’ютерів та інформаційної ери криптографія зазнала значних змін. Виникли нові виклики, пов’язані з кібербезпекою, що зробило традиційні методи шифрування недостатньо надійними. У відповідь на ці виклики були розроблені новітні методи криптографії, зокрема алгоритми з відкритим ключем, такі як RSA, які дозволяють здійснювати шифрування з використанням двох ключів — відкритого та приватного, забезпечуючи безпечний обмін даними навіть у відкритих мережах. Алгоритми симетричного шифрування, наприклад, AES, також стали основою сучасної криптографії, оскільки забезпечують високу швидкість шифрування і використовуються у різних галузях, від банківських операцій до захищених месенджерів.

 

 

 

 

 

 

 

 

 

1.Старі шифри, початок шифрування

Розділ 1.1: Початок історії. Шифр Цезаря

Ми розуміємо, що все, що може бути перехоплено, буде перехоплено. Тому криптографія як наука виникла для того, щоб забезпечити захист повідомлень на певний час. Її завдання — створити алгоритм, який дозволить зашифрувати текст так, щоб тільки одержувач із відповідним ключем міг його прочитати.

Криптографія базується на двох основних методах: перестановка і заміна.

  • Перестановка змінює порядок символів у повідомленні. Наприклад, для тексту «AIR» можливі такі перестановки: «AIR», «ARI», «IRA», «RAI», «RIA», «IAR». Для коротких текстів це ненадійний метод, адже всі варіанти легко перебрати вручну. Але для довгих повідомлень кількість комбінацій швидко зростає. Наприклад, текст із 30 символів має 30! (близько 265252859812191058638308480000000) варіантів, що робить ручний перебір неможливим.
  • Заміна замінює кожен символ іншим за фіксованим правилом. Наприклад:
    • A → D
    • B → E
    • C → F

Цей метод простіший і став основним ще з давніх часів.

Одним із перших шифрів на основі заміни став шифр Цезаря. Під час Галльських війн Юлій Цезар використовував заміну латинських літер на грецькі. Згодом він перейшов до методу зсуву, де кожна літера замінювалася на ту, що стоїть в алфавіті на кілька позицій далі.

 

Алгоритм шифру Цезаря:

  1. Вибирається ключ (кількість позицій для зсуву).
  2. Кожна літера тексту зміщується відповідно до ключа.

Приклад:
Текст: DOG
Зсув: 3

  • D → G
  • O → R
  • G → J
    Результат: GRJ.

Згодом шифр Цезаря розширили на англійський алфавіт (26 літер), що дало 25 можливих ключів.

Таб. 1.1. Зсувів букв

0 ABCDEFGHIJKLMNOPQRSTUVWXYZ

1

BCDEFGHIJKLMNOPQRSTUVWXYZA

2

CDEFGHIJKLMNOPQRSTUVWXYZAB

3

DEFGHIJKLMNOPQRSTUVWXYZABC

4

EFGHIJKLMNOPQRSTUVWXYZABCD

5

FGHIJKLMNOPQRSTUVWXYZABCDE

6

GHIJKLMNOPQRSTUVWXYZABCDEF

7

HIJKLMNOPQRSTUVWXYZABCDEFG

8

IJKLMNOPQRSTUVWXYZABCDEFGH

9

JKLMNOPQRSTUVWXYZABCDEFGHI

10

KLMNOPQRSTUVWXYZABCDEFGHIJ

11

LMNOPQRSTUVWXYZABCDEFGHIJK

12

MNOPQRSTUVWXYZABCDEFGHIJKL

13

NOPQRSTUVWXYZABCDEFGHIJKLM

14

OPQRSTUVWXYZABCDEFGHIJKLMN

15

PQRSTUVWXYZABCDEFGHIJKLMNO

16

QRSTUVWXYZABCDEFGHIJKLMNOP

17

RSTUVWXYZABCDEFGHIJKLMNOPQ

18

STUVWXYZABCDEFGHIJKLMNOPQR

19

TUVWXYZABCDEFGHIJKLMNOPQRS

20

UVWXYZABCDEFGHIJKLMNOPQRST

21

VWXYZABCDEFGHIJKLMNOPQRSTU

22

WXYZABCDEFGHIJKLMNOPQRSTUV

23

XYZABCDEFGHIJKLMNOPQRSTUVW

24

YZABCDEFGHIJKLMNOPQRSTUVWX

25

ZABCDEFGHIJKLMNOPQRSTUVWXY

Мінуси шифра Цезеря:

  1. Простота алгоритму: Зсув літер на фіксовану кількість позицій робить його надзвичайно вразливим.
  2. Обмежена кількість ключів: У шифрі Цезаря для алфавіту з 26 літер існує лише 25 можливих ключів, що дозволяє швидко перебрати всі варіанти навіть вручну.
  3. Частотний аналіз: У зашифрованому тексті зберігається частотність літер оригінального тексту, що дозволяє зламати шифр, порівнюючи ці частоти з частотою символів у природних мовах.

Висновок:
Шифр Цезаря, як один із перших відомих методів шифрування, демонструє простоту й ефективність початкових підходів до криптографії. Він став основою для подальшого розвитку шифрувальних систем, показавши, що навіть прості методи можуть забезпечити базовий рівень захисту інформації. Попри його недоліки, його роль в історії криптографії залишається фундаментальною.

Код – додаток 1.1

 

 

 

 

 

 

 

 

 

 

 

 

 

Розділ 1.2: Одноалфавітний шифр заміни та частковий аналіз

Шифр Цезаря мав суттєвий недолік – обмежену кількість ключів. Це робило його вразливим до зламів, навіть якщо про алгоритм знали тільки відправник і одержувач. Щоб подолати цю проблему, було створено одноалфавітний шифр заміни.

Як працює шифр:

  1. Ключ створюється у вигляді алфавіту із довільним порядком літер.
  2. Кожна літера тексту замінюється на відповідну букву з ключового алфавіту.

Приклад:
Ключ:

  • Алфавіт: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Ключ: QWERTYUIOPASDFGHJKLZXCVBNM
    Текст: AIR
    Результат: QWP.

Цей метод мав значно більше ключів (26!, або понад 10^26), що унеможливлювало їх перебір. Але він виявився вразливим до часткового аналізу, винайденого арабськими вченими.

Частковий аналіз:
Арабські вчені першими помітили, що літери в природних текстах зустрічаються з різною частотою. Наприклад, в англійській найчастіше зустрічається літера «E». Аналізуючи частоти символів у зашифрованих текстах, криптоаналітики могли співставити їх із природними частотами і розшифрувати повідомлення.

Недоліки Одноалфавітного шифра:

  1. Проблема частотного аналізу: Як і у шифрі Цезаря, зберігається частотний розподіл літер, що дозволяє розшифрувати текст за допомогою статистичного аналізу.
  2. Велика кількість ключів: Хоча кількість можливих ключів значно більша (26!), використання таких шифрів у практиці часто призводить до помилок в організації захисту (наприклад, не випадкове розташування алфавіту).

Висновок
Одноалфавітний шифр заміни трохи ускладнив процес шифрування, але з часом виявилося, що його можна зламати, аналізуючи частоту букв у тексті. Ця проблема спонукала створювати нові, більш надійні способи захисту даних.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Розділ 1.3: Шифр Віженера

Опис шифру Віженера

Шифр Віженера – це метод симетричного шифрування, який використовує таблицю, що складається з кількох алфавітів, зсунутих один відносно одного. Цей шифр розв’язує проблему шифрування, що часто виникала у простому шифрі Цезаря, де кожна літера замінювалася на певну кількість букв вперед або назад у алфавіті. Виженер дозволяє застосовувати багато різних зсувів, що ускладнює злам шифру через частотний аналіз.

Квадрат Віженера

Квадрат Віженера – це таблиця розміром 26 x 26, що містить 26 алфавітів, кожен з яких є зсувом попереднього алфавіту на одну позицію вправо. Перший рядок містить стандартний алфавіт, а кожен наступний рядок зсувається на одну позицію вліво. Наприклад, якщо перший рядок виглядає так:

Рис. 3.1. Квадрат Віженера


Використання Квадрата Віженера для шифрування

Процес шифрування тексту за допомогою Квадрата Віженера виглядає так:

  1. Підготовка ключового слова: Спочатку вибирається ключове слово, яке може бути довільним (наприклад, «KEY»). Це слово повторюється для того, щоб його довжина відповідала довжині повідомлення, яке потрібно зашифрувати.

Приклад:

  1. Текст, який треба зашифрувати: HELLO
  2. Ключове слово: KEY

Повторюємо ключ так, щоб його довжина відповідала довжині тексту:

  1. Текст: HELLO
  2. Ключ: KEYKE
  1. Шифрування: Для кожної пари (буква з тексту і відповідна буква з ключа) шукаємо перетин рядка, що містить букву з тексту, і стовпця, що містить букву з ключа.

Приклад:

  1. Текст: HELLO
  2. Ключ: KEYKE

За допомогою квадрата Віженера:

  1. H (перша буква тексту) і K (перша буква ключа): Знаходимо перетин рядка, що містить H, і стовпця, що містить K. Це буде буква R.
  2. E (друга буква тексту) і E (друга буква ключа): Знаходимо перетин рядка, що містить E, і стовпця, що містить E. Це буде буква I.
  3. L (третя буква тексту) і Y (третя буква ключа): Знаходимо перетин рядка, що містить L, і стовпця, що містить Y. Це буде буква J.
  4. L (четверта буква тексту) і K (четверта буква ключа): Знаходимо перетин рядка, що містить L, і стовпця, що містить K. Це буде буква V.
  5. O (п’ята буква тексту) і E (п’ята буква ключа): Знаходимо перетин рядка, що містить O, і стовпця, що містить E. Це буде буква S.

Результат шифрування: RIJVS

Дешифрування

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

  1. Для дешифрування використовуємо той самий ключ.
  2. Для кожної пари (буква з шифрованого тексту і відповідна буква з ключа) знаходимо її позицію в таблиці Квадрата Віженера і витягуємо букву, яка знаходиться в тому ж стовпці, але на тому ж рівні, що й буква шифрованого тексту.

Приклад:

  1. Шифр: RIJVS
  2. Ключ: KEYKE

Для дешифрування:

  1. R (перша буква шифру) і K (перша буква ключа): Знаходимо букву, що стоїть в рядку R і стовпці K. Це буде буква H.
  2. I (друга буква шифру) і E (друга буква ключа): Знаходимо букву, що стоїть в рядку I і стовпці E. Це буде буква E.
  3. J (третя буква шифру) і Y (третя буква ключа): Знаходимо букву, що стоїть в рядку J і стовпці Y. Це буде буква L.
  4. V (четверта буква шифру) і K (четверта буква ключа): Знаходимо букву, що стоїть в рядку V і стовпці K. Це буде буква L.
  5. S (п’ята буква шифру) і E (п’ята буква ключа): Знаходимо букву, що стоїть в рядку S і стовпці E. Це буде буква O.

Результат дешифрування: HELLO

Вразливості шифру Віженера

Хоча шифр Віженера є потужним інструментом для шифрування тексту, він має кілька вразливостей. Основною з них є повторення ключа, що дозволяє зловмисникам використовувати методи криптоаналізу, щоб зламати шифр. Одна з таких методик — це аналіз повторюваних фраз.

Таким чином, хоча шифр Віженера є складнішим за шифр Цезаря, він все ж таки має свої обмеження і вразливості при використанні без належного додаткового захисту.

Мінуси шифра Віженера:

  1. Повторення ключа: Якщо ключ коротший за повідомлення, він повторюється, що дозволяє криптоаналітикам виявити повторювані шаблони.
  2. Повторюваними послідовностями символів: Метод дозволяє знайти довжину ключа за повторюваними послідовностями символів у тексті, а потім використовувати частотний аналіз для відновлення ключа.
  3. Складність у використанні: Для зашифрування та розшифрування потрібен ключ, однаковий для обох сторін. Якщо ключ був довгим або випадковим, це створювало труднощі в його передачі та зберіганні.
  4. Обмежене використання в повсякденності: Для простих повідомлень шифр Віженера вважався надмірно складним, і його зазвичай застосовували для більш важливих або довготривалих завдань.

Висновок
Шифр Віженера зробив шифрування складнішим і допоміг захищати важливі повідомлення. Використання ключа для кожної букви зробило простий аналіз тексту менш ефективним. Проте, як і попередні методи, його з часом навчилися зламувати, що привело до пошуку ще кращих способів шифрування.

Код – додаток 1.2

 

 

 

 

 

 

 

 

 

 

 

 

 

Розділ 2. ХХст. Кінець епохи ручних шифрів. Подальший розвиток шифрів

Розділ 2.1: Енігма та Алан Тюрінг

Енігма — електромеханічна машина шифрування, яка використовувалася Німеччиною під час Другої світової війни для захисту військових повідомлень. Її складність і велику кількість можливих налаштувань вважали нездоланною перепоною для зламу.

Рис. 4.1. Зображення Енігми

 

 

 

 

 

 

 

 

Конструкція Енігми:

  1. Клавіатура: для введення тексту, що підлягав шифруванню.
  2. Ламповий індикатор: відображав зашифровану літеру після натискання клавіші.
  3. Ротори: оберталися після кожного натискання клавіші, змінюючи налаштування шифрування.
    • Кожен ротор містив електричні контакти, які визначали заміну символів.
    • Кількість роторів могла змінюватися, що збільшувало кількість можливих ключів.
  4. Рефлектор: змінював сигнал і повертав його назад через ротори, додаючи ще один рівень шифрування.
  5. Штепсельна панель: дозволяла налаштовувати додаткові заміни між літерами перед обробкою роторами.

Як працювала Енігма:

  1. Оператор вводив текст за допомогою клавіатури.
  2. Кожна введена літера проходила через штепсельну панель, ротори та рефлектор, після чого перетворювалася на зашифровану літеру.
  3. Зашифроване повідомлення передавалося через радіозв’язок, і одержувач із такою самою конфігурацією машини міг розшифрувати текст.

Вразливість Енігми:

Попри складність конструкції, у шифрувальному процесі були вразливості, якими скористалися союзники.

  1. Триразове повторення ключа на початку повідомлення:
    Німці часто надсилали ключ повідомлення тричі для перевірки правильності налаштувань. Наприклад, ключ «ABC» передавався як «ABCABCABC». Це дозволило криптоаналітикам ідентифікувати початкову конфігурацію машини.
  2. Повторювані повідомлення:
    Кожного ранку о 6 годині німці відправляли прогноз погоди. Фрази на кшталт «Wetterbericht» (погода) або «Heil Hitler» часто повторювалися, що дало союзникам важливі підказки для розшифрування.
  3. Обмеження алфавіту:
    Енігма працювала лише з літерами, без цифр і спеціальних символів. Це обмеження також використовували для звуження можливих ключів.

Алан Тюрінг і машина «Бомба»:

Алан Тюрінг у Блетчлі-Парку створив пристрій під назвою «Бомба», який допоміг зламати Енігму.

Як працювала «Бомба»:

  1. «Бомба» використовувала припущення про зміст повідомлень, наприклад, часті фрази («eins», «wetter», «Heil Hitler») або формат звітів про погоду.
  2. Машина випробовувала можливі конфігурації роторів Енігми, порівнюючи результати з очікуваними текстами.
  3. Коли знайдене розшифрування мало сенс, «Бомба» зупинялася, і криптоаналітики могли використовувати знайдену конфігурацію для розшифрування інших повідомлень.

Роль «Бомби»:
«Бомба» дозволила зламувати шифри Енігми за кілька годин, що забезпечило союзникам доступ до ключової інформації про німецькі військові операції. Завдяки цьому союзники отримали стратегічну перевагу, що суттєво вплинуло на перебіг війни.

Висновок
Енігма була важливим винаходом для шифрування в минулому столітті. Проте її слабкі місця, а також повторювані дії операторів дозволили Аллану Тюрінгу та його команді знайти спосіб зламати її. Це довело, що навіть найкращі системи можуть бути небезпечними, якщо їх неправильно використовувати.

 

Розділ 2.2: Сучасні методи шифрування

Сучасні алгоритми шифрування поділяються на два основні типи: симетричні та асиметричні. Обидва типи широко використовуються у сфері інформаційної безпеки, кожен із них має свої особливості, переваги та недоліки.

Наші герої для прикладу:

  1. Аліса – відправник повідомлення.
  2. Боб – отримувач повідомлення.
  3. Єва – потенційний зловмисник, яка намагається перехопити або підмінити повідомлення.

Єва має дві ключові можливості:

  1. Перехоплення: вона може отримати зашифроване повідомлення, і якщо їй вдасться отримати ключ, вона зможе його розшифрувати.
  2. Підміна: навіть не знаючи ключа, Єва може змінити зашифроване повідомлення, змінюючи його сенс після розшифрування.

Симетричні алгоритми шифрування

У симетричних методах використовують один і той самий ключ для шифрування і розшифрування даних.

Як працює:

  1. Аліса використовує ключ, щоб зашифрувати повідомлення.
  2. Боб, отримавши повідомлення, використовує той самий ключ для його розшифрування.

Приклад:

Текст: HELLO
Ключ: SECRET

  1. Шифрування: текст перетворюється на зашифровані дані за допомогою ключа.
  2. Розшифрування: застосовується той самий ключ, щоб отримати початковий текст.

Алгоритми симетричного шифрування:

  1.      AES:
    1.          Використовує блоки даних (128, 192 або 256 біт) і кілька раундів обчислень для шифрування.
    2.          Висока швидкість і стійкість роблять його стандартом у багатьох сферах, зокрема банківських системах та VPN.
  2.      DES:
    1.          Старіший алгоритм, який шифрує дані в блоках по 64 біти, використовуючи 16 раундів.
    2.          Замінений AES через низьку стійкість.

Недоліки симетричного шифрування:

  1. Передача ключа: якщо ключ буде перехоплений, зловмисник (Єва) зможе прочитати всі повідомлення.
  2. Підміна: Єва може змінити зашифровані дані, і після розшифрування вони матимуть інший сенс.

Асиметричні алгоритми шифрування

Асиметричне шифрування використовує пару ключів: відкритий (для шифрування) і приватний (для розшифрування).

Як працює:

  1. Аліса створює пару ключів: відкритий і приватний.
  2. Аліса публікує свій відкритий ключ, і всі, хто хоче надіслати їй повідомлення, можуть використовувати цей ключ для шифрування.
  3. Приватний ключ Аліса зберігає в таємниці. Він потрібен лише для розшифрування повідомлень, зашифрованих її відкритим ключем.

Алгоритм: як працює шифрування і розшифрування:

Шифрування:
Коли Боб хоче надіслати Алісі зашифроване повідомлення:

  1. Боб використовує відкритий ключ Аліси, щоб зашифрувати своє повідомлення.
  2. Аліса отримує це зашифроване повідомлення.
  3. Для розшифрування вона використовує свій приватний ключ.

Розшифрування:
Аліса може розшифрувати тільки те, що було зашифровано за допомогою

її відкритого ключа. Приватний ключ дозволяє їй повернути оригінальний текст.

Алгоритми асиметричного шифрування:

  1. RSA (Rivest-Shamir-Adleman):
    1. Базується на складності факторизації великих чисел.
    2. Використовується для захисту даних у протоколах SSL/TLS.
  2. ECC (Elliptic Curve Cryptography):
    1. Використовує властивості еліптичних кривих.
    2. Забезпечує високу безпеку навіть при коротких ключах.

 

Переваги асиметричного шифрування:

  1. Немає необхідності передавати секретний ключ.
  2. Відкритий ключ можна поширювати без ризику.

Недоліки:

  1. Повільніше, ніж симетричне шифрування.
  2. Потребує більше обчислювальних ресурсів.

Комбінація симетричного та асиметричного шифрування

У сучасних системах часто поєднують обидва типи шифрування:

  1. Асиметричне шифрування: використовується для передачі симетричного ключа.
  2. Симетричне шифрування: використовується для основного обміну

Симетричне шифрування: використання в сучасних технологіях

  1. VPN (Virtual Private Network)
    • AES є основним симетричним алгоритмом для захисту з’єднання в VPN. Симетричне шифрування забезпечує високу швидкість передачі даних і є ефективним для зашифрованого тунелю між пристроями. Після встановлення з’єднання в VPN за допомогою асиметричного шифрування, симетричний алгоритм шифрує самі дані для забезпечення конфіденційності та швидкості.
  2. Файлове шифрування
    • Програми, як-от BitLocker (Microsoft) та FileVault (Apple), використовують симетричне шифрування для захисту даних на жорстких дисках. Для цих операцій часто застосовують AES, оскільки цей алгоритм дає хорошу комбінацію безпеки і швидкості.
  3. Захист банківських транзакцій
    • AES також використовується для шифрування даних під час онлайн-транзакцій. Банки використовують цей метод для захисту особистих даних користувачів, як-от номер картки та фінансова інформація, під час їх передачі через інтернет.
  4. Безпека в месенджерах
    • Деякі месенджери, такі як WhatsApp та Telegram, застосовують симетричне шифрування для шифрування повідомлень на стороні клієнта. Для забезпечення конфіденційності повідомлення між користувачами застосовуються AES та інші алгоритми симетричного шифрування.
  5. Шифрування дисків та зберігання даних
    • AES часто використовується для шифрування даних на зберіганні (у хмарних сховищах, на носіях даних), де швидкість доступу до даних має велике значення. Це дозволяє швидко шифрувати та розшифровувати великі обсяги даних.

Асиметричне шифрування: використання в сучасних технологіях

  1.      SSL/TLS для безпеки в інтернеті
    • Протоколи SSL та TLS використовують асиметричне шифрування для безпечного обміну ключами між веб-сервером і браузером. Спочатку з’єднання встановлюється за допомогою асиметричного шифрування, коли веб-сервер надсилає свій публічний ключ, і браузер використовує його для шифрування симетричного ключа, який буде використовуватися для шифрування сеансу.
  2.      Цифрові підписи
    • Асиметричне шифрування також широко використовується для цифрових підписів. У цьому випадку, підписувач використовує свій приватний ключ, щоб підписати повідомлення, а інші користувачі можуть перевірити підпис за допомогою відкритого
    • ключа. Цифрові підписи забезпечують автентичність повідомлення та підтверджують, що воно не було змінено.
  3.      Електронні платіжні системи (Bitcoin і криптовалюти)
    • Криптовалюти, такі як Bitcoin, використовують RSA або інші алгоритми для забезпечення безпеки транзакцій. Кожен користувач має пару ключів: публічний ключ, на який можна надіслати кошти, і приватний ключ, який необхідний для підтвердження транзакції та її підпису.
  4.      Email:
    • Асиметричне шифрування використовується для забезпечення конфіденційності електронних листів. Стандарти, такі як PGP і S/MIME, дозволяють користувачам шифрувати електронні листи за
  • допомогою їх публічних ключів та розшифровувати їх за допомогою приватних ключів.
  1.      Ідентифікація та аутентифікація

Системи аутентифікації на основі RSA або ECC використовуються для захисту доступу до різних сервісів, таких як SSH (Secure Shell) та VPN. Користувачі генерують пару ключів (публічний і приватний) і використовують їх для доступу до віддалених серверів, замінюючи паролі.

  1.      Протоколи криптографії на базі elliptic curve (ECC)
    • ECC (еліптична кривизна) використовує менше бітів для забезпечення такої ж безпеки, як і RSA, але з меншими вимогами до обчислювальних потужностей. Це робить ECC ідеальним для мобільних пристроїв і інших ресурсно обмежених платформ. Це часто застосовується в TLS, SSH та в технологіях криптовалют.

Поєднання симетричного та асиметричного шифрування

У більшості сучасних протоколів використовується поєднання симетричного та асиметричного шифрування для досягнення балансу між безпекою і швидкістю:

  1. Асиметричне шифрування забезпечує безпечну передачу ключів для симетричного шифрування.
  2. Симетричне шифрування використовується для ефективного і швидкого шифрування основних даних.

Код – додаток 1.3

 

 

 

 

 

 

 

 

 

 

 

 

Висновок:

У цій роботі було досліджено еволюцію криптографії, починаючи з найдавніших методів шифрування, таких як шифр Цезаря, і закінчуючи сучасними алгоритмами захисту інформації, як-от AES і RSA. Аналіз кожного етапу розвитку криптографії супроводжувався практичними прикладами реалізації алгоритмів, що було продемонстровано через Python-програму. Зокрема, у програмі можна побачити, як працюють шифри Цезаря та Віженера, а також як реалізуються сучасні методи шифрування, такі як AES, DES і RSA.

Шифр Цезаря, хоча й є базовим прикладом шифрування, має значні недоліки, зокрема його легко зламати через обмежену кількість можливих зсувів (усього 25). Одноалфавітні шифри, такі як цей, доволі швидко стали неефективними через появу методів частотного аналізу. З іншого боку, шифр Віженера, який використовує багатоалфавітний підхід, забезпечує кращий рівень безпеки, хоча й залишається вразливим до криптоаналізу при недостатньо довгому ключі.

Сучасні алгоритми шифрування, такі як AES та RSA, суттєво підвищили рівень захисту даних. Наприклад, алгоритм AES забезпечує швидке симетричне шифрування, яке активно використовується в банківських системах і для захисту файлів, а RSA забезпечує безпечний обмін ключами у відкритих мережах. Такі методи є основою для безпеки онлайн-комунікацій, як-от електронна пошта чи месенджери.

Однак сучасні технології також стикаються з викликами. Зокрема, поява квантових комп'ютерів ставить під загрозу ефективність існуючих асиметричних алгоритмів, таких як RSA. У зв'язку з цим дослідження в галузі постквантової криптографії стають дедалі важливішими.

Ця робота підкреслює значення криптографії для сучасного світу та її невід'ємну роль у забезпеченні безпеки цифрової інформації. Практична демонстрація алгоритмів допомагає краще зрозуміти, як теоретичні принципи шифрування реалізуються у сучасних технологіях. Вивчення еволюції шифрування дозволяє оцінити не лише історичний внесок, а й усвідомити важливість розробки нових алгоритмів, що забезпечать стійкість до майбутніх загроз.

 


Список використаних джерел:

  1.     «Книга шифрів». Тайна Істрія шифрів та їх розшифровка:
  •  Розділ Вступ, розвиток таємнопису.
  • Арабські криптоаналітики, криптоаналіз зашифрованого тексту.
  • Шифри, що не розкриваються.
  • Від відкинутого Віженера до людини залізної маски.
  • Беббідж проти шифр-Віженера.
  • Удосконалення шифрувальних машин від шифрувальних дисків до Енігми, злом Енігми.
  • Захоплення шифрувальних книг, невідомий криптоаналітик.
  • З'являються Аліса і Боб.
  • Альтернативна історія шифрування з відкритими ключами.
  • Шифрування для багатьох людей.... чи ні?

 

  1.     Стаття на Вікіпедію про Алана Тьюринга (https://uk.wikipedia.org/wiki/%D0%90%D0%BB%D0%B0%D0%BD_%D0%A2%D1%8E%D1%80%D1%96%D0%BD%D0%B3)
  2.     Скороченнями та посиланнями на їхні пояснення у Вікіпедії

RSA – https://uk.wikipedia.org/wiki/RSA

ECC – https://uk.wikipedia.org/wiki/%D0%A1%D1%85%D0%B5%D0%BC%D0%B0_%D0%95%D0%BB%D1%8C-%D0%93%D0%B0%D0%BC%D0%B0%D0%BB%D1%8F

DES, AES – https://uk.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%B7_%D1%81%D0%B8%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D0%B8%D0%BC%D0%B8_%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%BC%D0%B8

VPN – https://uk.wikipedia.org/wiki/VPN

BitLocker – https://uk.wikipedia.org/wiki/BitLocker

FileVault – https://uk.wikipedia.org/wiki/FileVault

SSL – https://uk.wikipedia.org/wiki/SSL

TLS https://uk.wikipedia.org/wiki/Transport_Layer_Security

PGP https://uk.wikipedia.org/wiki/PGP

S/MIME – https://uk.wikipedia.org/wiki/S/MIME

SSH – https://uk.wikipedia.org/wiki/SSH

XOR https://uk.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%BB%D1%8E%D1%87%D0%BD%D0%B0_%D0%B4%D0%B8%D0%B7%27%D1%8E%D0%BD%D0%BA%D1%86%D1%96%D1%8F

ASCII – https://uk.wikipedia.org/wiki/ASCII

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Додатки:

Додаток 1.1:

shift = 3

def caesar_cipher(text, shift, decrypt=False):

    if decrypt:

        shift = -shift

    result = ""

    for char in text:

        if char.isalpha():

            start = ord('A') if char.isupper() else ord('a')

            result += chr((ord(char) - start + shift) % 26 + start)

        else:

            result += char

    return result

Додаток 1.2:

def vigenere_encrypt(text, key, decrypt=False):

    key = key.lower()

    result = ""

    key_index = 0

 

    for char in text:

        if char.isalpha():

            start = ord('A') if char.isupper() else ord('a')

            shift = (ord(key[key_index % len(key)]) - ord('a'))

            if decrypt:

                shift = -shift

            result += chr((ord(char) - start + shift) % 26 + start)

            key_index += 1

        else:

            result += char

    return result

Додаток 1.3:

import base64

from Crypto.Cipher import AES, DES  

from Crypto.PublicKey import RSA

from Crypto.Cipher import PKCS1_OAEP

 

def aes_encrypt(text, key):

    key = key[:16].ljust(16, '0')  # Длина ключа для AES — 16 байт

    cipher = AES.new(key.encode(), AES.MODE_CFB, iv=b'1234567812345678')

    encrypted = cipher.encrypt(text.encode())

    return base64.b64encode(encrypted).decode()

 

def aes_decrypt(text, key):

    key = key[:16].ljust(16, '0')  # Длина ключа для AES — 16 байт

    cipher = AES.new(key.encode(), AES.MODE_CFB, iv=b'1234567812345678')

    decrypted = cipher.decrypt(base64.b64decode(text)).decode()

    return decrypted

 

def des_encrypt(text, key):

    key = key[:8].ljust(8, '0')  # Длина ключа для DES — 8 байт

    cipher = DES.new(key.encode(), DES.MODE_CFB, iv=b'12345678')

    encrypted = cipher.encrypt(text.encode())

    return base64.b64encode(encrypted).decode()

 

def des_decrypt(text, key):

    key = key[:8].ljust(8, '0')  # Длина ключа для DES — 8 байт

    cipher = DES.new(key.encode(), DES.MODE_CFB, iv=b'12345678')

    decrypted = cipher.decrypt(base64.b64decode(text)).decode()

    return decrypted

 

def rsa_generate_keys():

    key = RSA.generate(2048)

    private_key = key.export_key().decode()

    public_key = key.publickey().export_key().decode()

    return private_key, public_key

 

def rsa_encrypt(text, public_key_str):

    public_key = RSA.import_key(public_key_str.encode())

    cipher = PKCS1_OAEP.new(public_key)

    encrypted = cipher.encrypt(text.encode())

    return base64.b64encode(encrypted).decode()

 

def rsa_decrypt(text, private_key_str):

    private_key = RSA.import_key(private_key_str.encode())

    cipher = PKCS1_OAEP.new(private_key)

    decrypted = cipher.decrypt(base64.b64decode(text)).decode()

    return decrypted

 

 

 

 

 

 

docx
Додав(-ла)
Олеськив Ольга
До підручника
Інформатика (підручник для класів із поглибленим вивченням інформатики) 9 клас (Руденко В.Д., Речич Н.В., Потієнко В.О.)
Додано
10 березня
Переглядів
87
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку