Криптографія з відкритим ключем
Повноцінна інформаційна безпека стала однією з головних цілей сучасного суспільства. А її неможливо забезпечити без ефективних способів шифрування інформації. Ось тільки класичні способи, такі як симетрична криптографія, хоч і забезпечували високий рівень стійкості до злому, але були не дуже зручними для активного і регулярного використання. Тому був придуманий революційно-новий підхід - криптографія з відкритим ключем.
Що це таке?
Асиметричне шифрування працює за наступними принципами:
- Генерація пари ключів - відкритого і закритого. Знаючи перший, неможливо підібрати другий за розумний час. Однак володіючи другим, можна створити необмежену кількість відкритих.
- За допомогою відкритого коду і відомих методів шифрування інформація шифрується таким чином, щоб дешифрувати її можна було тільки за допомогою закритого.
- Відкритий ключ може перебувати у вільному доступі і поширюватися по незахищеним каналам передачі інформації.
Фактично, це досягається шляхом використання так званої «односторонньої функції». Вона називається так, тому що її не можна вирахувати, навіть знаючи необмежену кількість можливих її точок. Тільки наявність так званої «лазівки» - закритого ключа - робить цей процес можливим.
Переваги і недоліки
Переваги даного способу захисту даних полягають в наступному:
- Можливість передачі інформації по незахищених каналу.
- Високим вимогам до безпеки повинна відповідати тільки сторона-відправник.
- Даний спосіб полегшує процес аутентифікації користувачів.
Є у нього і деякі, досить істотні, недоліки:
- В даний алгоритм вкрай складно вносити зміни.
- Процес шифрування і дешифрування працює повільно і вимагає великі обчислювальні ресурси.
- Використовувані ключі набагато довше, ніж в симетричному шифруванні.
Велика довжина обумовлена тим, що між відкритим і закритим ключем є пряма закономірність, яку можна банально підібрати. Тому для того рівня безпеки, що дає симетричний ключ завдовжки в 128 біт (мінімум, який реально використовується), необхідний асиметричний порядку 2304 біт. Працювати з такими розмірами незручно, тому процес в цілому більш повільний.
Крім того, незважаючи на високу стійкість, даний спосіб кодування інформації все ще можна зламати. Найчастіше використовують два способи.
Перший - реальне обчислення приватного ключа по відомим відкритим. Якщо відомий використовуваний алгоритм і в розпорядженні зломщика є кілька зашифрованих текстів, то злом чисто технічно можливий. Особливо з використанням сучасних технологічних засобів.
Другий - вклинювання третьої сторони в процес передачі зашифрованих даних, підміна переданих відкритих ключів власними і дешифрування повідомлень за рахунок власних закритих. Однак даний спосіб не працює в ситуації з використанням захищених сертифікатів.
Асиметричне шифрування і блокчейн Біткоін
Незважаючи на те, що Біткоін використовує пари з відкритого і приватного ключа, конкретно асиметричне шифрування в ньому не використовується. На відміну від другого поширеного варіанту практичного застосування асиметричної криптографії - цифрових підписів. Тобто будь-яке повідомлення в межах блокчейна може не бути зашифрованим, але обов'язково забезпечується цифровим підписом в якості ідентифікатора. Так відбувається тому, що використовується більш безпечний алгоритм ECDSA, що не забезпечує додаткову систему кодування, на відміну від більш простого, але функціонального алгоритму RSA.
Сучасне використання
На даний момент, найбільш відомими варіантами застосування подібних методів шифрування є наступні:
- RSA - алгоритм, придатний і для формування цифрових підписів і для шифрування інформації. Лежить в основі асиметричної криптографії в цілому.
- DSA - базовий алгоритм для генерації цифрового підпису без додаткового кодування. Є основною для FIPS-186-4 - офіційного стандарту цифрового підпису в США.
- ECDSA - найбільш поширений алгоритм для створення цифрового підпису.
- ГОСТ 34.10-2018 - вітчизняний стандарт електронних цифрових підписів.
Крім того, подібні методи шифрування використовуються для створення гібридних систем, які зібрали найкраще з двох існуючих методів кодування інформації. Як приклад, можна назвати Security Sockets Layer (SSL) і Transport Layer Security (TLS), які лягли в основу створення безпечних каналів зв'язку в мережі інтернет. Зокрема - протоколу HTTPs.