HomeAbout MeSecurityDCLinuxEee PCMusic3D GraphicsRobotsContact Me

Szyfrowanie na przyszłość
12 Maj 2003

Kryptografia kwantowa, steanografia i teoria ukrytych kanałów to trzy najważniejsze kierunki rozwoju współczesnej kryptografii.

Tomasz Grabowski

Od początku swojego istnienia kryptografia była domeną wojskową, a informacje o dorobku w tej dziedzinie ściśle reglamentowano. To m.in. dlatego właśnie współczesna kryptografia jest, jak na naukę powiązaną z matematyką teoretyczną i fizyką, całkiem młoda. Pierwsza obszerna praca naukowa na temat metod szyfrowania to „The Index of Coincidence and Its Applications in Cryptography” Williama F. Friedmana, która ukazała się w 1918 r. Pozycja ta wciąż uważana jest za jedną z najbardziej znaczących prac kryptoanalitycznych XX w.

Wyraźny wzrost zainteresowania kryptografią jako dziedziną naukową przypadł na lata 30. i 40. ubiegłego stulecia. Jedną z najważniejszych publikacji z tego okresu jest „The Communication Theory of Secrecy Systems” autorstwa Claude’a Shannona. Z dużą dozą prawdopodobieństwa książka ta została odtajniona przez pomyłkę, była bowiem opisem prac doświadczalnych prowadzonych przez autora podczas II wojny światowej.

Prawdziwym przełomem w dziedzinie publicznie dostępnej literatury na temat kryptografii była legendarna już dziś książka Davida Kahna pod znamiennym tytułem „The Codebreakers”, wydana w 1967 r. Pozwoliła ona dziesiątkom tysięcy ludzi zaznajomić się z podstawowymi teoriami oraz praktycznymi aspektami kryptografii. Ciekawostką jest fakt, że w owym czasie niektóre rozdziały tej książki były tajne również w Polsce.

Dziś literatura kryptograficzna – nawet ta bardzo zaawansowana – jest dostępna praktycznie każdemu. Można odnieść wrażeniem że w książkach i artykułach specjalistycznych napisano o kryptografii tyle, że nie ma w niej już nic tajemnego. To jednak tylko wrażenie. Mimo pozornej dostępności, rozwojowi tej dziedziny cały czas towarzyszy otoczka tajemnicy i niedopowiedzeń, a czasem wręcz utrudnianie niezależnych prac nad nią.

Jednak prace nad kryptografią – i te ukryte i te publiczne – cały czas trwają. Ich efektem są techniki, algorytmy i koncepcje, które legną zapewne u podstaw „szyfrowania przyszłości”. Wśród wielu kierunków współczesnych badań nad kryptografią trzy zasługują na szczególną uwagę: kryptografia kwantowa steganografia oraz tzw. ukryte kanały.

Kwantowe podsłuchy

Wykrycie podsłuchu w sieci telefonicznej czy radiowej jest praktycznie niemożliwe. Oczywiście, można argumentować, że przy dostatecznie czułym pomiarze napięcia w sieci telefonicznej lub miejscowych zmian natężenia mocy fal radiowych fakt podsłuchu da się zidentyfikować. Zakładając jednak, że podsłuch jest prowadzony „profesjonalnie”, jest to w praktyce niewykonalne.

Świat cząstek elementarnych rządzi się nieco innymi prawami. Kryptografia kwantowa (ang. quantum cryptography) wykorzystuje fakt, że – zgodnie z zasadami mechaniki kwantowej – nie można zmierzyć jakiejkolwiek wartości cząstki elementarnej (np. fotonu) bez wywarcia wpływu na jej stan. Pomiar prędkości fotonu może wpływać na jego rzeczywistą prędkość, zmianę położenia lub kąta polaryzacji.

Dla bezpieczeństwa informacji oznacza to tyle, że każda próba podsłuchania bądź przechwycenia transmisji realizowanej przy pomocy cząstek elementarnych zostanie natychmiast wykryta. Dziedziną, w której kryptografia kwantowa budzi największe nadzieje jest bezpieczna wymiana kluczy szyfrujących pomiędzy stronami biorącymi udział w komunikacji.

To, co dobrze wygląda w teorii nie musi jednak koniecznie udać się w praktyce. Najlepszym, bo najprostszym sposobem do przekazywania zer i jedynek z użyciem fotonów wydaje się nadawanie im różnego kąta polaryzacji. Tu jednak pojawia się problem: istniejące urządzenia laserowe generują wiązki o stałej polaryzacji. Możliwość szybkiej zmiany polaryzacji światła jest, przynajmniej na razie, jedną z poważniejszych barier dla rozwoju kryptografii kwantowej.

