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

Інформація відіграє життєво важливу роль у бізнесі, уряді та військових операціях, а потрапляння інформації в чужі руки може призвести до втрати доходу або навіть до чогось гіршого. Для захисту зв'язку організація використовує криптологію для шифрування інформації — перетворення її у формат, нечитабельний людиною, і навпаки.
У цій статті про криптографію та мережеву безпеку ви дізнаєтеся, як працює криптологія та як захистити інформацію від потрапляння в чужі руки.
Що таке криптографія?
Криптографія — це вивчення та застосування методів, які приховують справжній зміст інформації шляхом перетворення її у формати, незрозумілі для людини, і навпаки.
Розглянемо приклад. Щоб надіслати «Я ЛЮБЛЮ ЯБЛУКА», ви замінюєте кожну літеру третьою послідовною літерою алфавіту, утворюючи «K NQXG CRRNGU». Щоб прочитати його, одержувач робить крок на три літери назад, як показано нижче.

Перетворення інформації у форму, незрозумілу для людини, називається шифрування, а його зворотне перетворення називається дешифруванняЗашифрований результат відомий як шифр.
Розшифрування використовує секретний ключ, відомий лише законним одержувачам. Оскільки ключ є обов'язковим, зв'язок залишається безпечним навіть тоді, коли зловмисник перехоплює шифр, що не має сенсу без нього.
Особливості криптографії
Криптографічну систему оцінюють за наведеними нижче характеристиками.
| особливість | Що це значить |
|---|---|
| Алгоритм | Опублікована математична процедура, що виконує перетворення. |
| Конфіденційність | Тільки власники ключа можуть читати захищені дані. |
| Integrity | Будь-яка зміна даних є виявленою. |
| Адаптованість | Схема налаштовується на різні розміри ключів та рівні загроз. |
| Взаємодія | Різні системи та постачальники обмінюються захищеними даними. |
| Authentication | Походження повідомлення можна довести. |
| масштабованість | Продуктивність зберігається зі зростанням обсягів даних. |
| Керування ключами | Ключі генеруються, зберігаються, ротуються та безпечно видаляються. |
Застосування криптографії
Ці характеристики стають щоденними послугами, на які люди покладаються, не помічаючи цього.
| додаток | Як використовується криптографія |
|---|---|
| TLS-шифрування | Захищає трафік між браузером та вебсайтом. |
| Зберігання пароля | Зберігає засолені хеші замість читабельних паролів. |
| Інтернет-банкінг | Захищає транзакції та перевіряє банк. |
| криптовалюта | Підписує транзакції та зв'язує блоки за допомогою хешів. |
| Зашифрована електронна пошта | Зберігає конфіденційність вмісту повідомлень під час передачі та зберігання. |
| Digiталь підписів | Доводить авторство та те, що документ не змінювався. |
| Безпечний обмін повідомленнями | Застосовує наскрізне шифрування між пристроями. |
| Електронна торгівля | Захищає дані картки під час оформлення замовлення. |
Що таке криптоаналіз?
Криптоаналіз — це мистецтво розшифрування повідомлень без ключа, який використовується для їх шифрування. Він застосовує математичний аналіз та алгоритми для розшифрування шифрів і використовується як для злому систем, так і, в оборонних цілях, для вимірювання рівня захисту, який пропонує алгоритм.
Успіх криптоаналізу залежить від:
- Кількість доступного часу
- Доступна обчислювальна потужність
- Ємність для зберігання
Нижче наведено найпоширеніші атаки криптоаналізу:
- Напад грубої сили — перебирає всі можливі комбінації відкритого тексту або ключа, шифруючи кожну з них та порівнюючи її з оригінальним шифром.
- Словникова атака — використовує список слів для зіставлення або з відкритим текстом, або з ключем. Він здебільшого використовується під час спроби зламувати зашифровані паролі.
- Rainbow table атака — порівнює зашифрований текст із попередньо обчисленими хешами для пошуку збігів. Використання солі для кожного збереженого пароля призводить до його деактивації.
Що таке криптологія?
Криптологія — це головна галузь, що об'єднує криптографію та криптоаналіз. Обидві половини мають значення: алгоритму довіряють лише тоді, коли криптоаналітики намагалися і не змогли його зламати.
Шифрування Algorithms
Наведені нижче алгоритми неодноразово зустрічаються в роботах з безпеки. Зверніть увагу, які з них залишаються схваленими, а які збереглися лише в застарілих системах.
- MD5 — скорочення від Message-Digest 5, створює 128-бітові хеш-значення. MD5 — це хеш-функція, а не шифрування, тому його неможливо скасувати за задумом. Він не стійкий до колізій — два різні вхідні дані можуть створити однаковий хеш — і не підходить для паролів або підписів.
- SHA — скорочення від Secure Hash Algorithm (алгоритм безпечного хешування), ця родина генерує стислі представлення повідомлення, які називаються дайджестом повідомлення:
- SHA-0: створює 160-бітні хеш-значення. Його було вилучено через суттєвий недолік та замінено на SHA-1.
- SHA-1: створює 160-бітні хеш-значення. Практична колізія була продемонстрована у 2017 році, і NIST заборонив її для цифрових підписів, тому уникайте її.
- SHA-2: сімейство з шести функцій, включаючи SHA-256 та SHA-512, що працюють з 32-бітними та 64-бітними словами відповідно. Обидві залишаються схваленими.
- SHA-3: стандартизований у 2015 році та раніше відомий як Keccak, він використовує іншу внутрішню структуру як резервну копію SHA-2.
- AES — Розширений стандарт шифрування (Advanced Encryption Standard) — це симетричний блоковий шифр, який захищає більшість даних у стані спокою та під час передачі сьогодні, з 128-, 192- та 256-бітними ключами. Він замінив DES і є шифром за замовчуванням для нових систем.
- RC4 — потоковий шифр, колись поширений у протоколах Secure Sockets Layer (SSL) та Wired Equivalent Privacy (WEP). Обидва протоколи застаріли, а RFC 7465 заборонив RC4 у кожній версії TLS у 2015 році. Він зберігся тут як навчальний приклад.
- Blowfish — ключовий симетричний блоковий шифр, який історично використовувався для паролів і файлів. Його 64-бітний розмір блоку робить AES кращим сучасним вибором.
Забігаючи наперед, NIST опублікував свої перші постквантові стандарти у серпні 2024 року — ML-KEM для обміну ключами, ML-DSA та SLH-DSA для підписів — які поступово замінять сучасні алгоритми з відкритим ключем.
Хакерська діяльність: Як створити шифр за допомогою CrypTool
У цій практичній вправі CrypTool ви створюєте простий шифр за допомогою RC4, а потім відновлюєте його за допомогою аналізу методом перебору, припускаючи, що відомий ключ має 24 біти. Мета полягає в тому, щоб показати, чому короткий ключ і зламаний шифр не забезпечують реального захисту.
Створення потокового шифру RC4
Крок 1) Завантажте та встановіть CrypTool
CrypTool 1 — це навчальний інструмент з відкритим кодом для криптології. Активна розробка з того часу перейшла до CrypTool 2, але реліз 1.4.42 все ще працює на... Windows та відповідає зображенню на екранах нижче. Завантажте його з cryptool.org.
Крок 2) Відкрийте CrypTool та замініть текст
Фраза для шифрування - Ніколи не недооцінюйте рішучість дитини, яка багата на час і бідна на грошіКлюч — 00 00 00.
- Відкрийте CrypTool 1.
- Замініть текст фразою вище.
Крок 3) Зашифруйте текст
- Натисніть меню «Зашифрувати/розшифрувати».
- Вкажіть на Симетричний (сучасний), потім виберіть RC4.
Крок 4) Виберіть ключ шифрування
- Виберіть довжину ключа 24 біти.
- Встановіть значення 00 00 00.
- Натисніть «Зашифрувати», щоб створити потоковий шифр нижче.
Атака на потоковий шифр
Крок 5) Розпочніть аналіз
- Натисніть меню «Аналіз».
- Наведіть вказівник на Симетричне шифрування (сучасне), а потім виберіть RC4.
- Припускається, що секретний ключ 24-бітний, тому виберіть довжину ключа 24 біти.
- Натисніть кнопку Пуск.
- Примітка: Час, необхідний для обробки, залежить від обчислювальної потужності машини, що використовується, та від довжини ключа. Довший ключ потребує більше часу, тому сучасні ключі мають 128 біт або більше.
Крок 6) Проаналізуйте результати
- Після завершення аналізу кандидати на ключі виглядають у такому порядку.
- Примітка: Нижче значення ентропії зазвичай вказує на правильний результат, хоча вище може бути правильним.
- Виберіть рядок, який читається як зрозумілий текст, а потім натисніть кнопку «Прийняти вибір».









