Co to jest szyfrowanie asymetryczne?

Istnieje wiele różnych części kryptografii. Jeśli jednak chcesz zaszyfrować niektóre dane, możesz użyć dwóch rodzajów algorytmów: algorytmów szyfrowania symetrycznego i algorytmów szyfrowania asymetrycznego. Koncepcja jest taka sama: mogą szyfrować dane, ale działają na innych zasadach i mają inne zastosowania.

Tytułowa różnica opisuje jednak klucze szyfrujące. Algorytm szyfrowania symetrycznego wykorzystuje jeden wspólny klucz do szyfrowania i odszyfrowywania danych. Algorytm szyfrowania asymetrycznego wykorzystuje dwa połączone klucze, jeden do odszyfrowania, a drugi do odszyfrowania.

Terminologia

Algorytmy szyfrowania asymetrycznego polegają na użyciu dwóch różnych kluczy. Jeden klucz może służyć do szyfrowania danych, a drugi do deszyfrowania. Dwa klucze szyfrowania to nie tylko stare dwie wartości. Są one wewnętrznie powiązane i muszą być generowane przez algorytm generowania klucza.

Alternatywną nazwą szyfrowania asymetrycznego jest szyfrowanie z kluczem publicznym. Dzieje się tak, ponieważ jeden z dwóch kluczy ma być publiczny. Tradycyjna koncepcja polega na tym, że klucz szyfrujący jest udostępniany publicznie, a klucz deszyfrujący jest ściśle prywatny. Z tego powodu klucz szyfrujący jest nazywany kluczem publicznym, a klucz deszyfrujący jest kluczem prywatnym.

Ta konfiguracja pozwala każdemu zaszyfrować wiadomość, więc tylko właściciel klucza prywatnego może ją odszyfrować. Jest to przydatne, ponieważ każdy może bezpiecznie komunikować się z zamierzonym odbiorcą za pomocą jednego opublikowanego klucza szyfrowania. Aby bezpiecznie komunikować się z powrotem, odbiorca musiałby użyć klucza publicznego pierwotnego nadawcy.

Teoretycznie nie ma powodu, dla którego nie można zamienić kluczy i udostępnić klucza odszyfrowywania, zachowując prywatność klucza szyfrowania. Można to wykorzystać do zweryfikowania autentyczności źródła, jeśli nie zapewni to żadnego znaczącego bezpieczeństwa. Jednak w praktyce tak się nie dzieje, ponieważ istnieją inne mechanizmy umożliwiające osiągnięcie tego samego rezultatu.

Właściwości algorytmów szyfrowania symetrycznego

Algorytmy szyfrowania asymetrycznego wymagają użycia znacznie większych kluczy niż algorytmy szyfrowania symetrycznego przy zapewnieniu tego samego poziomu bezpieczeństwa. Ogólnie algorytm szyfrowania symetrycznego ze 128-bitowym kluczem szyfrowania jest uważany za bezpieczny, chociaż preferowane są klucze 256-bitowe. W algorytmie szyfrowania asymetrycznego klucze 2048-bitowe są uważane za bezpieczne.

Przykład klucza 2048-bitowego dotyczy RSA, który od dawna jest standardem szyfrowania asymetrycznego. Kryptografia krzywych eliptycznych jest jednak nowszą koncepcją, która jest również asymetryczna, ale wykorzystuje znacznie mniejsze klucze. 2048-bitowy klucz RSA zapewnia bezpieczeństwo równoważne 224-bitowemu kluczowi krzywej eliptycznej.

Wskazówka: Powyższe wartości są uważane za bezpieczne do użytku komercyjnego, ale NSA wymaga silniejszych kluczy do ściśle tajnego szyfrowania. Potrzebne są klucze RSA o długości co najmniej 3072 bitów oraz 384-bitowe klucze krzywych eliptycznych. Warto zauważyć, że 3072-bitowy klucz RSA jest słabszy niż 384-bitowy klucz krzywej eliptycznej.

Algorytmy szyfrowania asymetrycznego są zwykle stosunkowo powolne w porównaniu z algorytmami szyfrowania symetrycznego. Bezpieczna komunikacja może odbywać się przez niezabezpieczony kanał, jeśli obie strony wygenerują asymetryczną parę kluczy, a następnie wymienią klucze publiczne. W ten sposób obie strony mogą wysyłać wiadomości, które tylko druga strona może odszyfrować.

W praktyce przynajmniej jedna ze stron musi zweryfikować integralność swojego klucza publicznego. Odbywa się to za pośrednictwem infrastruktury PKI lub infrastruktury klucza publicznego. Przybiera to formę urzędów certyfikacji, które podpisują klucze innych osób, aby pokazać, że ich tożsamość została zweryfikowana. W tym systemie wszystkie urzędy certyfikacji muszą być zaufane; bez tego system się rozpadnie.

Użyj w praktyce

Algorytmy szyfrowania asymetrycznego zwykle nie są używane do szyfrowania masowego, zwłaszcza gdy problemem jest czas lub wydajność. Mogą być używane do szyfrowania jednorazowych wiadomości, takich jak treść wiadomości e-mail. Jednak ich zdolność do zabezpieczania niezabezpieczonego kanału czyni je doskonałym wyborem dla protokołu wymiany kluczy, który przesyła klucze symetryczne, które można następnie wykorzystać do bardziej wydajnego szyfrowania zbiorczego.

Jest to przypadek użycia w TLS, który zapewnia bezpieczeństwo w HTTPS. Użytkownik łączy się z serwerem WWW; następnie wymieniają klucze publiczne, aby szyfrować między sobą małe wiadomości. Następnie serwer generuje klucz symetryczny, szyfruje go kluczem publicznym użytkownika i wysyła do niego. Użytkownik odszyfrowuje klucz, a następnie może użyć klucza symetrycznego do wydajnego szyfrowania przyszłej komunikacji z serwerem.

Urząd certyfikacji w powyższym procesie weryfikuje klucz publiczny serwera. Dzięki temu użytkownik ma pewność, że komunikuje się z tym, z kim próbuje się komunikować. W większości przypadków użytkownik generuje klucz jednorazowy, ponieważ serwer nie musi weryfikować, z którym użytkownikiem się komunikuje.

Wniosek

Algorytmy szyfrowania asymetrycznego wykorzystują dwa różne klucze. Jeden klucz służy do szyfrowania, a drugi do deszyfrowania. Klucze są powiązane matematycznie i muszą być generowane przez algorytm generowania klucza; losowe wartości nie działają. Zazwyczaj klucz szyfrujący jest udostępniany publicznie, co pozwala każdemu zaszyfrować wiadomość przeznaczoną dla właściciela pary kluczy.

Dopóki klucz deszyfrujący pozostaje prywatny, tylko właściciel klucza może odszyfrować wiadomości zaszyfrowane kluczem publicznym. W związku z tym szyfrowanie asymetryczne jest często nazywane kryptografią klucza publicznego.