Szyfrowanie asymetryczne wyjaśnione w 5 minut lub mniej

Informacje stanowią niezwykle cenny zasób, a ich nieautoryzowane przejęcie może skutkować negatywnymi konsekwencjami zarówno dla jednostek, jak i dla organizacji.

W odpowiedzi na to zagrożenie, stosuje się techniki szyfrowania, które stanowią fundament ochrony danych, zarówno podczas przechowywania, jak i przesyłania ich w sieci internetowej.

W niniejszym opracowaniu skupimy się na analizie szyfrowania asymetrycznego.

Przejdźmy zatem do szczegółów.

Czym jest szyfrowanie?

Szyfrowanie to proces przekształcania danych w formę, która jest trudna do odczytania bez odpowiedniego klucza, czyli w tzw. szyfrogram. Proces ten opiera się na zaawansowanych algorytmach matematycznych.

Komputery wykorzystują szyfrowanie w celu zabezpieczenia danych podczas przechowywania lub przesyłania. Ma to na celu zagwarantowanie, że dostęp do informacji mają wyłącznie upoważnione osoby.

Sercem szyfrowania są klucze kryptograficzne – unikalne ciągi generowane matematycznie, powstające na podstawie parametrów szyfrowania i porozumienia między nadawcą a odbiorcą.

Przyjrzyjmy się prostemu przykładowi szyfrowania.

Załóżmy, że Bob chce wysłać wiadomość do swojego znajomego Johna, entuzjasty zaszyfrowanych tekstów.

Bob redaguje wiadomość, a następnie poddaje ją procesowi „szyfrowania”. Wykorzystany algorytm jest prosty – polega na przesunięciu wartości ASCII każdego znaku o 4 pozycje.

W konsekwencji litera „A” o kodzie ASCII 65 zostaje zamieniona na kod 69, co odpowiada literze „E”. Zastosowanie tej zasady do wszystkich znaków pozwala Bobowi utworzyć zaszyfrowaną wiadomość i przesłać ją Johnowi.

Ponieważ John i Bob wcześniej uzgodnili metodę kodowania i dekodowania, mogą bez problemu wymieniać się wiadomościami.

Przykładowo, wiadomość „Cześć, John” po zaszyfrowaniu przyjmie formę „LIPPS0 $ NRLR”.

Proces odzyskiwania oryginalnej wiadomości z szyfrogramu nosi nazwę deszyfrowania.

Aby lepiej zrozumieć ten proces, warto zapoznać się z tabelą ASCII.

Zobacz również: Polecane konwertery tekstu na ASCII

Na czym polega szyfrowanie asymetryczne?

Szyfrowanie asymetryczne, znane również jako kryptografia asymetryczna, wykorzystuje do szyfrowania i deszyfrowania pary kluczy:

  • Klucz publiczny: Służy do szyfrowania wiadomości.
  • Klucz prywatny: Służy do odszyfrowywania wiadomości. Klucz prywatny, nazywany również tajnym, jest znany tylko jego właścicielowi i nie może być udostępniany.

Jak działa szyfrowanie asymetryczne?

Wróćmy do Boba i Johna z naszego poprzedniego przykładu.

Bob zdaje sobie sprawę, że jego dotychczasowa metoda przesyłania zaszyfrowanych wiadomości do Johna nie jest w pełni bezpieczna, ponieważ może zostać złamana metodą brute-force.

Z tego powodu, do komunikacji z Johnem, wybiera szyfrowanie asymetryczne.

W tym przypadku Bob w pierwszej kolejności zwraca się do Johna o przesłanie mu jego klucza publicznego. Może to zrobić osobiście, jeśli ma z nim kontakt bezpośredni.

Możliwe jest również skorzystanie z katalogów kluczy publicznych (PKD), w których użytkownicy mogą rejestrować i udostępniać swoje klucze. W ten sposób, każdy kto chce bezpiecznie przesłać wiadomość, musi najpierw pozyskać klucz publiczny odbiorcy.

Bob, po uzyskaniu klucza publicznego Johna, wykorzystuje go do zaszyfrowania swojej wiadomości.

John po otrzymaniu wiadomości, używa swojego klucza prywatnego do jej odszyfrowania.

Dodatkowo, możliwe jest również szyfrowanie wiadomości kluczem prywatnym nadawcy. W takiej sytuacji, aby wiadomość została odszyfrowana, odbiorca musi użyć klucza publicznego nadawcy.

Przykładowo, jeśli Bob zaszyfruje wiadomość swoim kluczem prywatnym, to John może ją odszyfrować przy pomocy klucza publicznego Boba!

