Spis treści TI/ Kryptografia Szyfr = algorytm + klucz

Transkrypt

Spis treści TI/ Kryptografia Szyfr = algorytm + klucz
Spis treści
1 TI/ Kryptografia
2 Szyfr = algorytm + klucz
3 Szyfrowanie bez odszyfrowywania?
4 Kryptografia klucza publicznego
TI/ Kryptografia
Internet rozwija się lawinowo po części dzięki zakupom na odległość, usługom bankowym itp.
operacjom, wymagającym przesyłania poufnych wiadomości, jak choćby numer karty kredytowej.
Podstawowa struktura Internetu właściwie uniemożliwia zagwarantowanie, że wysyłanej przez nas
informacji ktoś (poza adresatem) po drodze nie przeczyta. Nie podąża ona konkretnym kablem, lecz
po drodze może przebywać w pamięci kilkunastu komputerów. Nie znaczy to, że nasze listy są po
drodze wywieszane na ogólnodostępnych tablicach ogłoszeń. Ale administrator komputera ma wgląd
we wszystkie pliki — administrator każdego z komputerów, przez które prowadzi droga naszej
przesyłki. Istnieją też inne sposoby na przechwytywanie krążącej w Internecie informacji przez osoby
inne niż adresat.
I choć właściwie nie mamy też gwarancji tajemnicy korespondencji wysyłanej tradycyjną pocztą ani
rozmów telefonicznych, to jednak w Internecie problem wydaje się poważniejszy. Jedynym
rozwiązaniem jest szyfrowanie danych.
Szyfr = algorytm + klucz
Przypomnijmy na przykładzie, jak działa tradycyjna (symetryczna) kryptografia:
Dwie osoby mają dokładnie to samo wydanie pewnej książki. Umawiają się, że każdą
literę w przesyłanych wiadomościach będą zamieniać na numer strony, na której ta litera
jest dziesiąta z rzędu. Taki algorytm szyfrowania natychmiast ujawnia sposób na
odkodowanie: każdą cyfrę z zaszyfrowanej wiadomości zamieniamy na dziesiątą literę na
danej stronie umówionej książki. Po wykonaniu tej żmudnej operacji naszym oczom
powinien ukazać się "jawny" tekst — taki, jaki napisano przed zaszyfrowaniem.
I choć stosowane w praktyce szyfry są nieporównanie bardziej skomplikowane, wyróżnić można dwa
podstawowe elementy: algorytm szyfrowania i klucz. Kluczem jest książka, bez której sama
znajomość sposobu szyfrowania nie zda się na wiele, dzięki czemu zaszyfrowany tekst możemy
przesyłać bez obaw (jeśli użyliśmy "mocnego" szyfru) pocztą elektroniczną. Jednak jeśli do
wiadomości załączymy klucz (przy znanym algorytmie), to szyfrowanie straci sens, bo każdy, kto
przechwyci tekst zaszyfrowany razem z kluczem, będzie mógł go odszyfrować. Dlatego klucz należy
przekazywać tzw. bezpiecznym kanałem informacyjnym, czyli na przykład osobiście.
Wyobraźmy sobie zakupy przez Internet: znajdujemy interesujący nas towar w sklepie na drugiej
półkuli — czemu nie, Internet znosi odległości. Ale żeby zapewnić bezpieczne przesłanie numeru
naszej karty kredytowej, musimy ustalić klucz, wsiadamy więc do samolotu i udajemy się do sklepu
osobiście. Po powrocie do domu dokonujemy bezpiecznie zakupu na odległość, szyfrując dane z
pomocą ustalonego klucza.
Nie, tak źle nie jest. Współczesna matematyka oferuje efektywniejsze sposoby. Aby zrozumieć ich
działanie, rozważmy na początek...
Szyfrowanie bez odszyfrowywania?
Działanie z pozoru bez sensu: zaszyfrować informację tak, aby nikt, nawet autor szyfru ani
szyfrujący, nie mógł jej odczytać. Okazuje się jednak, że ma szereg praktycznych zastosowań.
Przyjrzyjmy się mechanizmowi identyfikacji użytkownika przez system. W systemach Unixowych
hasła użytkowników przechowywane są na dysku w postaci zaszyfrowanej, zaszyfrowane właśnie
takim algorytmem, którego nie da się odwrócić. Gdy wpiszemy hasło, system od razu zamienia je na
postać zaszyfrowaną i porównuje z zaszyfrowanym hasłem użytkownika, za którego się podaliśmy.
Jeśli zgadzają się postacie zaszyfrowane, to znaczy, że wpisaliśmy ten sam ciąg znaków, co właściciel
konta przy ostatniej zmianie hasła.
Główną zaletą tego systemu jest fakt, że hasła przechowywane są wyłącznie w postaci zaszyfrowanej,
której odszyfrowanie jest w zasadzie niemożliwe. Choć, gdyby się nad tym zastanowić, jest wyjątek:
można hasło "zgadnąć". Jeśli zaszyfrujemy kilka "podejrzanych" wyrazów, jak imiona najbliższych i
ulubione sporty użytkownika, to może się zdarzyć, że "trafimy" i otrzymamy identyczny ciąg znaków,
jak zaszyfrowane hasło. Współczesne komputery pozwalają sprawdzać w ten sposób nie tylko kilka
słów, ale całe słowniki. Jednak w obliczu dowolnej kombinacji liter, cyfr i znaków przestankowych o
odpowiedniej długości komputery stają się bezsilne. Oznacza to, że czas potrzebny do "złamania"
odpowiednio długiego hasła może wynosić lata lub nawet sięgać wieku Wszechświata. Dlatego
właśnie jako hasło nie powinniśmy wybierać słów w dowolnym języku, imion, dat — nawet pisanych
wspak. Najlepsze są przypadkowe na pierwszy rzut oka zlepki dużych i małych liter i cyfr. Aby
ułatwić zapamiętanie, można wykorzystać pierwsze litery wyrazów z jakiegoś zdania.
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[1]. 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 odgadnię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.
1. ↑ Przyjmuje się, że technika mogła być znana w tajnych agencjach ok. dekady przed pierwszą
publikacją.

Podobne dokumenty