Internet: Szyfrowanie i klucze publiczne
Nazywam się Mia Gil-Epner; studiuję informatykę na Berkeley i pracuję w
Departamencie Obrony, gdzie staram się zabezpieczać informacje.
Internet jest systemem otwartym i publicznym. Wszyscy wysyłamy i odbieramy informacje wspólnymi
przewodami i łączami. Lecz choć jest to system otwarty, wymieniamy się wieloma
danymi prywatnymi. Numerami kart kredytowych, danymi bankowymi, hasłami i
e-mailami. Jak zatem utrzymać je w tajemnicy? Wszelkie dane można zachować
w tajemnicy dzięki szyfrowaniu wiadomości lub zmienianiem ich treści, aby ukryć tekst
oryginalny. Rozszyfrowanie to proces odwrotny, pozwalający odczytać wiadomość.
Koncepcja jest prosta, stosowana od lat. Jedną z pierwszych znanych metod
był "Szyfr Cezara". Pochodzący od Juliusza Cezara, rzymskiego wodza, który
szyfrował rozkazy, by mieć pewność, że nie zostaną odczytane, gdy wpadną w ręce wroga.
Szyfr Cezara to algorytm, w którym każdą literę wiadomości oryginalnej
zastępuje się inną literą, znajdującą się kilka miejsc dalej w alfabecie.
Jeśli liczbę tych miejsc zna tylko nadawca i odbiorca, stanowi ona klucz.
Klucz pozwala czytającemu odczytać tajną wiadomość. Na przykład wiadomość "HELLO"
zakodowana algorytmem tego szyfru z kluczem 5 wyglądałaby tak.
Odbiorca używa klucza, aby odwrócić proces i odkodować wiadomość.
Z "Szyfrem Cezara" łączy się jednak duży problem - każdy może łatwo odkodować
zaszyfrowaną wiadomość próbując każdego możliwego klucza, a alfabet angielski
liczy tylko 26 liter, co oznacza, że trzeba wypróbować zaledwie 26 kluczy, by odczytać wiadomość.
Nie jest to trudne zadanie. Wystarczy godzina, no, dwie.
Utrudnijmy więc zadanie. Zamiast przesuwać każdą literę o tę samą liczbę miejsc,
przesuńmy każdą o inną liczbę miejsc. W tym przykładzie klucz dziesięciocyfrowy
pokazuje, o ile zmieni się każda kolejna litera, aby zaszyfrować dłuższą wiadomość.
Odgadnięcie tego klucza będzie bardzo trudne. Użycie szyfru 10-cyfrowego daje
10 miliardów ewentualnych kombinacji. Żaden człowiek tego nie złamie,
zajęłoby to wieki. Wypróbowanie 10 miliardów opcji zajmie obecnie komputerowi kilka sekund.
We współczesnym świecie złoczyńcy są wyposażeni w komputery zamiast ołówków,
jak zatem szyfrować wiadomości tak, by nie dało się ich złamać? Obecnie zbyt
trudno oznacza za dużo opcji, by je wyliczyć w rozsądnym czasie. Dziś
bezpieczne przekazy szyfruje się kluczem 256-bitowym. Oznacza to, że komputer,
który przechwyci taką wiadomość, musi wypróbować zbyt wiele opcji zanim znajdzie
klucz i odczyta treść. Nawet mając 100 000 komputerów, a każdy mógłby wypróbować
milion miliardów kluczy co sekundę, wypróbowanie każdej opcji trwałoby biliony
bilionów lat tylko, aby odczytać jedną wiadomość chronioną szyfrem 356-bitowym.
Oczywiście czipy komputerowe co roku stają się 2 razy szybsze i o połowę mniejsze.
Jeśli tempo będzie rosnąć w postępie geometrycznym, problemy nierozwiązywalne dziś, za kilkaset lat
staną się bułką z masłem, przy czym klucz 256-bitowy nie będzie żadną ochroną.
Właściwie to już musieliśmy rozbudować klucz, aby dostosować go do tempa rozwoju komputerów.
Rozbudowanie klucza nie utrudnia szyfrowania, ale geometrycznie
zwiększa liczbę prób potrzebnych do złamania szyfru. Gdy nadawca i odbiorca
mają ten sam klucz do szyfrowania i odszyfrowania wiadomości mówi się o
"Szyfrowaniu symetrycznym". Podobnie, jak u Cezara, dwie osoby muszą z góry
ustalić tajny klucz. Z ludźmi nie ma problemu, ale internet jest otwarty i
publiczny. Nie ma możliwości prywatnego "spotkania" dwóch komputerów, aby ustalić
tajny klucz. Komputery korzystają z kluczy "Szyfrowania asymetrycznego".
Klucz publiczny można udostępnić każdemu, ale prywatny już nie.
Klucz publiczny służy do szyfrowania danych i każdy może go użyć do stworzenia tajnej wiadomości.
Ale sekret może złamać tylko komputer z dostępem do klucza prywatnego.
Dochodzi tu do głosu matematyka, w którą nie będziemy wchodzić. Wyobraźcie sobie prywatną skrzynkę pocztową,
do której każdy może wrzucić list, ale do tego potrzebny jest klucz.
Można zrobić wiele egzemplarzy tego klucza, przekazać znajomemu, czy udostępnić publicznie.
Każdy będzie mógł użyć klucza publicznego, aby mieć dostęp do otworu wlotowego i
wrzucić wiadomość. Ale tylko wy możecie otworzyć skrzynkę kluczem prywatnym i
mieć dostęp do wszystkich tajnych wieści. Możecie też wysłać bezpieczną odpowiedź
koledze korzystając z klucza publicznego.bezpieczne W taki sposób ludzie mogą wymieniać tajne
wiadomości bez konieczności ustalenia klucza prywatnego. Szyfrowanie publicznego
klucza stanowi podstawę bezpiecznej wymiany wiadomości w otwartym Internecie.
Z uwzględnieniem protokołów bezpieczeństwa SSL i TLS, które chronią nas, gdy jesteśmy
w Internecie. Używają ich współczesne komputery, zawsze, gdy widać małą kłódkę
albo litery https na pasku adresu. Oznacza to, że komputer korzysta z szyfrowania, aby
bezpiecznie wymieniać wiadomości na stronie, na której jesteście.
Coraz więcej osób przesyła przez internet coraz bardziej prywatne wiadomości, a ochrona
staje się coraz ważniejsza. Komputery pracują coraz szybciej i będziemy musieli
opracowywać nowe sposoby tworzenia szyfrów trudnych do złamania.
Tym zajmuję się w pracy. I to stale się zmienia.