Kolejnym źródłem kłopotów jest niedoskonałość ośrodków, w których przesyłane jest światło. Nawet w najlepszej klasy światłowodach pewna część fotonów zanika. W prowadzonych obecnie doświadczeniach kodowanie informacji opiera się, umownie rzecz biorąc, na kilku fotonach o takich samych właściwościach. Nawet jeżeli część z nich po drodze zaginie, te które dotrą do celu przeniosą właściwą informację. Metoda ta, choć wydaje się sensowna, stawia jednak pod znakiem zapytania cały sens kodowania kwantowego. Skoro jeden foton może zniknąć bądź zmienić właściwości, czy nie stanowi to dostatecznej furtki dla podsłuchu? Do tego dochodzą zakłócenia zewnętrzne. Oczywiście, istnieją metody ich niwelowania, czyż jednak nie mogą one posłużyć jako narzędzie, dzięki któremu fakt podsłuchu będzie można ukryć?

Próby z kodowaniem kwantowym prowadzone są od kilku lat. Eksperymenty z transmisją napowietrzną pokazały, że możliwe jest przysyłanie danych z kodowaniem kwantowym na dystansie ok. 10 kilometrów. Gęstość powietrza maleje wraz ze wzrostem wysokości, możliwe więc, że w pewnych warunkach metodę tę można by zastosować do łączności pomiędzy stacjami naziemnymi a satelitami znajdującymi się na niższych orbitach. To znów jednak tylko teoria, a nawet gdyby tak było, to wciąż za mało – zarówno z punktu widzenia operatora jak i użytkownika Internetu.

Powyższe problemy implementacyjne to tylko wierzchołek góry lodowej całej masy innych problemów, przed którymi stoi kryptografia kwantowa. Można więc przypuszczać, że jeszcze długo nie wyjdzie ona poza mury laboratoriów, pozostając przede wszystkim dziedziną ćwiczeń intelektualnych.

Szpiegowskie transmisje

Jednym z podstawowych mankamentów wszystkich stosowanych dziś metod szyfrowania transmisji jest fakt, że podsłuchujący jest w stanie wykryć sam fakt przesyłania danych. Cóż bowiem z tego, że szpieg działający zagranicą zaszyfruje informacje wysyłane do swojego macierzystego kraju, skoro sam fakt uruchamiania szyfrowanych transmisji może wzbudzić podejrzenia? Poza tym, nawet jeżeli podsłuchujący nie wie, co zawierają zaszyfrowane pakiety, może próbować je zarejestrować w oryginalnej kolejności i na tej podstawie próbować odgadnąć klucz.

Ukrywaniem transmisji zajmuje się jedna z dziedzin kryptografii – steganografia. Jej wykorzystanie polega na ukrywaniu poufnych danych wewnątrz danych jawnych, np. kodowaniu komunikatów tekstowych jako ciągu pikseli w obrazku JPG (metoda ta była opisywana szerzej w CW XX/2002). Steanografia wymaga jednak bezpośredniej komunikacji nadawcy z odbiorcą. Wady tej pozbawiona jest technika polegająca na zestawianiu tzw. ukrytych kanałów (ang. covert channels). Ukryty kanał komunikacyjny polega na komunikowaniu się za pomocą stanu bądź ułożenia obiektów, które jako takie nie służą do przesyłania danych. Oto przykład.

Wyobraźmy sobie system komputerowy, którego użytkownicy nie mogą się ze sobą komunikować. Ukryty kanał powstaje wtedy, jeżeli obie strony potrafią identycznie interpretować określone ciągi zdarzeń. Może to być np. informacja o ilości wolnego miejsca na dysku, współdzielenie pamięci, procesora, urządzenia, przerwania itp. Posługując się uzgodnionym wcześniej kodem, obie strony mogą wysyłać do siebie informacje.

Przykładowo, proces A, który  odbiera wiadomość, może co 100 ms żądać jakiegoś przerwania. Proces B również może zażądać tego przerwania, jednak każde jego żądanie wydłuży czas obsługi żądania procesu A. Mierząc czas, jaki upłynął od momentu wysłania żądania, do momentu jego otrzymania od systemu operacyjnego, proces A jest w stanie stwierdzić, czy proces B zażądał przerwania w tym samym czasie, czy też nie i każdy z tych dwóch stanów traktować jako 1 lub 0. Przykłady można oczywiście mnożyć. Dokładny techniczny opis wielu podobnych technik przesyłania danych znajduje się w opublikowanym w USA przez National Security Agency dokumencie „NCSC-TG-030: A Guide to Understanding Covert Channel Analysis of Trusted Systems”.

Szczeciński eksperyment

Szyfrowanie oparte na ukrytych kanałach nie jest tylko czystą teorią. Chcąc to udowodnić, w Akademickim Centrum Informatyki Politechniki Szczecińskiej stworzyliśmy oprogramowanie służące do zestawiania ukrytego kanału pomiędzy przeglądarką, a serwerem WWW.

Treść tajnej wiadomości przekazywana jest w następujący sposób: przeglądarka (odbiorca wiadomości) wysyła do serwera (nadawcy) żądanie o pewną dynamicznie generowaną stronę WWW. Serwer przekazuje wszystkie dane dotyczące tej strony w postaci wielu różnych plików: tekstu, grafiki itp. Kodowanie ukrytego komunikatu opiera się na kolejności, rodzaju oraz liczbie przesyłanych plików.

