Вступ
Криптографія з публічним ключем (PKC), також відома як асиметрична криптографія – це структура, яка використовує як приватний, так і відкритий ключ, на відміну від єдиного ключа, який використовується в симетричній криптографії. Використання пар ключів дає PKC унікальний набір характеристик та можливостей, які можна використовувати для вирішення проблем, притаманних іншим криптографічним методам. Ця форма криптографії стала важливим елементом сучасної комп'ютерної безпеки, а також важливим компонентом зростаючої екосистеми криптовалют.
Як працює криптографія з публічним ключем?
У схемі PKC публічний ключ використовується відправником для шифрування інформації, а приватний ключ використовується одержувачем для розшифровки. Оскільки ці два ключі відрізняються один від одного, публічний ключ можна безпечно використовувати без шкоди для безпеки приватного ключа. Кожна пара асиметричних ключів унікальна, що гарантує, що повідомлення, зашифроване з використанням публічного ключа, може бути прочитане лише тією людиною, яка має відповідний приватний ключ.
Оскільки алгоритми асиметричного шифрування генерують пари ключів, які математично пов'язані, довжина їх ключів набагато більша, ніж у симетричної криптографії. Ця велика довжина, зазвичай від 1024 до 2048 біт, надзвичайно ускладнює обчислення приватного ключа з його публічного аналога. Один із найпоширеніших алгоритмів асиметричного шифрування, що використовуються сьогодні, відомий як RSA.
У схемі RSA ключі генеруються за допомогою модуля, отриманого шляхом множення двох чисел (часто двох великих простих чисел). Простіше кажучи, модуль генерує два ключі (один публічний, яким можна поділитися та один приватний, який слід тримати в секреті). Алгоритм RSA був вперше описали у 1977 році Rivest, Shamir та Adleman (звідси і RSA) і він залишається основним компонентом систем криптографії з публічним ключем.
PKC як інструмент шифрування
Криптографія з приватним ключем вирішує одну з давніх проблем симетричних алгоритмів, а саме передачі ключа, який використовується як для шифрування, так і для розшифрування. Надсилання цього ключа незахищеним з'єднанням може призвести до його розкриття третім особам, які потім зможуть прочитати будь-які повідомлення, зашифровані за допомогою спільного ключа. Хоча для вирішення цієї проблеми існують криптографічні методи (наприклад, протокол обміну ключами Diffie-Hellman-Merkle), вони, як і раніше, вразливі для атак. І навпаки, у криптографії з приватним ключем, ключ, який використовується для шифрування, може бути безпечно передано через будь-яке з'єднання. Як наслідок, асиметричні алгоритми забезпечують вищий рівень захисту ніж симетричні.
Створення цифрових підписів
Ще одним застосуванням алгоритмів асиметричної криптографії є аутентифікація даних цифровими підписами. По суті, цифровий підпис – це хеш, створений із використанням даних у повідомленні. Коли це повідомлення надіслано, підпис може бути перевірений одержувачем за допомогою публічного ключа відправника. Таким чином, вони можуть ідентифікувати джерело повідомлення та гарантувати, що він не був підроблений. У деяких випадках цифрові підписи та шифрування застосовуються разом, тобто сам хеш може бути зашифрований як частина повідомлення. Проте слід зазначити, що не всі схеми цифрового підпису використовують методи шифрування.
Обмеження
Хоча його можна використовувати для підвищення комп'ютерної безпеки та забезпечення перевірки цілісності повідомлень, PKC має деякі обмеження. Через складні математичні операції, пов'язані з шифруванням і розшифруванням, асиметричні алгоритми можуть бути досить повільними при роботі з великими об'ємами даних. Цей тип криптографії також залежить від припущення, що приватний ключ завжди залишиться секретним. Якщо приватний ключ буде випадково переданий або розкритий, безпека всіх повідомлень, зашифрованих за допомогою відповідного приватного ключа, буде скомпрометована. Користувачі також можуть випадково втратити свої приватні ключі, і вони не зможуть отримати доступ до зашифрованих даних.
Застосування криптографії з публічним ключем
Цей тип криптографії використовується багатьма сучасними комп'ютерними системами забезпечення безпеки конфіденційної інформації. Електронні листи, наприклад, можуть бути зашифровані з використанням методів криптографії з публічним ключем, щоб зберегти конфіденційність їхнього вмісту.
Протокол рівня захищених сокетів (SSL), який робить можливим безпечне підключення до вебсайтів, також використовує асиметричну криптографію. Системи PKC навіть розглядалися як засіб забезпечення безпечного середовища для електронного голосування, яке б потенційно дозволило виборцям брати участь у виборах зі своїх домашніх комп'ютерів.
PKC також займає важливе місце в блокчейн-технології та криптовалютах. При налаштуванні нового криптогаманця, генерується пара ключів (публічний та приватний). Адреса гаманця генерується з використанням публічного ключа та може бути безпечно передана іншим. З іншого боку, приватний ключ використовується для створення цифрових підписів та перевірки транзакцій, тому його слід зберігати в секреті.
Як тільки транзакція була перевірена шляхом підтвердження хеша, що міститься в цифровому підписі, ця транзакція може бути додана до блокчейн-реєстру. Ця система перевірки цифрового підпису гарантує, що тільки людина, яка має приватний ключ, пов'язаний з відповідним криптогаманцем, може переміщувати кошти.
Слід зазначити, що асиметрична криптографія, що використовується в криптовалютних програмах, відрізняється від тієї, яка використовується з метою комп'ютерної безпеки. Наприклад, Bitcoin та Ethereum використовують спеціальний алгоритм для перевірки транзакцій, відомий як "Алгоритм цифрового підпису на еліптичних кривих (ECDSA)". Також ECDSA створює цифрові підписи без використання шифрування. Це означає, що блокчейн не потребує шифрування.
Підсумки
Криптографія з публічним ключем відіграє важливу роль у забезпеченні безпеки сучасних цифрових систем, від комп'ютерної безпеки до перевірки криптовалютних транзакцій. Використовуючи парні публічні та приватні ключі, алгоритми асиметричної криптографії вирішують основні проблеми безпеки, пов'язані із симетричними шифрами. Хоча PKC використовується вже багато років, для нього регулярно розробляються нові області застосування та програми, особливо в області блокчейну та криптовалюти.