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.