do góry         o książce


5.5.1 Kryptografia klucza publicznego

Nadszedł czas na rozwiązanie ,,nierozwiązywalnego'' problemu: bezpiecznej wymiany danych bez uprzedniego ustalania tajnego klucza. Znaleziono je całkiem niedawno -- pierwsza publiczna wzmianka pochodzi z roku 1976 5.9.

Proces przebiega według schematu ,,tradycyjnego'' szyfrowania z kluczem, jednak algorytm wykazuje zasadniczą różnicę: znajomość klucza, użytego do szyfrowania (klucza szyfrującego), nie pomoże w rozszyfrowaniu! Wydawałoby się, że wracamy tu do sytuacji z poprzedniego rozdziału. Jednak clou tej fascynującej techniki polega na tym, że wiadomość można odszyfrować, ale z pomocą innego klucza! Innego oznacza, że nie da się go odtworzyć z pomocą klucza szyfrującego (stąd określenie ,,kryptografia asymetryczna'').

Mamy więc parę kluczy: szyfrujący i deszyfrujący. Parę taką możemy utworzyć z pomocą komputera (i odpowiedniego programu) w minutę. Jednak ,,zgadnięcie'' jednego z nich na podstawie znajomości drugiego jest równie mało prawdopodobne, jak zgadnięcie hasła opisane w poprzednim rozdziale.

Wyobraźmy sobie teraz, że po wygenerowaniu takiej pary klucz deszyfrujący pozostawiamy w bezpiecznym miejscu, a klucz szyfrujący udostępniamy do publicznej wiadomości (na przykład umieszczamy na swojej stronie WWW). Wtedy dowolna osoba może zaszyfrować z jego pomocą wysłaną do nas wiadomość i mieć całkowitą pewność, że odczytamy ją tylko my -- jeśli strzegliśmy dostatecznie swego tajnego klucza deszyfrującego.

No właśnie, dowolna osoba. Ta procedura nie daje nam możliwości upewnienia się, od kogo tak naprawdę dostaliśmy wiadomość! Ale i na to jest rada. Wyobraźmy sobie, że zamiast klucza szyfrującego podajemy do publicznej wiadomości nasz klucz odszyfrowujący. Wtedy możemy do dowolnej osoby wysłać wiadomość zaszyfrowaną naszym tajnym kluczem szyfrującym. Jeśli adresat odszyfruje wiadomość naszym upublicznionym kluczem deszyfrującym, to ma pewność, że wiadomość zaszyfrowaliśmy my, a nie kto inny. Jest to nasz elektroniczny podpis, bez porównania trudniejszy do sfałszowania od podpisu na papierze. W zasadzie można uznać, że jeśli pilnujemy dostatecznie swoich tajnych kluczy, to podpis taki, w przypadku klucza o odpowiedniej długości, jest nie do podrobienia.

Połączenie tych dwóch procedur umożliwia jednocześnie identyfikację nadawcy (podpis cyfrowy) i zachowanie tajemnicy korespondencji: jeśli obie strony upubliczniły klucze szyfrujący z jednej i deszyfrujący z drugiej pary, wystarczy wiadomość zaszyfrować najpierw naszym tajnym kluczem szyfrującym, a potem publicznym kluczem szyfrującym adresata. Adresat jest jedyną osobą, która może odwrócić drugi etap szyfrowania. Z kolei jeśli wynik daje się odszyfrować naszym publicznym kluczem deszyfrującym, to znaczy, że tylko my mogliśmy wykonać pierwszy etap szyfrowania.

Poziom bezpieczeństwa (wiarygodności) tego typu podpisów przerasta nieporównywalnie wszelkie tradycyjne podpisy i pieczątki. Jednak rodzi się ciekawe pytanie -- o tożsamość osoby podpisującej. W przypadku podpisu na papierze jesteśmy raczej na stałe związani z ręką, która wiedzie pióro. Natomiast w przypadku podpisu elektronicznego tożsamość sprowadza się do szeregu cyfr...

W praktyce takiej wymiany kluczy dokonują automatycznie współczesne przeglądarki, gdy łączymy się ze stronami, które wymagają szyfrowania informacji (w każdej chwili możemy się dowiedzieć, czy aktualna sesja jest szyfrowana). Natomiast w przypadku poczty elektronicznej szyfrowanie nie jest jeszcze zbyt powszechne; jeśli nie używają go osoby, z którymi korespondujemy, to sprawa nie będzie prosta. Jeśli mimo to zależy nam na takiej możliwości, możemy spróbować przekonać naszych korespondentów. Moduły szyfrowania znajdują się w większości współczesnych programów pocztowych, warto też zajrzeć na stronę jednego z pierwszych publicznie dostępnych pakietów -- pretty good privacy ( http://www.pgpi.org).


do góry o książce
Dalej: 6. Przejawy rewolucji cyfrowej Do góry: 5.5 Kryptografia i zakupy przez Wstecz: Szyfrowanie bez odszyfrowywania?