Szyfrowanie asymetryczne wymaga dostępu do dwóch kluczy. Tym różni się od szyfrowania symetrycznego, gdzie do szyfrowania i deszyfrowania używa się tego samego klucza.

Jak działa kryptografia asymetryczna?

Aby zrozumieć działanie kryptografii asymetrycznej, warto przyjrzeć się jej wewnętrznemu mechanizmowi.

Podstawą procesu jest odpowiednio dobrana funkcja matematyczna, umożliwiająca wygenerowanie pary kluczy.

Sposób generowania kluczy jest zależny od ustaleń pomiędzy nadawcą a odbiorcą.

Większość narzędzi i języków programowania posiada gotowe biblioteki do obsługi kryptografii. W przypadku implementacji szyfrowania asymetrycznego zaleca się skorzystanie z tych bibliotek, aby zaoszczędzić czas i uniknąć „ponownego wynajdowania koła”.

Typowy proces przesyłania zaszyfrowanej wiadomości wygląda następująco:

➡️ Nadawca i odbiorca generują pary kluczy publicznych i prywatnych na podstawie ustalonych parametrów.

➡️ Nadawca przeszukuje katalog kluczy publicznych w celu uzyskania klucza odbiorcy.

➡️ Po uzyskaniu klucza publicznego odbiorcy, nadawca szyfruje nim wiadomość.

➡️ Zaszyfrowana wiadomość jest przesyłana do odbiorcy, który odszyfrowuje ją za pomocą swojego klucza prywatnego.

➡️ Odbiorca może odpowiedzieć na wiadomość, a proces ten powtarza się (w odwrotnej kolejności).

Zalety szyfrowania asymetrycznego

Szyfrowanie asymetryczne oferuje szereg korzyści, takich jak:

  • Autentykacja wiadomości: Dzięki szyfrowaniu asymetrycznemu, możliwe jest zweryfikowanie autentyczności wiadomości i jej nadawcy. Z tego względu, podpisy cyfrowe są częstym zastosowaniem kryptografii asymetrycznej.
  • Wygoda: Dystrybucja kluczy jest łatwa i wygodna. Klucze publiczne są powszechnie dostępne, co umożliwia łatwe szyfrowanie wiadomości. Odbiorca z kolei, używa swojego klucza prywatnego do odszyfrowania.
  • Wykrywanie manipulacji: Kryptografia asymetryczna pozwala na wykrycie prób manipulacji wiadomością w trakcie przesyłania.
  • Niezaprzeczalność: Działa analogicznie do dokumentów z fizycznym podpisem, uniemożliwiając nadawcy wyparcie się autorstwa wiadomości.

Przejdźmy teraz do omówienia wad szyfrowania asymetrycznego.

Wady szyfrowania asymetrycznego

Do wad szyfrowania asymetrycznego należą:

  • Powolność: Szyfrowanie asymetryczne jest procesem powolnym, przez co nie sprawdza się przy przesyłaniu dużych ilości danych.
  • Brak autentykacji kluczy publicznych: Klucze publiczne są ogólnodostępne, ale brak mechanizmu weryfikacji ich autentyczności, zmusza użytkowników do samodzielnej oceny, czy dany klucz należy do właściwej osoby.
  • Brak możliwości odzyskania klucza prywatnego: W przypadku utraty klucza prywatnego, odszyfrowanie wiadomości staje się niemożliwe.
  • Ryzyko związane z wyciekiem klucza prywatnego: Ujawnienie klucza prywatnego może skutkować wyciekiem danych lub wiadomości.

Przyjrzyjmy się teraz kilku praktycznym zastosowaniom szyfrowania asymetrycznego.

Przypadki użycia szyfrowania asymetrycznego

# 1. Podpisy cyfrowe

Podpisy cyfrowe są coraz powszechniej stosowane. Wykorzystują algorytm RSA (Rivesta-Shamira-Adlemana), który generuje parę kluczy publicznych i prywatnych. Podpis cyfrowy jest tworzony przy pomocy klucza prywatnego, a następnie weryfikowany kluczem publicznym osoby składającej podpis.

#2. Szyfrowanie poczty elektronicznej

Szyfrowanie asymetryczne umożliwia bezpieczne przesyłanie wiadomości e-mail. Treść wiadomości jest szyfrowana kluczem publicznym odbiorcy i odszyfrowywana jego kluczem prywatnym.

#3. SSL/TLS

