Методи шифрування — це способи перетворити зрозумілий текст на набір символів, який без ключа нічого не означає. У цій серії SparSIT розбираємо п’ять методів: від шкільного шифру Цезаря до AES і RSA, на яких тримається HTTPS, банківські застосунки й месенджери. Кожен метод має окрему статтю з інтерактивним калькулятором: можна зашифрувати свій текст, розшифрувати його назад і подивитися, що відбувається на кожному кроці.
Усі калькулятори працюють прямо у вашому браузері. Текст, паролі й ключі нікуди не надсилаються.
Основні терміни
- Відкритий текст — повідомлення, яке треба захистити.
- Шифротекст — результат шифрування.
- Ключ — секретний параметр. Алгоритм відомий усім, а безпека тримається лише на ключі (принцип Керкгоффса).
- Симетричне шифрування — один і той самий ключ шифрує та розшифровує.
- Асиметричне шифрування — є пара ключів: відкритим шифрують, закритим розшифровують.
- Криптоаналіз — методи зламу шифру без знання ключа.
Багато хто каже «криптування» чи «кодування». Однак правильний термін — шифрування. Кодування (наприклад, Base64 чи UTF-8) просто змінює форму запису і не має ключа, тому нічого не захищає.
Порівняння методів шифрування
| Метод | Тип | Ключ | Стійкість сьогодні | Де трапляється |
|---|---|---|---|---|
| Шифр Цезаря | симетричний, заміна | зсув 1…32 | ламається за секунди | навчання, ROT13 на форумах |
| Шифр Віженера | симетричний, багатоалфавітний | слово | ламається тестом Касіскі | історія, головоломки |
| XOR-шифрування | симетричний, потоковий | байти | слабкий з коротким ключем | прошивки, обфускація, основа потокових шифрів |
| AES-256 | симетричний, блоковий | 256 біт | стандарт, не зламаний | HTTPS, Wi-Fi WPA2/3, архіви, диски |
| RSA | асиметричний | пара 2048+ біт | надійний за достатньої довжини | сертифікати, підписи, обмін ключами |
Як читати серію
Статті йдуть від простого до складного. Шифр Цезаря показує саму ідею ключа і чому малий простір ключів — це погано. Віженер додає довгий ключ, але залишає статистичні сліди мови. XOR пояснює, як шифрують байти, а не літери, і чому ключ не можна використовувати двічі. Далі AES показує, як усі ці слабкі місця закрито в сучасному стандарті. Нарешті RSA вирішує іншу задачу: як домовитися про ключ із людиною, з якою ви ніколи не зустрічалися.
Практичні поради
- Не вигадуйте власний шифр для реального захисту. Використовуйте перевірені бібліотеки: Web Crypto API, libsodium, OpenSSL, mbedTLS.
- Для даних «у спокої» (файли, бекапи) беріть AES-GCM або ChaCha20-Poly1305 з ключем, отриманим через PBKDF2, scrypt або Argon2.
- Для обміну ключами й підписів використовуйте RSA-2048+ або сучасні криві (X25519, Ed25519).
- Ключ і пароль важливіші за алгоритм. Слабкий пароль робить AES-256 таким самим вразливим, як шифр Цезаря.
Якщо ви пишете прошивки для мікроконтролерів, також стануть у пригоді статті математичні прийоми в програмуванні та переповнення millis() в Arduino: операції XOR, зсуви й арифметика за модулем там ті самі, що й у криптографії.
Детальніше про метод див. статтю «Криптографія» у Вікіпедії.
