Підручник з криптографії

⚡ Розумний підсумок

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

  • 🔐 Основна ідея: Шифрування перетворює відкритий текст на шифр; розшифрування перетворює його на зворотний, використовуючи секретний ключ.
  • 🧩 Три дисципліни: Криптографія приховує значення, криптоаналіз його розкриває, а криптологія охоплює і те, й інше.
  • 📐 Сімейства алгоритмів: Хеш-функції, симетричні шифри та системи з відкритим ключем вирішують різні проблеми.
  • Поточні стандарти: AES та SHA-2 залишаються схваленими, тоді як MD5, SHA-1 та RC4 вважаються зламаними.
  • 🧪 Практична практика: CrypTool 1 демонструє шифрування RC4 та аналіз методом перебору 24-бітного ключа.
  • 🔮 Забігаючи вперед: NIST опублікував свої перші постквантові стандарти у серпні 2024 року.

Підручник з криптографії

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

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

Що таке криптографія?

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

Розглянемо приклад. Щоб надіслати «Я ЛЮБЛЮ ЯБЛУКА», ви замінюєте кожну літеру третьою послідовною літерою алфавіту, утворюючи «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.

Головне вікно CrypTool 1 перед заміною зразка тексту

  • Замініть текст фразою вище.

Документ CrypTool, що містить фразу-замінник

Крок 3) Зашифруйте текст

  • Натисніть меню «Зашифрувати/розшифрувати».

Меню CrypTool Encrypt Decrypt з вибраним симетричним сучасним вибором

  • Вкажіть на Симетричний (сучасний), потім виберіть RC4.

Діалогове вікно введення ключа CrypTool RC4

Крок 4) Виберіть ключ шифрування

  • Виберіть довжину ключа 24 біти.
  • Встановіть значення 00 00 00.
  • Натисніть «Зашифрувати», щоб створити потоковий шифр нижче.

Результуючий потоковий шифр RC4, показаний у CrypTool

Атака на потоковий шифр

Крок 5) Розпочніть аналіз

  • Натисніть меню «Аналіз».

Меню аналізу CrypTool з виділеним сучасним симетричним шифруванням

  • Наведіть вказівник на Симетричне шифрування (сучасне), а потім виберіть RC4.

Діалогове вікно аналізу методом повного перебору CrypTool для RC4

  • Припускається, що секретний ключ 24-бітний, тому виберіть довжину ключа 24 біти.
  • Натисніть кнопку Пуск.

Вікно прогресу аналізу методом повного перебору CrypTool

  • Примітка: Час, необхідний для обробки, залежить від обчислювальної потужності машини, що використовується, та від довжини ключа. Довший ключ потребує більше часу, тому сучасні ключі мають 128 біт або більше.

Крок 6) Проаналізуйте результати

  • Після завершення аналізу кандидати на ключі виглядають у такому порядку.

Результати грубої сили CrypTool, ранжовані за ентропією

  • Примітка: Нижче значення ентропії зазвичай вказує на правильний результат, хоча вище може бути правильним.
  • Виберіть рядок, який читається як зрозумілий текст, а потім натисніть кнопку «Прийняти вибір».

Поширені запитання

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

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

Сіль (Silt) — це унікальне випадкове значення, яке зберігається поруч із кожним хешем пароля. Вона змінює хеші однакових паролів на різні, обходячи попередньо обчислені таблиці райдужних таблиць та змушуючи зловмисника працювати з кожним обліковим записом окремо.

Цифровий сертифікат пов’язує відкритий ключ із підтвердженою особою та підписується центром сертифікації. Браузери перевіряють цей підпис, перш ніж довіряти зашифрованому з’єднанню веб-сайту.

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

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

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

Інженери з безпеки, спеціалісти з тестування на проникнення та судові аналітики застосовують його щодня, і він утворює повноцінну сферу діяльності. Сертифікація CISSPБільшість ролей налаштовують перевірені бібліотеки, а не розробляють алгоритми.

Підсумуйте цей пост за допомогою: