Криптографія з симетричним ключем (або симетричне шифрування) – це тип схеми шифрування, в якій той самий ключ використовується як для шифрування, так і для розшифрування повідомлень. Такий метод кодування інформації широко використовувався останні десятиліття для полегшення секретного зв'язку між урядами та військовими. Нині алгоритми симетричного ключа широко застосовують у різних типах комп'ютерних систем для підвищення безпеки даних.
Як працює симетричне шифрування?
Схеми симетричного шифрування засновані на одному ключі, який використовується двома чи більше користувачами. Однаковий ключ використовується для шифрування і розшифрування так званого відкритого тексту (який представляє повідомлення або фрагмент даних, що зашифровується). Процес шифрування складається з пропущення відкритого тексту (входу) через алгоритм шифрування, який називається шифром, що в свою чергу, генерує зашифрований текст (вихід).
Якщо схема шифрування досить надійна, єдиний спосіб прочитати або отримати доступ до інформації, що міститься в зашифрованому тексті – це використовувати відповідний ключ для її розшифрування. Процес розшифрування переважно перетворює зашифрований текст назад у відкритий текст.
Безпека систем симетричного шифрування полягає в тому, наскільки складно випадковим чином вгадати відповідний ключ при його підборі. Наприклад, для вгадування 128-бітного ключа з використанням звичайного комп'ютерного обладнання знадобляться мільярди років. Що довший ключ шифрування, то складніше його зламати. Ключі довжиною 256 біт зазвичай вважають високонадійними і теоретично стійкими до атак методом підбору за допомогою квантових комп'ютерів.
Дві найбільш поширені схеми симетричного шифрування, що використовуються сьогодні, засновані на блоковому та потоковому шифрах. Блокові шифри групують дані в блоки заздалегідь визначеного розміру, і кожен блок шифрується з використанням відповідного ключа і алгоритму шифрування (наприклад, відкритий 128-бітовий текст шифрується у 128-бітний зашифрований текст). З іншого боку, потокові шифри шифрують дані відкритого тексту не блоками, а 1-бітним інкрементом (1-бітний відкритий текст за один раз шифрується в 1-бітний зашифрований текст).
Симетричне шифрування проти асиметричного
Симетричне шифрування – один із двох основних методів шифрування даних у сучасних комп'ютерних системах. Іншим методом є асиметричне шифрування, яке в основному застосовується у криптографії з публічним ключем. Основна відмінність між цими методами полягає в тому, що в асиметричних системах використовують два ключі, а не один, який використовується в симетричних схемах. Один із ключів може бути загальнодоступним (публічний ключ), а інший повинен зберігатися у секреті (приватний ключ).
Використання двох ключів замість одного також призводить до безлічі функціональних відмінностей між симетричним та асиметричним шифруванням. Асиметричні алгоритми складніші та повільніші, ніж симетричні. Оскільки публічний та приватний ключі, що використовуються в асиметричному шифруванні, певною мірою математично пов'язані, самі ключі також повинні бути значно довшими, щоб забезпечити такий самий рівень безпеки, як і короткі симетричні ключі.
Використання у сучасних комп'ютерних системах
Алгоритми симетричного шифрування використовуються в багатьох сучасних комп'ютерних системах для підвищення безпеки даних і конфіденційності користувачів. Розширений стандарт шифрування (AES), який широко використовується як у програмах для безпечного обміну повідомленнями, так і в хмарних сховищах, є одним з найяскравіших прикладів симетричного шифру.
Крім програмних реалізацій, AES також може бути реалізований напряму в комп'ютерному обладнанні. Схеми апаратного симетричного шифрування використовують AES 256, особливий варіант розширеного стандарту шифрування з розміром ключа 256 біт.
Варто зазначити, що блокчейн Bitcoin не використовує шифрування, як багато хто вважає. Натомість він використовує особливий тип алгоритму цифрових підписів (DSA), відомий як алгоритм цифрового підпису на еліптичних кривих (ECDSA), який створює цифрові підписи без використання шифрування.
Причиною замішання є те, що ECDSA заснований на криптографії на еліптичних кривих (ECC), яка, у свою чергу, може застосовуватися для багатьох завдань, зокрема шифрування, цифрові підписи та генератори псевдовипадкових чисел. Проте сам алгоритм ECDSA взагалі не можна використовувати для шифрування.
Переваги та недоліки
Симетричні алгоритми забезпечують досить високий рівень безпеки і водночас дозволяють швидко шифрувати та розшифровувати повідомлення. Відносна простота симетричних систем є логістичною перевагою, оскільки вони вимагають менше обчислювальної потужності, ніж асиметричні. Крім того, рівень безпеки, який забезпечується симетричним шифруванням, можна підвищити, просто збільшивши довжину ключа. З кожним бітом, що додається до довжини симетричного ключа, складність злому шифрування методом грубої сили зростає в геометричній прогресії.
Хоча симетричне шифрування пропонує широкий спектр переваг, з ним пов'язаний один істотний недолік – невід'ємна проблема передачі ключів, що використовуються для шифрування та дешифрування даних. Коли ці ключі передаються незахищеним з'єднанням, вони вразливі для перехоплення зловмисниками. Якщо неавторизований користувач отримує доступ до певного симетричного ключа, то безпека будь-яких даних, зашифрованих за допомогою цього ключа, буде під загрозою. Щоб вирішити цю проблему, багато вебпротоколів використовують комбінацію симетричного та асиметричного шифрування для встановлення безпечних з'єднань. Одним із найяскравіших прикладів такої гібридної системи є криптографічний протокол Transport Layer Security (TLS), який використовується для захисту великої частини сучасного інтернету.
Також слід зазначити, що всі типи комп'ютерного шифрування схильні до вразливостей повʼязаних з неправильною реалізацією. У той час як досить довгий ключ може зробити атаку грубої сили математично неможливою, помилки в реалізації, допущені програмістами, часто створюють уразливості, які відкривають шлях для кібератак.
Підсумки
Завдяки своїй відносній швидкості, простоті та безпеці, симетричне шифрування широко використовується в програмах, починаючи від захисту інтернет-трафіку і закінчуючи захистом даних, що зберігаються на хмарних серверах. Хоча симетричне шифрування часто поєднується з асиметричним шифруванням для вирішення проблеми безпечної передачі ключів, схеми симетричного шифрування залишаються найважливішим компонентом сучасної комп'ютерної безпеки.