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(n 2 ). 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 Z n. 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 Z n ) 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 (p n ). 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