Analiza ruchu czy nawet treści przesyłanych informacji na nic się w tym wypadku zda. Ten, kto nie zna metody kodowania, nie jest w stanie odszyfrować ukrytej informacji. Nie wie nawet, że jakakolwiek komunikacja ma miejsce. Ze względu na sposób kodowania, pojedyncza transmisja umożliwia przesłanie kilkudziesięciu znaków ASCII. To jednak wystarczy, by przesłać np. nazwę użytkownika i hasło.
 
 
 
***RAMKA***
Kryptografia kwantowa: przesyłanie danych za pomocą protokołu BB84.

Zgodnie z prawem niepewności Heisenberga, nie istnieje możliwość dokładnego zmierzenia dwóch wzajemnie zależnych wielkości opisujących stan cząstki elementarnej, bez zmiany choćby jednej z nich. Zasada ta leży u podstaw kryptografii kwantowej. Przykładem wielkości, których nie da się jednoznacznie określić w jednym momencie czasu jest np. prędkość i położenie fotonu. Z punktu widzenia kryptografii wygodniejsze jest posłużenie się kątami polaryzacji (kierunkami drgania) fotonów. To na nich właśnie opiera się opracowany w 1984 r. protokół BB84 wykorzystujący prawo niepewności kwantowej do bezpiecznej wymiany kluczy szyfrujących pomiędzy odległymi od siebie stronami.

Foton może być spolaryzowany prostokątnie – pionowo lub poziomo – lub też ukośnie – pod kątem 45 lub 135 stopni (patrz Rysunek 1). Płaszczyzny polaryzacji, zwane też bazami, oznaczamy następująco:

+  -  baza prostokątna
x  -  baza ukośna

Kierunki polaryzacji fotonów oznaczamy w następujący sposób:
|  -  kierunek pionowy
– - kierunek poziomy
\  -  kierunek ukośny lewy
/  -  kierunek ukośny prawy

Jeżeli foton jest spolaryzowany prostokątnie, kąt jego polaryzacji można poprawnie zmierzyć jedynie przy pomocy odbiornika mierzącego polaryzację prostokątną. Jeżeli zaś foton jest spolaryzowany ukośnie, kąt jego polaryzacji można poprawnie zmierzyć jedynie przy pomocy odbiornika ustawionego na odbiór ukośny. Jeżeli więc foton drga w jednym z kierunków prostokątnych, pomiar polaryzacji przy bazie ukośnej będzie błędny – i odwrotnie.

Algorytm BB84 działa następująco. Alice i Bob, chcąc nawiązać między sobą bezpieczną komunikację generują określoną liczbę fotonów (w tym wypadku 12) o losowo dobranej polaryzacji (cztery możliwe kierunki drgania fotonów), a następnie wysyłają je do partnera.

Gdy Alice wysyła fotony, Bob ustawia odbiornik losowo na odbiór prostokątny lub ukośny i próbuje odczytać kąt ich polaryzacji. Jeżeli odbiornik Boba jest ustawiony ukośnie i nadlatujący foton również jest spolaryzowany ukośnie, jego polaryzacja zostanie odczytana prawidłowo. Gdy przy ukośnie ustawionym odbiorniku foton ma polaryzację pionową, odczyt będzie błędny. Za każdym razem Bob ma wiec 50% szans, że polaryzacja fotonu zostanie odczytana, niemniej Bob notuje wszystkie kolejno odczytane wartości.

Gdy wszystkie 12 fotonów dotrze na miejsce, Bob informuje Alice, jak ustawiał odbiornik dla każdego kolejnego fotonu, nie mówiąc jednak, jakie konkretnie wartości odczytał. Na tej podstawie Alice, wiedząc jaka była polaryzacja wysłanych przez nią fotonów, informuje Boba, że nie pomylił się w odczycie, załóżmy: pierwszym i czwartym (patrz Tabela 1.).

Równie dobrze jednak Bob mógł źle odczytać polaryzację za każdym razem, albo też część fotonów w ogóle do niego nie dotarła (puste pola w tabeli). W każdym razie, wartości, które zostały odczytane prawidłowo mogą, po powtórzeniu podobnych prób potrzebną ilość razy, utworzyć po każdej ze stron klucz szyfrujący dla sesji.

Jeżeli strony dojdą do wniosku, że komunikacja szyfrowana ustanowionym w ten sposób kluczem przestała być bezpieczna (rosnąca liczba fotonów, których polaryzacja została nieprawidłowo odczytana pomimo zgodności ustawień nadajnika i odbiornika, co może sugerować podsłuch), procedura generowania klucza jest powtarzana. Dla podwyższenia bezpieczeństwa transmisji, rzeczywisty klucz może zostać utworzony przez zastosowanie dowolnej funkcji typu hash.

Tabela 1.
Przykładowe wartości polaryzacji przekazywane przez Alice do Boba

Alice wysyła do Boba:

-

|

|

-

-

|

|

Bob ustawia odbiornik:

+

x

+

x

x

x

+

x

x

+

+

+

Bob odczytuje:

-

-

 

 

 

 

Bob przekazuje Alice:

+

x

+

x

x

x

 

x

x

 

 

 

Alice odpowiada:

OK

 

 

OK

 

 

 

 

 

 

 

 

                  
Źródło: opracowanie własne