Kryptografia klucza publicznego (PKC) to technika szyfrowania wykorzystująca sparowany algorytm klucza publicznego i prywatnego (lub klucza asymetrycznego) do bezpiecznej komunikacji danych. Nadawca wiadomości używa klucza publicznego odbiorcy do szyfrowania wiadomości. Aby odszyfrować wiadomość nadawcy, można użyć tylko klucza prywatnego odbiorcy.
Dwa typy algorytmów PKC to RSA, który jest akronimem nazwanym na cześć wynalazców tego algorytmu: Rivest, Shamir i Adelman oraz DSA. Szyfrowanie PKC ewoluowało, aby sprostać rosnącym wymaganiom bezpiecznej komunikacji wielu sektorów i branż, takich jak wojsko.
PKC jest również znany jako szyfrowanie kluczem publicznym, szyfrowanie asymetryczne, szyfrowanie asymetryczne, szyfrowanie asymetryczne, szyfrowanie kluczem asymetrycznym i szyfrowanie Diffie-Hellman.
Czym jest więc kryptografia klucza prywatnego ?
Kryptografia klucza publicznego jest algorytmem kryptograficznym i składnikiem kryptosystemu wdrażanym przez różne standardy internetowe, w tym Transport Layer Security (TLS), Pretty Good Privacy (PGP), GNU Privacy Guard (GPG), Secure Socket Layer (SSL) i Hypertext Transfer Protocol (HTTP) ) strony internetowe.
PKC ułatwia bezpieczną komunikację przez niezabezpieczony kanał, który pozwala na odczytanie wiadomości tylko przez zamierzonego odbiorcę. Na przykład A używa klucza publicznego B do szyfrowania wiadomości do B, którą można odszyfrować przy użyciu unikalnego klucza prywatnego B.
PKC utrzymuje prywatność poczty elektronicznej i zapewnia bezpieczeństwo komunikacji, gdy wiadomości są przesyłane lub przechowywane na serwerach pocztowych. PKC jest również składnikiem DSA służącym do uwierzytelniania klucza prywatnego weryfikowanego przez każdego z uprawnionym dostępem do klucza publicznego, który weryfikuje pochodzenie i nadawcę wiadomości. Dlatego PKC ułatwia poufność, integralność danych, uwierzytelnianie i niezaprzeczalność, które stanowią parametry zapewniania kluczowych informacji (IA).
PKC działa wolniej niż metody kryptografii tajnych kluczy (lub kryptografii symetrycznej), ze względu na wysokie wymagania obliczeniowe. W przeciwieństwie do kryptografii symetrycznej, PKC stosuje stały rozmiar bufora, w zależności od konkretnych i małych ilości danych, które mogą być tylko szyfrowane i nie łączone w strumienie. Ponieważ wykorzystywany jest szeroki zakres możliwych kluczy szyfrowania, PKC jest bardziej niezawodny i mniej podatny na próby naruszenia bezpieczeństwa przez osoby trzecie.
PKC jako narzędzie szyfrowania
Kryptografia klucza publicznego rozwiązuje jeden z istniejących od dawna problemów z którym borykają się algorytmy symetryczne. Mowa tutaj o komunikacji pomiędzy kluczem używanym zarówno do szyfrowania, jak i deszyfrowania. Wysłanie tego klucza za pośrednictwem niezabezpieczonej sieci grozi udostępnieniem go stronie trzeciej, która dzięki dostępowi do niego może następnie odczytać wszystkie wiadomości zaszyfrowane za pomocą klucza publicznego. Chociaż istnieją już techniki kryptograficzne (takie jak np. protokół wymiany kluczy Diffie-Hellman-Merkle) umożliwiająca rozwiązanie tego problemu, w dalszym ciągu są one jednak podatne na ataki. Natomiast w przypadku Kryptografii Klucza Publicznego, klucz używany do szyfrowania może być bezpiecznie przesłany przy użyciu dowolnego połączenie, komunikatora lub serwera. To z kolei w rezultacie sprawia, że algorytmy asymetryczne zapewniają wyższy poziom bezpieczeństwa w porównaniu z algorytmami symetrycznymi.
Użytek PKC w Generowaniu Podpisów Cyfrowych
Innym przykładem zastosowania asymetrycznych algorytmów kryptograficznych jest uwierzytelnianie danych za pomocą tzw. podpisów cyfrowych. Generalnie rzecz ujmując podpis cyfrowy, to skrót stworzony za pomocą danych zawartych w samej wiadomości. Po wysłaniu takiej wiadomości, jej podpis może zostać sprawdzony przez odbiorcę przy użyciu klucza publicznego nadawcy – który jest publicznie znany – co pozwala odbiorcy na zweryfikowanie źródła wiadomości i upewnienie się, że jej treść nie została w jakikolwiek sposób naruszona. Należy jednak zauważyć, że nie wszystkie systemy podpisów cyfrowych korzystają z technik szyfrowania.
Ograniczenia
Chociaż PKC wykorzystywane jest generalnie do zwiększenia bezpieczeństwa komunikacji i zapewnienia integralności komunikatu, to framework ten cechuje się jednak pewnymi ograniczeniami. Ze względu na złożone operacje matematyczne związane z szyfrowaniem i odszyfrowywaniem, algorytmy asymetryczne okazują się dosyć powolne w przypadku zetknięcia ich z dużymi zestawami danych. Ten rodzaj kryptografii zależy również w dużej mierze od założenia, że klucz prywatny zawsze pozostanie tajny. Jeśli klucz prywatny zostanie przypadkowo udostępniony lub ujawniony, bezpieczeństwo wszystkich wiadomości, które zostały zaszyfrowane za pomocą odpowiadającego mu klucza publicznego, zostanie najzwyczajniej naruszona. Co więcej, przypadkowe zgubienie klucza prywatnego dającego dostęp do zaszyfrowanych danych sprawia, że dane zaszyfrowane za jego pomocą stają się niemożliwe do odszyfrowania.
Zastosowania Kryptografii Klucza Publicznego
Ten typ kryptografii jest obecnie wykorzystywany przez wiele nowoczesnych systemów komputerowych, aplikacji oraz sieci w celu zapewnienia należytego poziomu bezpieczeństwa poufnych informacji. Jednym z najprostszych przykładów zastosowania PKC z życia codziennego jest szyfrowanie wiadomości e-mail przy użyciu technik kryptografii klucza publicznego, aby zachować poufność ich treści. Protokół Secure Sockets Layer (SSL), który umożliwia bezpieczne połączenia z serwisami WWW, również wykorzystuje asymetryczną kryptografię. Niektórzy z kryptografów twierdzą również, że systemy wykorzystujące PKC są w stanie zapewnić bezpieczne elektroniczne środowisko służące do głosowania, które potencjalnie umożliwiłoby wyborcom udział w wyborach przy użyciu ich własnych komputerów.
Framework PKC posiada również znaczący udział w technologii blockchain i kryptowalut. Podczas konfiguracji portfela służącego do przechowywania kryptowalut za każdym razem generowana jest para kluczy: publiczny i prywatny. Adres publiczny generowany jest przy użyciu klucza publicznego i co do zasady można go bezpiecznie udostępniać innym. Z kolei klucz prywatny służy do tworzenia podpisów cyfrowych i weryfikacji transakcji, dlatego też obligatoryjnie jego posiadacz musi trzymać go w tajemnicy przed innymi. Za każdym razem kiedy transakcja zostanie zweryfikowana poprzez potwierdzenie hashu zawartego w podpisie cyfrowym, transakcję tę można dodać do łańcucha blockchain. Dzięki temu każdy uczestnik sieci ma pewność, że tylko osoba, która ma klucz prywatny powiązany z odpowiednim portfelem kryptowalut, może zarządzać zdeponowanymi na nim funduszami. Należy zauważyć, że szyfry asymetryczne używane w aplikacjach kryptowalutowych różnią się od tych używanych do celów zabezpieczania sieci czy też komputerów. Dla przykładu, kryptowaluty Bitcoin i Ethereum do weryfikacji transakcji wykorzystują skomplikowany szyfr znany jako algorytm cyfrowej sygnatury łuku eliptycznego (ECDSA)
Od bezpieczeństwa sieci komputerowych, komputerów i aplikacji, po weryfikację transakcji kryptowalutowych, kryptografia klucza publicznego odgrywa ważną rolę w bezpieczeństwie nowoczesnych systemów cyfrowych. Wykorzystując sparowane matematycznie ze sobą klucze publiczne i prywatne, asymetryczne algorytmy kryptograficzne rozwiązują podstawowe problemy bezpieczeństwa znane w dziedzinie kryptografii symetrycznej. Chociaż framework PKC jest w użyciu już od wielu lat, kryptografowie oraz programiści z całego świata sukcesywnie tworzą dla niego nowe zastosowania i aplikacje – a już w szczególności w przestrzeni technologii blockchain i kryptowalut.