SSL/TLS to protokoły zapewniające bezpieczną komunikację w sieci. Wykorzystują zarówno szyfrowanie symetryczne, jak i asymetryczne, celem nawiązania bezpiecznego połączenia pomiędzy nadawcą a odbiorcą.

W większości sytuacji, wykorzystywane jest szyfrowanie symetryczne. Jednakże, kryptografia asymetryczna może okazać się niezbędna w procesie generowania kluczy sesji, jak również przy weryfikacji tożsamości serwera źródłowego.

#4. Kryptowaluty

Jednym z najpopularniejszych zastosowań kryptografii asymetrycznej są kryptowaluty. Klucze publiczne i prywatne wykorzystywane są do szyfrowania transakcji.

Kryptografia klucza publicznego dobrze współgra z kryptowalutami, gdyż klucz publiczny jest powszechnie wykorzystywany do transferów, natomiast klucze prywatne służą do zatwierdzania transakcji i umożliwiają otrzymywanie środków. Przykładem kryptowaluty wykorzystującej szyfrowanie asymetryczne jest Bitcoin.

#5. Szyfrowane przeglądanie

Przeglądarki internetowe również korzystają z szyfrowania asymetrycznego, w celu zapewnienia bezpieczeństwa przesyłanych danych. Przykładem może być protokół HTTPS, który można zauważyć w pasku adresu każdej strony internetowej. Litera „s” informuje o nawiązaniu bezpiecznego połączenia. Przeglądarka „uzgadnia” z serwerem sposób szyfrowania danych.

Przeglądarki mogą używać zarówno szyfrowania symetrycznego, jak i asymetrycznego. Szyfrowanie asymetryczne usprawnia proces bezpiecznego nawiązywania połączenia.

W praktyce, przeglądarki na ogół korzystają z obydwu typów szyfrowania dla zapewnienia maksymalnego poziomu bezpieczeństwa.

#6. Udostępnianie kluczy do szyfrowania symetrycznego

Szyfrowanie asymetryczne może być wykorzystane do udostępniania kluczy symetrycznych w ramach danego połączenia.

Szyfrowanie symetryczne vs. asymetryczne

Poniższa tabela przedstawia różnice pomiędzy szyfrowaniem symetrycznym a asymetrycznym.

Szyfrowanie asymetryczne Szyfrowanie symetryczne

Klucze Wymagane są dwa klucze. Klucz publiczny służy do szyfrowania, natomiast klucz prywatny do odszyfrowania. Możliwa jest również sytuacja odwrotna. Do szyfrowania i deszyfrowania używany jest jeden klucz.

Rozmiar zaszyfrowanego tekstu Długość zaszyfrowanego tekstu jest podobna lub większa od oryginalnej wiadomości. Długość zaszyfrowanego tekstu jest podobna lub mniejsza od oryginalnej wiadomości.

Szybkość i wydajność Proces szyfrowania jest wolniejszy niż w przypadku szyfrowania symetrycznego. Przesyłanie dużych ilości danych jest mniej efektywne. Proces szyfrowania jest szybszy niż w przypadku szyfrowania asymetrycznego, co umożliwia wydajne przesyłanie dużych ilości danych.

Algorytmy Popularne algorytmy: RSA, ECC, EL, Gamal, Diffie-Hellman. Popularne algorytmy: RC4, DES, 3DES i AES.

Rozmiar klucza 2048 bitów lub więcej. 128 lub 256 bitów.

Przeznaczenie Szyfrowanie danych, uwierzytelnianie i tworzenie bezpiecznego kanału komunikacyjnego. Masowe przesyłanie danych.

Kiedy używać szyfrowania asymetrycznego?

Szyfrowanie asymetryczne jest rekomendowane w następujących przypadkach:

  • Potrzeba wyższego poziomu bezpieczeństwa przesyłanych wiadomości.
  • Przesyłane dane mają niewielką objętość, ze względu na powolność tego typu szyfrowania.
  • Potwierdzenie podpisów cyfrowych.
  • Autoryzacja transakcji kryptowalutowych poprzez potwierdzenie tożsamości.

Słowo na koniec

Szyfrowanie asymetryczne stanowi podstawę wielu współczesnych technologii. Stosuje się je w protokołach takich jak TLS/SSL oraz w weryfikacji podpisów cyfrowych.

Dostępne biblioteki kryptograficzne pozwalają na szybkie i sprawne wdrożenie kryptografii asymetrycznej w różnych narzędziach i językach programowania, bez konieczności pisania kodu od podstaw.

Zapraszamy również do zapoznania się z naszym artykułem na temat szyfrowania symetrycznego.