Kliknij tutaj - Polskie Towarzystwo Matematyczne

Transkrypt

Kliknij tutaj - Polskie Towarzystwo Matematyczne
Wiad. Mat. 45 (2) 2009, 365–386
c 2009 Polskie Towarzystwo Matematyczne
Recenzje
Johannes A. Buchmann, Wprowadzenie do kryptografii,
przekład W. Guzicki, Wydawnictwo Naukowe PWN SA,
Warszawa 2006, 243+14 str.
Przez całe wieki kryptografia była domeną wojsk, agentów
wywiadów i poszukiwaczy skarbów. Rozwój internetu pod
koniec XX wieku sprawił, że stała się ona stosowanym powszechnie (nie
zawsze świadomie) narzędziem ochrony informacji. Tak wielkie zapotrzebowanie na techniki bezpiecznej komunikacji spowodowało powstanie
bogatej literatury poświęconej tej tematyce. Zaskakującą obserwacją
jest fakt, że wśród wielu dostępnych w księgarniach świetnych książek
poświęconych kryptografii, prawie nie ma dzieł autorów polskich. Specyfika języków naturalnych powoduje, że pewne przykłady stosowania
szyfrów i kryptoanalizy są praktycznie nieprzetłumaczalne na język
polski. Ponadto, w przypadku szybko rozwijających się dziedzin nauki,
łączny czas upływający od zakończenia pracy przez autora do wydania
tłumaczenia jest na tyle długi, że gdy książka trafia do rąk czytelnika,
jest już trochę nieaktualna. Uwagi te w niewielkim stopniu odnoszą się do
omawianej książki, gdyż materiał w niej zawarty mieści się w „twardym
jądrze” współczesnej kryptografii i nie dezaktualizuje się tak szybko,
a przykłady są „ językowo neutralne”. Podręcznik został napisany przez
znanego specjalistę w dziedzinie kryptografii na podstawie wykładów
prowadzonych dla studentów Politechniki w Darmstadt. Polskie wydanie
jest tłumaczeniem drugiego wydania oryginału w języku angielskim.
Materiał zgromadzony w książce można podzielić na kilka wątków, które w pewnych przypadkach są rozproszone w wielu rozdziałach. W wątku matematycznym zebrane są prawie wszystkie pojęcia
366
Recenzje
i twierdzenia elementarnej teorii liczb, algebry, algebry liniowej oraz
rachunku prawdopodobieństwa, stosowane w rozdziałach poświęconych
kryptografii. Wątek ten rozpoczyna się od wprowadzenia do teorii podzielności w pierścieniu liczb całkowitych. Dokładnie omówiony jest
prosty i rozszerzony algorytm Euklidesa oraz jego zastosowania. Następnie pojawiają się pojęcia grupy, pierścienia i ciała. Szczegółowo
opisana jest konstrukcja pierścienia klas reszt modulo m. Oczywiście
w tym kontekście występują kongruencje, chińskie twierdzenie o resztach oraz funkcja i twierdzenie Eulera (nazywane tu małym twierdzeniem Fermata). Przedstawiono również ogólną konstrukcję ciał skończonych jako ciał reszt wielomianów o współczynnikach w ciałach prostych modulo wielomian nierozkładalny. Wśród struktur algebraicznych rozważanych w książce nie mogło zabraknąć grup punktów na
krzywych eliptycznych nad ciałami prostymi. Aby umożliwić analizę
pewnych prostych metod szyfrowania, pojawiają się macierze, wyznaczniki, macierze odwrotne nad pierścieniami przemiennymi i przekształcenia afiniczne. Podstawowe pojęcia rachunku prawdopodobieństwa,
takie jak prawdopodobieństwo warunkowe czy wzór Bayesa, zostały
wprowadzone jako narzędzie do badania bezpieczeństwa algorytmów
szyfrujących. Dokładniej omówione są problemy związane z generowaniem bardzo dużych liczb pierwszych, włącznie z probabilistycznym
testem Millera–Rabina.
Ocena szybkości systemów kryptograficznych i skuteczności ataków
wymaga określenia efektywności algorytmów szyfrowania i deszyfrowania oraz możliwych ataków. Dlatego już na pierwszych stronach książki
znajdujemy pojęcie złożoności obliczeniowej, złożoności wielomianowej i wykładniczej. Podstawą oceny efektywności algorytmów spotykanych w kryptografii jest złożoność obliczeniowa działań arytmetycznych
i podstawowych algorytmów teorioliczbowych. Między innymi pokazano
rzadko spotykany w podręcznikach fakt, że złożoność obliczeniowa rozszerzonego algorytmu Euklidesa dla liczb n-bitowych wynosi O(n2 ).
Jak wiadomo, wiele współczesnych szyfrów można złamać, rozwiązując pewne klasyczne problemy obliczeniowe. Dlatego wiele uwagi poświęcono omówieniu kilku znanych algorytmów rozwiązywania problemów
faktoryzacji liczb naturalnych (metoda p − 1, sito kwadratowe) i logarytmu dyskretnego (algorytm Shanksa, Pollarda, Pohlinga–Hellmana,
metoda obliczania indeksu). Analiza tych algorytmów pokazuje, że ich
złożoność jest większa od wielomianowej, co powoduje, że dla odpowiednio dużych liczb problemy te są praktycznie nierozwiązywalne..
Recenzje
367
W tym wątku występuje najwięcej – przeważnie drobnych – niedokładności, luk i niedopowiedzeń. Na przykład, zasada indukcji matematycznej
jest sformułowana w zwykłej postaci z wartością początkową n = 1. Później bywa stosowana dla innych wartości początkowych, a nawet pojawia
się indukcja wstecz W (n) =⇒ W (n − 1).
Autor rozróżnia pierścień klas reszt Z/nZ od zbioru reprezentantów
klas Zn . Jest to formalnie poprawne, ale dla czytelnika niezbyt biegłego
w matematyce niezrozumiałe, a dla informatyka, który wykonuje obliczenia na konkretnych liczbach (tzn. elementach zbioru Zn ) stanowi
niepotrzebną komplikację. Dodatkowa trudność pojawia się przy definiowaniu rozszerzenia ciała prostego Z/pZ, którego elementami są obiekty
postaci g + f (Z/pZ)[X], gdzie f, g są wielomianami o współczynnikach
w Z/pZ i f jest nierozkładalny. Zdając sobie sprawę z trudnej do ogarnięcia wielopiętrowości tej konstrukcji, autor nie używa już oznaczenia
(Z/pZ)[X]/f (Z/pZ)[X], ale pisze po prostu GF (pn ).
W kolejnym wątku zawarte są teoretyczne podstawy kryptografii.
Znajdujemy tu pojęcie systemu kryptograficznego, szyfru blokowego
i strumieniowego, tryby pracy szyfrów blokowych ECB, CBC, CFB,
OFB. Autor przedstawia kilka historycznych szyfrów zauważając, że
wszystkie należą do klasy szyfrów afinicznych i pokazuje, jak takie szyfry
mogą być efektywnie złamane.
W ramach wprowadzenia do kryptoanalizy możemy poznać klasyfikację typów ataków na systemy kryptograficzne, rolę losowości w szyfrowaniu, oraz matematyczne modele bezpieczeństwa. Pojawia się twierdzenie
Shannona o tajności doskonałej (wraz z dowodem) oraz omawia się
szyfr Vernama.
Autor wielokrotnie zaznacza, że nie są znane żadne dowody, że
przedstawione w książce szyfry są bezpieczne. W praktyce przyjmuje się,
m.in., że bezpieczne są te systemy, których złamanie jest równoważne
z rozwiązaniem pewnego problemu matematycznego, który po wielu
latach badań został uznany za obliczeniowo trudny. Do takich problemów
należą, wspomniane wyżej, problemy faktoryzacji liczb naturalnych
i wyznaczania logarytmu dyskretnego.
Klasyczna kryptografia symetryczna jest reprezentowana przez dwa
szczegółowo przedstawione algorytmy DES i jego następcę AES (Rijndael). Szkoda, że autor nie zdecydował się na zastąpienie DES-a (który już
nie zapewnia wystarczającego bezpieczeństwa, choć nadal funkcjonuje
w wersji 3DES lub DESX) jednym z bardziej nowoczesnych algorytmów,
takich jak CAST, Serpent, Twofish, itp.
368
Recenzje
Następnym zagadnieniem podejmowanym w książce są systemy kryptograficzne z kluczem publicznym. Po omówieniu głównej idei takich
systemów, następuje prezentacja szyfrów RSA, Rabina, ElGamala oraz
protokołu wymiany klucza Diffiego–Hellmana. W każdym przypadku
autor omawia generowanie klucza, szyfrowanie i deszyfrowanie wiadomości oraz efektywność algorytmu. Wątek ten zawiera kilka interesujących
komentarzy, rzadko spotykanych w innych podręcznikach, pokazujących jak niewłaściwy dobór parametrów zwiększa podatność systemów
asymetrycznych na różne ataki.
Głównym zadaniem algorytmów kryptograficznych jest zapewnienie
poufności informacji. Jednak na bazie systemów z kluczem publicznym
można tworzyć inne konstrukcje zwiększające lub zapewniające bezpieczeństwo przetwarzanej informacji. Takie konstrukcje są przedstawione
w pozostałych rozdziałach omawianej książki.
Wątek poświęcony podpisom cyfrowym składa się z dwóch części.
W pierwszej pojawia się pojęcie bezkolizyjnej funkcji skrótu oraz funkcji
kompresji. Dokładniej omówione zostały funkcje jednokierunkowe, które
uniemożliwiają w praktyce tworzenie dokumentów odpowiadających zadanej wartości sygnatury, a następnie opisano atak metodą dnia urodzin.
Autor przedstawia funkcję SHA-1 jako przykład standardowej funkcji
zapewniającej integralność dokumentów. Warto zauważyć, że postęp
w kryptoanalizie jest najbardziej widoczny właśnie w przypadku funkcji
skrótu. Jeszcze niedawno powszechnie stosowane funkcje MD4 i MD5
wychodzą z użycia, odkąd odkryto efektywne algorytmy generowania
kolizji. Podobnie jak w przypadku szyfrów, nie znamy żadnej funkcji
skrótu, której jednokierunkowość potwierdzona jest dowodem matematycznym. Ta pesymistyczna obserwacja została złagodzona przez opis
tzw. arytmetycznej funkcji kompresji, której jednokierunkowość opiera
się na trudności wyznaczania logarytmu dyskretnego. Drugą część tego
wątku tworzą opisy podpisów RSA, ElGamala, DSA oraz podpisów
niezaprzeczalnych (Chauma–van Antwerpena) i tzw. ślepych podpisów
(Chauma). Omówione zostało generowanie klucza, podpisywanie dokumentu, weryfikacja podpisu, oraz efektywność i bezpieczeństwo każdego
schematu. Autor pokazuje, że stosowanie jednokierunkowej funkcji skrótu
nie tylko pozwala tworzyć krótsze sygnatury, ale zdecydowanie utrudnia
sfałszowanie podpisu.
Spośród innych możliwości wykorzystania idei szyfrowania asymetrycznego przedstawiono protokół Shamira podziału sekretu oraz protokoły identyfikacji. Dokładniej omówiono identyfikację typu zapytanie-
Recenzje
369
-odpowiedź, a w szczególności protokół o wiedzy zerowej Fiata–Shamira.
Ostatni rozdział jest poświęcony znaczeniu i realizacji infrastruktury
kluczy publicznych.
Zestaw zadań kończący każdy rozdział pozwala sprawdzić czytelnikowi stopień zrozumienia i przyswojenia poznanej wiedzy. Zadania
mają różny charakter i poziom trudności. Oprócz trywialnych zadań
rachunkowych (np. „wyznacz wszystkie dzielniki liczby 195”) są również
poważniejsze zadania teoretyczne wymagające głębszego zastanowienia.
Zadania o numerach parzystych czytelnik powinien rozwiązać samodzielnie, a odpowiedzi do zadań o numerach nieparzystych są zamieszczone
na końcu podręcznika. Chociaż ta reguła ma kilka wyjątków, to bardzo
ułatwia życie czytelnikowi.
Książka J. Buchmanna jest pomyślana jako kompletne wprowadzenie do współczesnej kryptografii, zawierające szczegółowe omówienie
najważniejszych systemów kryptograficznych wraz z ich podstawami
matematycznymi. Wyróżnia się jasną i przejrzystą konstrukcją logiczną.
Napisana jest prostym i zrozumiałem językiem. Jednak przy bardziej
wnikliwej lekturze powstaje wrażenie, że autor chętnie prześlizguje się
nad pewnymi problemami technicznymi. Liczne niedopowiedzenia powodują, że śledzenie wielu dowodów wymaga od czytelnika dużej kultury
matematycznej i samodzielności, których trudno spodziewać się od
początkujących studentów matematyki czy informatyki. Wykład jest
bogato ilustrowany prostymi przykładami rachunkowymi, które ułatwiają zrozumienie wiedzy teoretycznej, ale nie zawsze ukazują wszystkie
problemy natury obliczeniowej. Autor zastosował trzypoziomowy system
podziału tekstu, co prowadzi do nadmiernego rozdrobnienia. W skrajnych
przypadkach niektóre podpodrozdziały składają się z jednej (czasem
niepełnej) linijki tekstu.
Książka jest wydana dosyć starannie, a naprawdę nieliczne literówki nie utrudniają lektury. Również przekład nie budzi poważniejszych zastrzeżeń, poza jednym wyjątkiem. Występujące w oryginale
angielskie słowo intractable zostało przetłumaczone jako „obliczeniowo niewykonalne”. Zarówno faktoryzacja liczb naturalnych, obliczanie
logarytmów dyskretnych, jak i łamanie większości szyfrów jest „obliczeniowo wykonalne” w tym sensie, że wykonując odpowiednie obliczenia na pewno w skończonym czasie otrzymamy rozwiązanie. Wydaje
się, że określenia „obliczeniowo trudne” lub „praktycznie niewykonalne” lepiej pasują do angielskiego oryginału i kontekstu, w którym jest
on stosowany.
370
Recenzje
Podsumowując, warto zastanowić się, komu można polecić tę książkę.
Pod względem poprawności i ścisłości matematycznej nie zadowoli matematyka, pod względem intuicji i wybranych przykładów nie przekona
informatyka. Myślę jednak, że zarówno matematyk, jak i informatyk
może wiele skorzystać, traktując ją jako lekturę uzupełniającą. Również
amatorom zainteresowanym kryptografią może posłużyć jako ważny
leksykon, który w wielu przypadkach pomoże zrozumieć, jak bezpiecznie
stosować nowoczesne narzędzia ochrony informacji.
Mieczysław Kula (Katowice)
Jan Łukasiewicz, Elementy logiki matematycznej, Reprint.
Wydawnictwo Naukowe UAM, Poznań 2008, 206 str.
Poznański reprint Elementów logiki matematycznej Łukasiewicza stanowi trzecie polskie wydanie tej ważnej pozycji.
Pierwsze wydanie miało miejsce w 1929 roku (z podtytułem:
Skrypt autoryzowany, opracował M. Presburger, Z częściowej subwencji
Senatu Akademickiego Unie Warsz., Nakładem Komisji Wydawniczej Koła Matematyczno-Fizycznego Słuchaczów Uniwersytetu Warszawskiego
1929.) jako skrypt. Jerzy Słupecki przygotował wydanie drugie w formie książkowej (PWN, Warszawa 1958), zaopatrując je w odnośniki,
bibliografię i zmieniając dowód zupełności rachunku zdań zawarty w § 7
(zmiany odpowiadały późniejszym wersjom dowodu podanym przez Łukasiewicza). Reprint powraca do wersji oryginalnej, bez żadnych zmian,
aczkolwiek zawiera notę edytorską (po polsku i angielsku) sporządzoną
przez Romana Murawskiego i Kazimierza Świrydowicza. Powrót do wersji
oryginalnej jest wart szczególnego podkreślenia. Słupecki pominął § 11
oryginału poświęcony metodzie empirycznej. Uzasadnił to tak:
Skreślony [...] został ostatni paragraf Elementów „O rozumowaniu
w naukach przyrodniczych”. Paragraf ten figurujący w wydaniu pierwszym
jako „Dodatek” nie wiąże się z treścią pozostałych paragrafów.
Słupecki miał oczywiście rację wskazując na odrębność § 11. Niemniej jednak, do tradycji nauczania logiki w Polsce międzywojennej
należało poświęcenie przynajmniej jednego wykładu metodologii przyrodoznawstwa. Tak więc skreślenie jednak pozbawiło drugie wydanie
c 2009 Polskie Towarzystwo Matematyczne