🎯 Вступ до криптографії
Криптографія - це наука про захист інформації шляхом перетворення її в форму, яка незрозуміла для несанкціонованих осіб. Вона включає методи шифрування, хешування, цифрових підписів та інші техніки забезпечення безпеки даних в цифровому світі.
🔑 Основні принципи:
Конфіденційність: Захист від несанкціонованого доступу
Цілісність: Захист від несанкціонованих змін
Аутентифікація: Підтвердження особи
Неспростовність: Неможливість відмови від дій
🔒 Симетричне шифрування
🔑 Принципи симетричного шифрування
Основна ідея
Один і той же ключ використовується як для шифрування, так і для розшифрування повідомлень.
📊 Типи симетричних алгоритмів
56-бітний ключ, 64-бітні блоки
Статус: Застарілий, небезпечний
Замінений на: 3DES, AES
128/192/256-бітні ключі, 128-бітні блоки
Статус: Стандартний, безпечний
Режими: ECB, CBC, CFB, OFB, CTR
256-бітний ключ, потоковий шифр
Переваги: Швидкий, безпечний
Застосування: TLS, VPN
🔄 Режими роботи блочних шифрів
Кожен блок шифрується незалежно
Проблема: Однакові блоки дають однаковий результат
Кожен блок XOR з попереднім зашифрованим блоком
Переваги: Вирішує проблему ECB
Недолік: Послідовне шифрування
Генерує ключовий потік з лічильника
Переваги: Паралельне шифрування, випадковий доступ
// Процес симетричного шифрування: Повідомлення + Ключ = Зашифроване повідомлення Зашифроване повідомлення + Ключ = Розшифроване повідомлення // Приклад: "Hello" + "secret_key" = "X8k2m" "X8k2m" + "secret_key" = "Hello"
🔓 Асиметричне шифрування
🔑 Принципи асиметричного шифрування
Основна ідея
Використовується пара ключів: відкритий (public) та закритий (private). Повідомлення, зашифроване відкритим ключем, може бути розшифроване тільки закритим ключем.
🧮 RSA (Rivest-Shamir-Adleman)
Генерація ключів RSA
Вибір двох великих простих чисел p та q
Обчислення n = p × q
Обчислення φ(n) = (p-1)(q-1)
Вибір e так, що gcd(e, φ(n)) = 1
Обчислення d так, що e × d ≡ 1 (mod φ(n))
Відкритий ключ: (e, n), Закритий ключ: (d, n)
// Шифрування RSA: c = m^e mod n // Розшифрування RSA: m = c^d mod n // Де: // m - повідомлення // c - зашифроване повідомлення // (e,n) - відкритий ключ // (d,n) - закритий ключ
🔮 Еліптична криптографія (ECC)
Переваги ECC
Менші ключі: 256-бітний ECC ключ ≈ 3072-бітний RSA ключ
Швидкість: Швидше шифрування та розшифрування
Ефективність: Менше обчислень
Застосування: Мобільні пристрої, IoT
// Еліптична крива: y² = x³ + ax + b (mod p) // Приклад кривої (secp256k1): y² = x³ + 7 (mod 2²⁵⁶ - 2³² - 2⁹ - 2⁸ - 2⁷ - 2⁶ - 2⁴ - 1) // Використовується в Bitcoin та Ethereum
// Процес асиметричного шифрування: Повідомлення + Відкритий ключ = Зашифроване повідомлення Зашифроване повідомлення + Закритий ключ = Розшифроване повідомлення // Ключі генеруються парами: (Відкритий ключ, Закритий ключ) = generate_key_pair()
🔐 Хешування
📊 Принципи хешування
Хеш-функція
Функція, що перетворює довільні дані у фіксованої довжини рядок (хеш).
Детермінованість: Однакові дані завжди дають однаковий хеш
Швидкість: Швидке обчислення хешу
Аваланчний ефект: Невелика зміна в даних кардинально змінює хеш
Стійкість до колізій: Важко знайти два різних входи з однаковим хешем
🛡️ Криптографічні хеш-функції
256-бітний хеш, частина сімейства SHA-2
Застосування: Bitcoin, блокчейн
Статус: Безпечний, широко використовується
Нове покоління хеш-функцій (Keccak)
Переваги: Інша математична основа
Статус: Стандарт NIST, безпечний
Швидка та безпечна хеш-функція
Переваги: Паралелізм, швидкість
Застосування: Git, IPFS
🔍 Застосування хешування
Перевірка, чи не були дані пошкоджені
Приклад: MD5/SHA1 суми файлів
Хешування паролів з сіллю (salt)
Алгоритми: bcrypt, scrypt, Argon2
Хешування блоків для створення ланцюга
Приклад: Bitcoin, Ethereum
✍️ Цифрові підписи
🔏 Принципи цифрових підписів
Процес створення цифрового підпису
Хешування повідомлення
Шифрування хешу закритим ключем
Результат - цифровий підпис
Процес перевірки цифрового підпису
Хешування отриманого повідомлення
Розшифрування підпису відкритим ключем
Порівняння двох хешів
🔐 Алгоритми цифрових підписів
RSA з Probabilistic Signature Scheme
Переваги: Стойкість до атак
Elliptic Curve Digital Signature Algorithm
Переваги: Менші ключі, швидкість
Edwards Curve Digital Signature Algorithm
Переваги: Швидкість, безпека
🔐 Ключові обміни
🤝 Diffie-Hellman
Процес обміну ключами
Аліса та Боб домовляються про параметри (p, g)
Аліса вибирає секретне число a, Боб - b
Аліса обчислює A = g^a mod p, Боб - B = g^b mod p
Обмін значеннями A та B
Спільний ключ: K = B^a mod p = A^b mod p
🔮 ECDH (Elliptic Curve Diffie-Hellman)
Переваги ECDH
Менші ключі: Еквівалентна безпека з меншими ключами
Швидкість: Швидші обчислення
Ефективність: Менше споживання ресурсів
// Diffie-Hellman Key Exchange: // Параметри: p = 23 // просте число g = 5 // примітивний корінь // Аліса: a = 6 // секретний ключ Аліси A = g^a mod p = 5^6 mod 23 = 8 // Боб: b = 15 // секретний ключ Боба B = g^b mod p = 5^15 mod 23 = 19 // Обмін A=8 та B=19 // Спільний ключ: K = B^a mod p = 19^6 mod 23 = 2 K = A^b mod p = 8^15 mod 23 = 2
🔐 Протоколи безпеки
🌐 TLS/SSL
Етапи TLS рукостискання
Client Hello: Клієнт надсилає підтримувані шифри
Server Hello: Сервер вибирає шифри та надсилає сертифікат
Key Exchange: Обмін ключами (RSA, ECDHE)
Finished: Підтвердження завершення
🔐 IPSec
Компоненти IPSec
AH (Authentication Header): Аутентифікація та цілісність
ESP (Encapsulating Security Payload): Шифрування, аутентифікація
IKE (Internet Key Exchange): Обмін ключами
🛡️ Пост-квантова криптографія
⚛️ Загроза квантових комп'ютерів
Алгоритм Шора
Квантовий алгоритм, що може розв'язати задачу факторизації та дискретного логарифму, що зламає RSA та ECC.
Алгоритм Гровера
Квантовий алгоритм, що зменшує складність пошуку з O(N) до O(√N), що вплине на симетричні шифри.
🔮 Пост-квантові алгоритми
Криптографія на основі решіток
Приклади: NTRU, LWE
Переваги: Швидкість, гнучкість
Криптографія на основі кодів виправлення помилок
Приклад: McEliece
Переваги: Довга історія використання
Криптографія на основі системи поліноміальних рівнянь
Переваги: Швидкість, малі ключі
🎯 Практичні застосування
🌐 Веб-безпека
HTTPS, SSL/TLS, цифрові сертифікати
💰 Криптовалюти
Bitcoin, Ethereum, блокчейн технології
📧 Електронна пошта
PGP, S/MIME, шифрування листів
📱 Мобільна безпека
End-to-end шифрування, безпечні месенджери
📚 Рекомендована література
"Cryptography and Network Security" - William Stallings
"Applied Cryptography" - Bruce Schneier
"Introduction to Modern Cryptography" - Jonathan Katz, Yehuda Lindell
"The Code Book" - Simon Singh
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Hash Function Avalanche Visualizer і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Hash Function Avalanche Visualizer