Kryptografia. Teoria i praktyka zabezpieczania systemów komputerowych 8320414806, 8320418364, 0471909343, 3540575006, 0387575006, 0387528318, 0471128457, 0471117099

Współczesna kryptografia to klucz do stosowania nowoczesnej technologii informacyjnej. Nic prócz kryptografii nie może b

396 85 4MB

Polish Pages [236] Year 1998

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Kryptografia. Teoria i praktyka zabezpieczania systemów komputerowych
 8320414806, 8320418364, 0471909343, 3540575006, 0387575006, 0387528318, 0471128457, 0471117099

Table of contents :
Przedmowa XIII
Wstęp XIX
Pierwszy rzut oka na kryptografię 1
1.0.1. Szyfrowanie danych...................................................... 3
1.0.2. Podstawowe zastosowania szyfrowania ....................... 4
1.0.3. Historia kryptografii ..................................................... 10
1.0.4. Kontrowersje związane z kryptografią......................... 11
1.0.5. Korzystanie z produktów kryptograficznych ... 13
Podstawowe techniki szyfrowania 15
2.0.6. Podstawienie................................................................. 17
2.0.7. XOR i one-time pad ................................................... 20
2.0.8. S-boksy ......................................................................... 23
Algorytmy symetryczne 27
3.1. DES - Data Encryption Standard.............................................. 29
3.1.1. Szyfrowanie DES-em................................................... 30
3.1.2. Deszyfrowanie DES-em............................................... 32
3.2. Rozszerzenia algorytmu DES ................................................... 34
3.2.1. DESX............................................................................ 34
3.2.2. Trzykrotny DES ........................................................... 34
3.2.3. S-boksy zaleŜne od klucza ........................................... 36
3.3. Szyfrowanie dowolnych tekstów.............................................. 36
3.3.1. Elektroniczna ksiąŜka kodowa...................................... 36
V M. Kutyłowski, W.-B. Strothmann
3.3.2. Cipher Błock Chaining................................................ 38
3.3.3. Cipher Feedback.......................................................... 39

3.4. IDEA ........................................................................................ 40
3.5. RC5 .......................................................................................... 47
Algorytmy asymetryczne 49
4.1. Podstawy teoretyczne ............................................................ 51
4.1.1. Teoria złoŜoności obliczeniowej.................................. 51
4.1.2. Szyfry plecakowe......................................................... 53
4.2. RSA........................................................................................... 56
4.2.1. Algorytm RSA .......................................................... 58
4.2.2. Testy pierwszości......................................................... 61
4.2.3. Aspekty bezpieczeństwa RSA ..................................... 64
4.2.4. Trudne bity kryptogramów RSA.................................. 68
4.3. Algorytm EIGamala.................................................................. 70
Funkcje jednokierunkowe 73
5.0.1. Hard-corebit.................................................................. 76
5.0.2. Zastosowania funkcji jednokierunkowych .... 77
5.0.3. Kandydaci na funkcje jednokierunkowe....................... 77
Jednokierunkowe funkcje hashujące 81
6.1. Podstawowe własności i zastosowania..................................... 83
6.1.1. Bezkonfliktowe funkcje hashujące .............................. 83
6.1.2. Wybrane zastosowania................................................. 85
6.1.3. Ataki przeciw funkcjom hashującym........................... 86
6.2. Hashowanie o dowodliwych własnościach............................... 89
6.2.1. Hashowanie a dyskretny logarytm............................... 89
6.2.2. Rozszerzenie na teksty dowolnej długości................... 91
6.3. Praktyczne algorytmy hashujące .............................................. 92
6.3.1. MD5 ............................................................................. 92
6.3.2. Hashowanie dowolnie długich tekstów........................ 94
VI Kryptografia
Ciągi pseudolosowe 99
7.1. Konstrukcja ciągów pseudolosowych ........................... 101
7.1.1. Własności ciągów pseudolosowych...................... 102
7.1.2. Generatory ciągów pseudolosowych ..................... 104
7.1.3. Pseudolosowość generatora BBS ........................... 107
7.2. Zastosowania ..................................................................... 108
7.2.1. Szyfrowanie strumieniowe .................................... 108
7.2.2. RC4 ........................................................................ 109
7.2.3. Szyfrowanie probabilistyczne................................ 110
Podpisy cyfrowe 113
8.1. Realizacja podpisów cyfrowych........................................ 115
8.1.1. Podpisy cyfrowe EIGamala.................................... 117
8.1.2. DSA ..................................................................... 118
8.2. Protokoły związane z podpisami....................................... 120
8.2.1. Ślepe podpisy......................................................... 120
8.2.2. Kanał podprogowy ................................................ 121
8.2.3. Podpisy niezaprzeczalne .................................... 123
Uwierzytelnianie 129
9.0.4. Protokół challenge and response........................... 131
9.0.5. Dowody interakcyjne ......................................... 132
9.0.6. Dowody z wiedzą zerową ..................................... 135
9.0.7. Protokół Fiata-Shamira.......................................... 138
9.0.8. Protokół Schnorra ............................................... 140
9.0.9. Protokół Guillou-Quisquartera.............................. 143
9.0.10. Podpisy cyfrowe poprzez uwierzytelnianie .... 144
Administracja kluczami 145
10.1. Praktyka gospodarki kluczami ....................................... 147
10.1.1. Urządzenie kryptograficzne................................... 147
10.1.2. Generowanie kluczy .............................................. 148
VII M. Kutyłowski, W.-B. Strothmann
10.1.3. Hierarchia kluczy ......................................................... 150
10.1.4. Przechowywanie kluczy.............................................. 151
10.2. Protokoły uzgadniania kluczy ................................................... 152
10.2.1. Uzgadnianie kluczy poprzez szyfrowanie symetryczne
............................................................................153
10.2.2. Uzgadnianie klucza przez szyfrowanie asymetryczne. 155
10.2.3. Atak man in the middle ............................................... 156
10.2.4. Protokół Diffie-Hellmana i jego pochodne.................. 158
Protokoły kryptograficzne 161
11.0.5. Protokół interlock.......................................................... 163
11.0.6. Dzielenie tajemnic......................................................... 165
11.0.7. Zobowiązanie bitowe ................................................. 167
11.0.8. Pieniądze cyfrowe......................................................... 169
11.0.9. Elektroniczne wybory ................................................... 175
Kryptoanaliza 179
12.1. Podstawowe moŜliwości ataku.................................................. 181
12.2. Algorytmy kryptoanalizy .......................................................... 183

12.2.1. Kryptoanaliza róŜnicowa.............................................. 183
12.2.2. Kryptoanaliza liniowa .................................................. 188
12.2.3. RóŜnicowa kryptoanaliza błędów................................. 190
Wybrane aspekty praktyczne 193
13.1. Plastikowe pieniądze................................................................. 195
13.1.1. Smartcards.................................................................... 195
13.1.2. PIN ............................................................................... 197
13.1.3. Krzywe eliptyczne........................................................ 200
13.2. Zabezpieczanie komunikacji komputerowej............................. 206
13.2.1. Kerberos ....................................................................... 207
13.2.2. Protokół ssh.................................................................. 213
13.2.3. Bezpieczeństwo w WWW i protokół SSL ................... 216
VIII Kryptografia
13.2.4. Zabezpieczanie komunikacji telefonicznej ................... 222
13.3. Szyfrowanie systemu plików..................................................... 224
13.4. Metody zabezpieczania się dla pojedynczego uŜytkownika228

13.4.1. PGP............................................................................... 228
13.4.2. Zabezpieczanie poczty elektronicznej - PEM . . . 229
13.5. Protokoły obrotu finansowego ............................................... 230
13.5.1. Telephone banking ....................................................... 230
13.5.2. ProtokółSET .............................................................. 232
Dodatek: wybrane aspekty teorii liczb 235
Dodatek: teoria algorytmów 243
Słowniczek polsko-angielski 248
Słowniczek angielsko-polski 250
Indeks 253
Literatura 263

Citation preview

Przedmowa

XIII

Wstęp

XIX

Pierwszy rzut oka na kryptografię 1.0.1. Szyfrowanie danych...................................................... 1.0.2. Podstawowe zastosowania szyfrowania ....................... 1.0.3. Historia kryptografii ..................................................... 1.0.4. Kontrowersje związane z kryptografią ......................... 1.0.5. Korzystanie z produktów kryptograficznych ...

1 3 4 10 11 13

Podstawowe techniki szyfrowania 2.0.6. Podstawienie ................................................................. 2.0.7. XOR i one-time pad ................................................... 2.0.8. S-boksy .........................................................................

15 17 20 23

Algorytmy symetryczne 3.1. DES - Data Encryption Standard .............................................. 3.1.1. Szyfrowanie DES-em................................................... 3.1.2. Deszyfrowanie DES-em............................................... 3.2. Rozszerzenia algorytmu DES ................................................... 3.2.1. DESX............................................................................ 3.2.2. Trzykrotny DES ........................................................... 3.2.3. S-boksy zaleŜne od klucza ........................................... 3.3. Szyfrowanie dowolnych tekstów .............................................. 3.3.1. Elektroniczna ksiąŜka kodowa......................................

27 29 30 32 34 34 34 36 36 36 V

M. Kutyłowski, W.-B. Strothmann 3.3.2. 3.3.3.

Cipher Błock Chaining................................................ Cipher Feedback..........................................................

38 39

3.4. IDEA ........................................................................................ 3.5. RC5 ..........................................................................................

40 47

Algorytmy asymetryczne 4.1. Podstawy teoretyczne ............................................................ 4.1.1. Teoria złoŜoności obliczeniowej.................................. 4.1.2. Szyfry plecakowe......................................................... 4.2. RSA........................................................................................... 4.2.1. Algorytm RSA .......................................................... 4.2.2. Testy pierwszości......................................................... 4.2.3. Aspekty bezpieczeństwa RSA ..................................... 4.2.4. Trudne bity kryptogramów RSA.................................. 4.3. Algorytm EIGamala..................................................................

49 51 51 53 56 58 61 64 68 70

Funkcje jednokierunkowe 5.0.1. Hard-corebit .................................................................. 5.0.2. Zastosowania funkcji jednokierunkowych .... 5.0.3. Kandydaci na funkcje jednokierunkowe.......................

73 76 77 77

Jednokierunkowe funkcje hashujące 6.1. Podstawowe własności i zastosowania ..................................... 6.1.1. Bezkonfliktowe funkcje hashujące .............................. 6.1.2. Wybrane zastosowania................................................. 6.1.3. Ataki przeciw funkcjom hashującym........................... 6.2. Hashowanie o dowodliwych własnościach............................... 6.2.1. Hashowanie a dyskretny logarytm............................... 6.2.2. Rozszerzenie na teksty dowolnej długości................... 6.3. Praktyczne algorytmy hashujące .............................................. 6.3.1. MD5 ............................................................................. 6.3.2. Hashowanie dowolnie długich tekstów........................

81 83 83 85 86 89 89 91 92 92 94

VI

Kryptografia Ciągi pseudolosowe 7.1. Konstrukcja ciągów pseudolosowych ........................... 7.1.1. Własności ciągów pseudolosowych...................... 7.1.2. Generatory ciągów pseudolosowych ..................... 7.1.3. Pseudolosowość generatora BBS ........................... 7.2. Zastosowania ..................................................................... 7.2.1. Szyfrowanie strumieniowe .................................... 7.2.2. RC4 ........................................................................ 7.2.3. Szyfrowanie probabilistyczne................................

99 101 102 104 107 108 108 109 110

Podpisy cyfrowe 8.1. Realizacja podpisów cyfrowych........................................ 8.1.1. Podpisy cyfrowe EIGamala.................................... 8.1.2. DSA ..................................................................... 8.2. Protokoły związane z podpisami....................................... 8.2.1. Ślepe podpisy......................................................... 8.2.2. Kanał podprogowy ................................................ 8.2.3. Podpisy niezaprzeczalne ....................................

113 115 117 118 120 120 121 123

Uwierzytelnianie 9.0.4. Protokół challenge and response ........................... 9.0.5. Dowody interakcyjne ......................................... 9.0.6. Dowody z wiedzą zerową ..................................... 9.0.7. Protokół Fiata-Shamira.......................................... 9.0.8. Protokół Schnorra ............................................... 9.0.9. Protokół Guillou-Quisquartera.............................. 9.0.10. Podpisy cyfrowe poprzez uwierzytelnianie ....

129 131 132 135 138 140 143 144

Administracja kluczami 10.1. Praktyka gospodarki kluczami ....................................... 10.1.1. Urządzenie kryptograficzne................................... 10.1.2. Generowanie kluczy ..............................................

145 147 147 148 VII

M. Kutyłowski, W.-B. Strothmann 10.1.3. Hierarchia kluczy ......................................................... 150 10.1.4. Przechowywanie kluczy.............................................. 151 10.2. Protokoły uzgadniania kluczy ................................................... 152 10.2.1. Uzgadnianie kluczy poprzez szyfrowanie symetryczne ............................................................................ 153 10.2.2. Uzgadnianie klucza przez szyfrowanie asymetryczne. 155 10.2.3. Atak man in the middle ............................................... 156 10.2.4. Protokół Diffie-Hellmana i jego pochodne.................. 158 Protokoły kryptograficzne 11.0.5. Protokół interlock.......................................................... 11.0.6. Dzielenie tajemnic......................................................... 11.0.7. Zobowiązanie bitowe ................................................. 11.0.8. Pieniądze cyfrowe ......................................................... 11.0.9. Elektroniczne wybory ...................................................

161 163 165 167 169 175

Kryptoanaliza 179 12.1. Podstawowe moŜliwości ataku.................................................. 181 12.2. Algorytmy kryptoanalizy .......................................................... 183 12.2.1. Kryptoanaliza róŜnicowa.............................................. 183 12.2.2. Kryptoanaliza liniowa .................................................. 188 12.2.3. RóŜnicowa kryptoanaliza błędów................................. 190 Wybrane aspekty praktyczne 13.1. Plastikowe pieniądze................................................................. 13.1.1. Smartcards .................................................................... 13.1.2. PIN ............................................................................... 13.1.3. Krzywe eliptyczne........................................................ 13.2. Zabezpieczanie komunikacji komputerowej ............................. 13.2.1. Kerberos ....................................................................... 13.2.2. Protokół ssh .................................................................. 13.2.3. Bezpieczeństwo w WWW i protokół SSL ................... VIII

193 195 195 197 200 206 207 213 216

Kryptografia 13.2.4. Zabezpieczanie komunikacji telefonicznej ................... 222 13.3. Szyfrowanie systemu plików..................................................... 224 13.4. Metody zabezpieczania się dla pojedynczego uŜytkownika228 13.4.1. PGP............................................................................... 13.4.2. Zabezpieczanie poczty elektronicznej - PEM . . . 13.5. Protokoły obrotu finansowego ............................................... 13.5.1. Telephone banking ....................................................... 13.5.2. ProtokółSET ..............................................................

228 229 230 230 232

Dodatek: wybrane aspekty teorii liczb

235

Dodatek: teoria algorytmów

243

Słowniczek polsko-angielski

248

Słowniczek angielsko-polski

250

Indeks

253

Literatura

263

IX

M. Kutyłowski, W.-B. Strothmann

X

PRZEDMOWA

M. Kutyłowski, W.-B. Strothmann

XII

Do niedawna kryptografia była obiektem zainteresowania w większym stopniu słuŜb wywiadowczych i wojska niŜ przedmiotów gospodarczych i prywatnych osób. Postęp w dziedzinie elektroniki, a zwłaszcza gwałtowny rozwój sieci komputerowych, sytuację tę zmieniły w radykalny sposób. Dawniej, gdy prywatny uŜytkownik dysponował jedynie komputerem PC nie włączonym do sieci, ochrona danych była stosunkowo prosta i zapewniona przez fizyczny dostęp do komputera. Na tej samej zasadzie chronione były dane przechowywane w postaci elektronicznej przez małe firmy, działy firm, organizacje polityczne. Nie skomplikowane protokoły kryptograficzne, ale klucz do pomieszczenia z komputerem czy koperta, w której przesyłana była dyskietka, stanowiły ochronę przed niepowołanym dostępem. Oczywiście, zdarzały się kradzieŜe dyskietek, komputerów, włamania do siedzib partii politycznych ... Większość uŜytkowników nie czuło jednak potrzeby skuteczniejszej ochrony swych danych. Sytuacja zaczęła się radykalnie zmieniać z chwilą gwałtownego rozrostu sieci komputerowych. Dotyczyło to nie tylko sieci obejmujących wiele działów pojedynczych firm, ale i sieci globalne, takie jak Internet (w tym zwłaszcza World Wide Web). Zapewnienie bezpieczeństwa w tych sieciach stało się jednym z pierwszoplanowych zadań decydujących o ich dalszym rozwoju. Nowe techniki telekomunikacyjne, takie jak telefonia komórkowa, telewizja cyfrowa, telebanking itp., nie mogłyby znaleźć swego miejsca w codziennej praktyce, gdyby nie stosowanie technik kryptograficznych dla ochrony dostępu. Najpierw rewolucja objęła komunikację w środowisku naukowym. Pojawienie się poczty elektronicznej umoŜliwiło błyskawiczne kontaktowanie się naukowców z najdalszych krajów. Pozwoliło to na olbrzymi wzrost wydajności w wielu dziedzinach badań. MoŜna by się spodziewać, Ŝe konkurencja i ostra walka o przodownictwo doprowadzą w środowisku naukowym do wielu naduŜyć poczty elektronicznej. Tym XIII

M. Kutyłowski, W.-B. Strothmann bardziej Ŝe nie jest trudno, na przykład, przesłać list podszywając się pod inną osobę. MoŜliwe jest równieŜ przechwytywanie obcej korespondencji. Zjawiska te stanowiły jednak dotychczas w całym środowisku naukowym bardzo wąski margines. Powodem było zapewne to, iŜ komunikowały się osoby, które i tak obdarzały się pełnym zaufaniem. Tak więc metody, które pozwalałyby na zabezpieczenie przed odczytem, modyfikacją czy teŜ preparowaniem listów elektronicznych przez osoby trzecie, nie były stosowane. Te czasy minęły. Wraz z pojawieniem się World Wide Web Internet stał się atrakcyjny dla „szarego uŜytkownika". W Internecie pojawiły się interesujące zasoby informacyjne, dzięki czemu liczba uŜytkowników zaczęła gwałtownie rosnąć. Co więcej, Internet coraz częściej jest uŜywany nie jako narzędzie zabawy czy rozwijania zainteresowań, ale do celów komercyjnych. JuŜ dziś bilety lotnicze kupuję przez Internet, literaturę naukową wybieram przez World Wide Web, a zamiast kupować gazetę z lokalnymi ogłoszeniami, sięgam do jej elektronicznego odpowiednika. W takiej sytuacji będzie coraz więcej osób: hardware tanieje, software staje się coraz łatwiejszy do obsługi przez laika, w wielu krajach połączenia telefoniczne wskutek konkurencji na rynku telekomunikacyjnym stają się tańsze i wyŜszej jakości. Coraz łatwiejsze będzie zatem stanie się kolejnym uŜytkownikiem Internetu. Za parę lat będziemy mieć zapewne do czynienia z sytuacją, gdy Internet będzie największym supermarketem, najobszerniejszą gazetą, największym Hyde Parkiem itp. - przynajmniej w krajach, gdzie usługi telekomunikacyjne będą wystarczająco tanie. Jak kaŜdy wynalazek, rozwój globalnych sieci komputerowych przynosi korzyści, ale i niebezpieczeństwa. Wiele dyskutuje się, na przykład, na temat moŜliwości wykorzystywania Internetu przez organizacje przestępcze. Sytuacja przypomina nieco spory po wynalezieniu samochodu. Nie sposób częściowo nie przyznać racji przeciwnikom automobili, mając przed oczyma tragiczne statystyki o tysiącach ludzi zabitych na drogach. Nie cofnęło to jednak rozwoju motoryzacji, tak jak nie do odwrócenia jest juŜ rozwój globalnej sieci komputerowej na świecie. PoniewaŜ poprzez Internet będą się komunikować nie dobrzy i ufający sobie znajomi, lecz często anonimowi czy wrodzy sobie uŜytkownicy, mijają czasy, gdy niezbyt wiele myślano o bezpieczeństwie danych i komunikacji. Z jednej strony, podłączenie do sieci komputerowych będzie XIV

Kryptografia stanowić warunek wstępny istnienia firm (tak jak posiadanie telefonu, faksu czy adresu pocztowego), z drugiej strony, podłączenie to stanowi o moŜliwości włamań, dewastacji danych i innych działań o charakterze przestępczym. Oczywiście, uŜytkownicy sieci komputerowych będą się bronić przed niepowołanym dostępem do danych i manipulacjami dokonywanymi na nich. Pierwszą linią obrony będą oczywiście systemy operacyjne zarządzające pracą komputerów i wykonywaniem zleceń na rzecz uŜytkowników. W wielu miejscach przesyłane pakiety będą sprawdzane i te o niewłaściwej (niedozwolonej) postaci będą usuwane z ruchu. Równocześnie systemy operacyjne będą przestrzegały, by uŜytkownicy nie dokonywali niedozwolonych operacji. Wskutek złoŜoności stawianych zadań systemy operacyjne będą stawać się coraz bardziej skomplikowane. Tym samym coraz trudniej będzie ich twórcom przewidzieć wszystkie sytuacje tak, aby uniemoŜliwić ominięcie zainstalowanych zabezpieczeń. Dotychczasowe doniesienia z tego pola walki są raczej pesymistyczne dla systemów operacyjnych. Stoją one w obliczu miaŜdŜącej przewagi włamywaczy zwanych hackerami. Hackerzy nie są, jakby się chciało wierzyć, jedynie grupą nastoletnich maniaków komputerowych (czy łagodniej mówiąc, miłośników elektroniki). Jest to grupa o olbrzymim potencjale intelektualnym, nierzadko doskonałym zapleczu sprzętowym i finansowym. Ostatnią szansą na zagwarantowanie bezpieczeństwa danych jest kryptografia. Nie moŜe ona usunąć wszelkich niebezpieczeństw (takich jak na przykład zniszczenie danych przez włamywacza komputerowego), ale w wielu sytuacjach skutecznie pomaga (na przykład uniemoŜliwia odczyt danych przez niepowołaną osobę). W odróŜnieniu od innych metod kryptografia dostarcza metod względnie bezpiecznych. Tak bezpiecznych, Ŝe liniami telekomunikacyjnymi dokonuje się przelewów sum niewyobraŜalnych dla szarego człowieka. I nikt się nie martwi, Ŝe ktoś włączy się na linię i tą drogą powiększy stan swego konta. Paderborn, 1997

Mirosław Kutyłowski

XV

M. Kutytowski, W.-B. Strothmann

XVI

WSTĘP

M. Kutyłowski, W.-B. Strothmann

XVIII

Niniejsza ksiąŜka ma za zadanie w bardzo zwięzły sposób przedstawić podstawowe metody kryptograficzne z punktu widzenia zastosowań praktycznych. Wiele interesujących technik zostało w niej pominiętych. Nacisk został połoŜony na te aspekty, które mają bądź mogą mieć praktyczne zastosowanie. Wskutek tego wiele teoretycznie ciekawych zagadnień świadomie nie jest omówionych w tej ksiąŜce. Z drugiej strony, naszym zamysłem było, na tyle, na ile to jest moŜliwe w tak zwięzłej pozycji, umoŜliwić czytelnikowi zrozumienie matematycznych mechanizmów tkwiących w kryptografii. Bardziej szczegółowe informacje moŜe Czytelnik znaleźć na przykład w pozycji [6] mającej charakter encyklopedii kryptografii.

KsiąŜka ta przeznaczona jest dla studentów informatyki i pokrewnych dziedzin. MoŜe być wykorzystana jako podręcznik do semestralnego wykładu z kryptografii, jak równieŜ jako materiał do samodzielnego studiowania. Do zrozumienia niektórych części ksiąŜki niezbędna jest znajomość pewnych faktów z algebry. Czytelnik nie obeznany z tymi zagadnieniami moŜe znaleźć brakujące informacje w dodatku A. Niekiedy konieczna jest znajomość standardowych faktów z podstaw informatyki wykładanych na pierwszych latach studiów informatyki i pokrewnych dziedzin. Część tych pojęć skrótowo przedstawiamy w dodatku B. KsiąŜka oparta jest na części skryptu do wykładu Mirosława Kutyłowskiego. Wykład ten odbył się na Wydziale Matematyki i Informatyki Uniwersytetu Paderborn w zimie 1995 roku. Wspomniany skrypt obejmuje prócz kryptografii zagadnienia kodów samokorygujących błędy i kompresji danych. Jest on dostępny poprzez World Wide Web pod adresem http://www.uni-paderborn.de/fachbereich/AG/agmadh/WWVV/german/ LehreKuty/ikk95/skript.ps.gz

XIX

M. Kutyłowski, W.-B. Strothmann Lista zauwaŜonych błędów, uzupełnienia do ksiąŜki itp. znajdują się w World Wide Web pod adresem hUp://www.tcs.uni.wroc.pl/mirekk/krypto/

Informacje o zauwaŜonych błędach prosimy przesyłać na adres: [email protected]

Z pewnością ksiąŜka zawiera pewną ilość nieścisłości i błędów. Autorzy nie gwarantują stuprocentowej prawdziwości zawartych w niej informacji. W szczególności nie ponoszą odpowiedzialności za ewentualne szkody, jakie mogą powstać wskutek istnienia luk bezpieczeństwa w przedstawianych algorytmach i protokołach. W ksiąŜce nie staraliśmy się wprowadzać zawsze i wszędzie polskich odpowiedników obcojęzycznych pojęć. Chcieliśmy się ustrzec takich błędów, jakim byłoby na przykład tłumaczenie nazwy Windows 95 na Okna 95. Szereg pojęć angielskich weszło mocno do Ŝargonu informatycznego. Nie próbując podejmować dyskusji, czy jest to zjawisko negatywne, staramy się by język ksiąŜki był jak najbliŜszy temu, czym posługuje się Czytelnik. Dlatego odrzuciliśmy na przykład termin funkcja skrótu jako tłumaczenie hashing fanction. Hashing function nie zawsze bowiem skraca, a jej zasadnicza rolą jest specyficzne mieszanie wartości. Dlatego pozostaliśmy przy terminie funkcja hashująca uŜywaną przez naszych wrocławskich studentów. Pragniemy podziękować licznym osobom za pomoc techniczną i uwagi merytoryczne. W szczególności wymienić naleŜy Guido Haeselera, którego notatki do wykładu były podstawą pierwszej wersji skryptu (i wielu rysunków zawartych w ksiąŜce). Część rysunków została wykonana przez Franka Beste, Ewę Kutyłowską i Matthiasa Rauera. Nieocenioną pomoc w zakresie składania tekstu w ETgX-u wniósł ToMasz Wierzbicki.

XX

ROZDZIAL 1 Pierwszy rzut oka na kryptografię

M. Kutyłowski, W.-B. Strothmann

2

1.0.1. Szyfrowanie danych NajwaŜniejsze pole zainteresowań kryptografii (ale obecnie juŜ nie jedyne) to szyfrowanie dokumentów. Z oryginalnego dokumentu (moŜe to być tekst, zakodowany cyfrowo obraz czy sygnał dźwiękowy) zwanego tekstem jawnym moŜna utworzyć zaszyfrowaną wersję, którą nazywamy kryptogramem. Do zaszyfrowania i deszyfrowania potrzebny jest dodatkowo klucz lub klucze. Tekst jawny P zaszyfrowany za pomocą klucza K oznaczać będziemy EK(P), tekst jawny uzyskany z kryptogramu C za pomocą klucza K' oznaczać będziemy DK,(C). Notacja ta zakłada, Ŝe wiemy, jaką metodę szyfrowania lub deszyfrowania mamy na myśli. Ze względu na własności kluczy rozróŜniamy następujące metody szyfrowania: Algorytmy symetryczne: klucz do szyfrowania oraz do deszyfrowania jest ten sam (lub jeden jest łatwo wyprowadzamy z drugiego). szyfrowanie kluczem K tekst jawny

zaszyfrowany tekst (kryptogram)

deszyfrowanie kluczem K Rysunek 1.1. Symetryczna metoda szyfrowania Algorytmy asymetryczne: (zwane takŜe algorytmami z kluczem jaw3

M. Kutyłowski, W.-B. Strothmann nym lub kluczem publicznym) klucze do szyfrowania i deszyfrowania są róŜne; praktycznie nie powinno być moŜliwe wyprowadzenie z jednego z nich drugiego, pasującego klucza umoŜliwiającego operację odwrotną. Jako podstawową zasadę naleŜy przyjąć, Ŝe deszyfrowanie za pomocą niewłaściwego klucza nie powinno praktycznie dostarczać Ŝadnych informacji o tekście jawnym. W ramach kryptografii rozwaŜamy równieŜ metody łamania szyfrów lub inaczej kryptoanalizy. Chodzi o to by, na przykład, na podstawie kryptogramu znaleźć odpowiadający mu tekst jawny lub zastosowany do szyfrowania klucz. Najprostszą formą kryptoanalizy jest metoda, którą nazywać będziemy systematycznym przeszukiwaniem. Polega ona na rozwaŜeniu wszystkich moŜliwych kluczy (zwykle jest ich skończenie wiele). Na przykład, znając tekst jawny P i odpowiadający mu kryptogram C moŜemy szyfrować P po kolei wszystkimi moŜliwymi kluczami, aŜ napotkamy taki, który daje w wyniku C.

1.0.2. Podstawowe zastosowania szyfrowania 1.0.2.1. Ochrona danych przed niepowołanym odczytem Realizacja tego celu następuje poprzez szyfrowanie danych za pomocą algorytmów symetrycznych. Pola zastosowań: >■ Zapis danych na nośnikach (dyski itp.), które nie dają ochrony przed odczytem przez niepowołane osoby: Dane te zapisywane są jedynie w postaci kryptogramu; tylko posiadacz odpowie d-niego klucza moŜe z kryptogramu odtworzyć oryginalny tekst >■ Zabezpieczenie komunikacji poprzez linie naraŜone na podsłuch: tego rodzaju zabezpieczenie niezbędne jest, na przykład, w przypadku elektronicznego dokonywania operacji giełdowych. Istotnie, podsłuch dokonywanych zamówień dostarczałby informacji pozwalających na efektywną spekulację giełdową. DuŜo groźniejsze niebezpieczeństwa mogą się wiązać z moŜliwościami dokonywania zmian w przesyłanych informacjach, na przykład dla elek4

Kryptografia tronicznego obrotu pieniędzy pomiędzy bankami. Szyfrowanie nie eliminuje fizycznej moŜliwości zakłócenia komunikacji bądź dokonywania modyfikacji. Jednak zmiany dokonywane bez znajomości odpowiedniego klucza powodują powstawanie chaotycznych tekstów po odszyfrowaniu przez odbiorcę uŜywającego prawidłowego klucza. W ten sposób próba oszustwa zostanie wykryta. 1.0.2.2.

Uwierzytelnianie dokumentów

Uwierzytelnianie dokumentów moŜe nastąpić za pomocą algorytmów asymetrycznych. Alice publikuje (na przykład na swej stronie w World Wide Web) jeden z dwu pasujących do siebie kluczy, mianowicie ten słuŜący do deszyfrowania (dlatego klucz ten nazywamy kluczem jawnym lub kluczem publicznym). Drugi z pary kluczy jest przez Alice pilnie strzeŜony i nie jest podawany do niczyjej wiadomości. Klucz ten nazywamy kluczem prywatnym. Alice uwierzytelnia dokumenty poprzez ich szyfrowanie za pomocą jej prywatnego klucza (patrz rysunek 1.2). Jest to moŜliwe poniewaŜ: >- Za pomocą publicznego klucza Alice dowolna osoba moŜe odtworzyć oryginalny tekst. >■ Jeśli kryptogram nie był wygenerowany za pomocą prywatnego klucza Alice, to deszyfrowanie za pomocą klucza Alice daje w wyniku tekst będący chaotycznym ciągiem znaków. Gwarantuje to, Ŝe jedynie posiadacz prywatnego klucza Alice moŜe tą drogą uwierzytelniać dokumenty w imieniu Alice. >• Na tej samej zasadzie pomylenie klucza publicznego w trakcie deszyfrowania równieŜ daje w wyniku tekst będący chaotycznym ciągiem znaków. Dzięki temu nie jest moŜliwe przypisanie tekstu niewłaściwemu autorowi. 1.0.2.3. Ochrona prywatności elektronicznej korespondencji Zalecane jest, aby lektroniczna korespondencja była zabezpieczona za pomocą asymetrycznych algorytmów szyfrujących. Przesyłanie korespondencji elektronicznej łączy się bowiem z wieloma niebezpieczeń5

M. Kutyłowski, W.-B. Strothmann

Tekst oryginalny

kryptogram Szyfrowanie kluczem prywatnym K

Deszyfrowanie kluczem publicznym K’

Alice

Tekst oryginalny

Bob

Rysunek 1.2. Uwierzytelnianie przez szyfrowanie

stwami. Ktoś mający kontrolę nad węzłem Internetu, przez który przesyłany jest list, moŜe list ten zniszczyć, zmodyfikować albo wreszcie przekazać komuś innemu. Aby zapobiec dwóm ostatnim wspomnianym atakom, moŜna uŜyć scenariusza opisanego poniŜej. Przed niszczeniem listów kryptografia nie jest nas w stanie uchronić. ZałóŜmy, iŜ Alice chce bezpiecznie otrzymywać korespondencję. W tym celu Alice musi dysponować parą pasujących kluczy dla asymetrycznego algorytmu szyfrującego. Klucz do szyfrowania zostaje przez Alice opublikowany, na przykład poprzez World Wide Web. Gdy Bob pragnie wysłać list do Alice, wtedy realizowany jest następujący protokół (patrz rysunek 1.3):

>- Bob zaopatruje się w klucz K, publiczny klucz Alice. >- Bob szyfruje tekst swego listu do Alice za pomocą klucza K. >- Bob wysyła zaszyfrowany list pocztą elektroniczną do Alice (w zaleŜności od stosowanego systemu, konieczna moŜe być konwersja pliku zawierającego kryptogram z postaci binarnej na tekstową, by uniknąć zmian wprowadzanych w trakcie transmisji).

6

Kryptografia

Listl Bob

szyfrowanie kluczem publicznym K

Kryptogram 1

J

deszyfrowanie prywatnym kluczem K' Listl

szyfrowanie


■ Alice deszyfruje otrzymany list za pomocą swego prywatnego klucza i otrzymuje w ten sposób oryginalny list. PowyŜszy protokół gwarantuje, Ŝe tylko Alice jest w stanie odkodować przeznaczone do niej listy. Tak więc przechwycenie korespondencji przez osoby trzecie przestaje być niebezpieczne. RównieŜ próby wprowadzania zmian w zaszyfrowanym liście (nawet na ślepo) są skazane na niepowodzenie - wszystkie rozsądne algorytmy szyfrujące mają tę własność, Ŝe zmiana choćby jednego bitu w kryptogramie powoduje olbrzymie zmiany w tekście po deszyfrowaniu, wskutek czego tekst ten ma postać przypadkowego ciągu znaków. Oczywiście, Alice i Bob mogą sobie zagwarantować bezpieczeństwo korespondencji prowadzonej między sobą poprzez stosowanie szyfrowania algorytmem symetrycznym z kluczem znanym jedynie Alice i Bobowi. Zaletą protokołu z uŜyciem asymetrycznego algorytmu jest to, Ŝe Alice i Bob nie muszą uzgadniać stosowanych kluczy oraz Ŝe Alice moŜe ograniczyć się do posiadania jednej pary kluczy dla korespondencji prowadzonej z duŜą liczbą osób. Protokół nadaje się więc dobrze 7

M. Kutyłowski, W.-B. Strothmann do korespondencji pomiędzy osobami sporadycznie kontaktującymi się oraz gdy Alice otrzymuje listy od duŜej liczby osób. 1.0.2.4.

Elektroniczny notariusz

Do notariusza zgłaszamy się w dwóch waŜnych sytuacjach: 1. Gdy chcemy urzędowo potwierdzić istnienie dokumentu. W tym przypadku moŜemy dodatkowo pragnąć, by proces potwierdzania nie ujawniał jego treści (bo moŜe być to, na przykład, opis nowej, wartościowej technologii). 2. Jeśli chcemy zagwarantować, aby w jakimś dokumencie (na przykład umowie handlowej) nie były dokonywane zmiany przez nieuczciwego partnera. W obu przypadkach wystarcza sporządzenie dla wspomnianego dokumentu czegoś w rodzaju odcisków palców - krótkiego ciągu symboli, który praktycznie jest dla kaŜdego tekstu inny. Takie „odciski palców" moŜna na przykład opublikować jako ogłoszenie w codziennej prasie. Zdobywamy w ten sposób dowód istnienia dokumentu. Aby dowód ten był niezaprzeczalny, musimy zagwarantować kilka własności. Do sporządzania „odcisków palców" uŜywamy tak zwanych jednokierunkowych funkcji hashujących. Mówimy, Ŝe H jest jednokierunkową funkcją hashującą, o ile spełnione są następujące warunki: >- Dla kaŜdego X łatwo jest obliczyć H(X). >■ H(X) ma ustaloną długość dla wszystkich tekstów X (w ten sposób długość H(X) nie zdradza Ŝadnych informacji o tekście X). *- Dla zadanego Y znalezienie X takiego, Ŝe H(X) = Y, jest praktycznie niemoŜliwe. Dotyczy to w szczególności systematycznego przeszukiwania wszystkich moŜliwych tekstów. Wynika stąd, Ŝe ciągi H(X) muszą być wystarczająco długie, by takie systematyczne przeszukiwanie było praktycznie beznadziejne. Gdy wartości funkcji hashującej składają się z 128 bitów, to mamy do dyspozycji 2128 moŜliwych wartości. Liczba ta jest praktycznie nieskończona (dla porównania, według niektórych teorii całkowity okres trwania wszechświata bywa szacowany na 261 sekund!). 8

Kryptografia W istocie na własności jednokierunkowych funkcji hashujących nakładane są duŜo bardziej rygorystyczne warunki (patrz rozdział 6). W celu „notarialnego" potwierdzenia posiadania dokumentu X naleŜy obliczyć wartość H(X) i opublikować ją lub umieścić u notariusza (rolę notariusza moŜe przejąć specjalnie zabezpieczony program sieciowy). Później, gdy pragniemy udowodnić posiadanie dokumentu X, przedstawiamy X i wskazujemy na miejsce, gdzie podaliśmy wcześniej wartość H(X). Sprawdzenie polega na obliczeniu wartości H(X) dla podanego tekstu X i porównaniu jej z wartością wcześniej opublikowaną lub złoŜoną u notariusza. W celu zagwarantowania, iŜ tekst X (na przykład umowa) nie ulegnie modyfikacjom, równieŜ obliczamy wartość H(X). Wartość tę moŜemy następnie dołączyć do dokumentu (na przykład dla wykrycia przypadkowych błędów powstałych w trakcie transmisji danych) lub opublikować czy złoŜyć u notariusza (dla ochrony przed postępowaniem nieuczciwego partnera umowy). ZauwaŜmy, Ŝe opisana metoda mogłaby, na przykład, pozwalać na proste sprawdzanie autentyczności programów komputerowych. Jednym z trudniejszych do wykrycia ataków na system komputerowy jest bowiem wprowadzanie tzw. koni trojańskich - programów z punktu widzenia uŜytkownika zachowujących się w sposób dokładnie taki sam, jak programy oryginalne, jednakŜe wykonujących pewne dodatkowe funkcje (na przykład samopowielanie w przypadku wirusów czy przekazywanie informacji na zewnątrz w przypadku szpiegostwa gospodarczego). O ile jednak producent programu X zamieści wartość H(X) na przykład w World Wide Web, wtedy osoba posiadająca program X moŜe w kaŜdym momencie obliczyć wartość funkcji H dla posiadanego programu i porównać ją z wartością H(X) dostępną publicznie. ZauwaŜmy, Ŝe metoda ta pozwala na wykrycie zmian dokonywanych w programie przez jakiekolwiek wirusy, te znane, jak i nieznane lub jeszcze nienapisane. Istotną cechą tej metody jest to, Ŝe producent nie musi upubliczniać programu X, a mimo wszystko pełna weryfikacja oryginalności jest moŜliwa. Tym samym producent ma szanse sprzedaŜy dalszych kopii programu X. O ile dysponujemy funkcją hashującą generującą krótkie ciągi liter, to telefonicznie moŜna sprawdzić oryginalność dokumentów przesłanych elektronicznie (osoby poznające się po głosie mogą sprawdzić, czy war9

M. Kutyłowski, W.-B. Strothmann tości funkcji hashującej dla wysłanego i otrzymanego dokumentu są takie same). Tą drogą moŜna na przykład telefonicznie sprawdzić oryginalność kluczy publicznych generowanych przez system PGP. Przykłady, jakie przedstawiliśmy powyŜej, to tylko niektóre z dzisiejszych perspektyw zastosowania kryptografii. JuŜ po tych przykładach widać jednak, Ŝe pole zastosowań kryptografii wykracza daleko poza klasyczne szyfrowanie danych (choćby do celów militarnych). Niektóre inne zastosowania będą przedstawione w dalszej części tej ksiąŜki. Inne znajdzie Czytelnik w bogatej literaturze fachowej dotyczącej kryptografii.

1.0.3. Historia kryptografii JuŜ w staroŜytności stosowane były pewne metody szyfrowania wiadomości o charakterze strategicznym. Ciekawe jest, Ŝe stopień wyrafinowania tych metod był znacząco niŜszy niŜ stan wiedzy matematycznej w kaŜdej właściwie epoce. Stosowane metody były dawniej zazwyczaj dość prymitywne i pozwalały na złamanie szyfrów dostatecznie zdeterminowanemu przeciwnikowi. Sytuacja uległa zmianie juŜ w pierwszej połowie dwudziestego wieku. Zbudowano wtedy wiele systemów szyfrowania za pomocą urządzeń mechanicznych i wykorzystywano je powszechnie podczas drugiej wojny światowej. Część z tych systemów została skutecznie złamana (na przykład, niemiecki system Enigma). Prawdziwą rewolucję pod względem projektowania systemów szyfrujących przyniósł rozwój elektroniki, dający olbrzymie moŜliwości operacji obliczeniowych niskim kosztem. Rozwój kryptografii od swych początków był bardzo silnie związany z celami wojskowymi. W związku z tym wszelkie prace z dziedziny kryptografii miały charakter tajny i ich rezultaty nie były publikowane lub wykorzystywane w sektorze cywilnym do lat siedemdziesiątych. Naukowcy prowadzący badania w kryptografii znajdowali się pod ścisłą kontrolą organów bezpieczeństwa. Publikowanie prac następowało sporadycznie i niekiedy jedynie poprzez niedopatrzenie organów kontrolnych. Prawdziwy przełom pod względem rozwoju kryptografii nastąpił w latach siedemdziesiątych wraz z odkryciem asymetrycznych algorytmów szyfrujących. Olbrzymie zainteresowanie w środowiskach nauko10

Kryptografia wych spowodowało lawinowy wzrost ilości prowadzonych badań, juŜ poza kontrolą aparatów bezpieczeństwa poszczególnych państw. Intensywna wymiana informacji, jaka ma miejsce od tego czasu, pozwoliła na ogromny rozwój wiedzy w tej dziedzinie. W wielu krajach stosowanie metod kryptograficznych jest nadal zabronione lub ograniczone. W wielu krajach, skądinąd demokratycznych, gdzie obywatele cieszą się duŜym zakresem wolności, podejmowane są próby ustanowienia kontroli państwa nad stosowaniem metod kryptograficznych. W szczególności dotyczy to, na prs^ykład, Wspólnoty Europejskiej. TakŜe w USA forsowano uŜywanie Clippera, tj. układu elektronicznego słuŜącego do szyfrowania, jednak pozwalającego na łamanie kryptogramów przez słuŜby bezpieczeństwa. Doprowadziło to teŜ do tak spektakularnych kroków, jak zakaz uŜywania technik kryptograficznych do celów prywatnych w Rosji. Ograniczaniu moŜliwości stosowania metod kryptograficznych sprzeciwiają się bardzo gwałtownie środowiska gospodarcze. Wskazują na niezbędność jej stosowania w gospodarce w niereglamentowany sposób. W obecnej chwili wydaje się, Ŝe jednym z niezbędnych warunków rozwoju gospodarczego jest rozbudowa globalnej sieci komputerowej pełniącej funkcję infrastruktury informacyjnej gospodarki. PoniewaŜ w sieciach tego typu nie da się raczej zagwarantować bezpieczeństwa przed włamaniami komputerowymi, dane muszą być zabezpieczane w inny sposób. Jedyna droga do realizacji tego celu wiedzie poprzez wykorzystanie technik kryptograficznych. Podnoszone są argumenty, mówiące, Ŝe wprowadzenie ograniczeń stosowania kryptografii nieuchronnie powoduje spadek atrakcyjności danego kraju dla aktywności gospodarczej.

1.0.4. Kontrowersje związane z kryptografią Kryptografia potrafi zagwarantować ochronę danych przed dostępem niepowołanych osób. Jest to moŜliwe nawet wtedy, gdy właściciel danych za takowe uwaŜa organy ścigania. Dopuszczenie stosowania tych metod uniemoŜliwia zatem dokonywanie „rewizji" policyjnych w systemach komputerowych. Tak więc dokonywanie elektronicznego przetwarzania danych w ramach działalności przestępczej nie musi nieść ze sobą niebezpieczeństwa dostarczenia organom ścigania materiału doli

M. Kutyłowski, W.-B. Strothmann wodowego w przypadku przechwycenia danych. Pozwala to równieŜ na korzystanie z powszechnie dostępnych sieci, takich jak Internet, do działalności przestępczej. Z moŜliwości tych korzystają zapewne juŜ teraz organizacje działające na krawędzi prawa lub teŜ wbrew prawu. W obliczu powyŜszych zagroŜeń w wielu państwach organy bezpieczeństwa (czasami demokratycznie wybrane, czasami będące aparatem politycznej represji) starają się zabronić bądź ograniczyć stosowanie metod kryptograficznych. Druga z tych opcji polega na dopuszczeniu jedynie takich metod, które mogą zostać złamane przez organy bezpieczeństwa (wskutek słabości tych metod, konieczności przekazywania uŜywanych kluczy organom bezpieczeństwa bądź dzięki wbudowanym do algorytmów „ukrytym drzwiom" pozwalającym na deszyfrowanie bez znajomości kluczy). Przeciwnicy stosowania ograniczeń w stosowaniu kryptografii wskazują, iŜ środowiska przestępcze byłyby i tak w stanie korzystać z technik kryptograficznych bez moŜliwości udowodnienia im tego przez organy ścigania. Problem polega na tym, iŜ kryptogramy mają charakter losowych ciągów znaków i są od nich nieodróŜnialne. Z drugiej strony, losowy charakter mają szumy zawarte w kaŜdym kodowanym cyfrowo obrazie czy dźwięku. Tym samym przestępca działający w ramach zorganizowanych grup moŜe ukryć przekazywaną wiadomość na przykład w zdjęciu Tatr umieszczonym na swej stronie WWW. Co więcej, z niektórych form kryptografii juŜ nie jesteśmy w stanie zrezygnować, choćby w obrocie bankowym. PoniewaŜ wiele metod uŜywa losowych ciągów znaków jako niezbędnych parametrów, przestępca moŜe zamiast nich uŜywać kryptogramów z przestępczymi informacjami. Znów, nie wzbudzi to Ŝadnych podejrzeń, a tak przekazywane wiadomości będą odróŜnialne od naprawdę losowych ciągów jedynie dla posiadaczy tajnego klucza (przykład takiej sytuacji opisujemy dokładniej w rozdziale 8.2.2). Reasumując, wydaje się, iŜ postulowane ograniczenia są w stanie być skuteczne jedynie w odniesieniu do osób czy organizacji nie parających się działalnością przestępczą. Spowodowałoby to zatem skutek odwrotny do zamierzonego - organizacje przestępcze byłyby w uprzywilejowanej pozycji wobec reszty społeczeństwa, która nie byłaby w stanie bronić swych danych wobec działań kryminalnych.

12

Kryptografia

1.0.5. Korzystanie z produktów kryptograficznych Upublicznienie kryptografii pozwala na bardziej wiarygodną weryfikację oferowanych programów i sprzętu kryptograficznego. Nie moŜna bowiem w tym względzie polegać na reklamie samych firm. Wadliwość oferowanego produktu nie jest bowiem widoczna gołym okiem, a często bez niesłychanie kosztownego badania produktu nie jest się równieŜ w stanie o tym przekonać. MoŜna sformułować następujące zasady dotyczące praktycznego stosowania produktów kryptograficznych w sytuacjach, gdy rzeczywiście bezpieczeństwo ma kluczowe znaczenie: >-

Jako względnie bezpieczne mogą być uznane jedynie programy czy teŜ specjalny hardware oferowany poprzez znane firmy o niezaprzeczalnej reputacji. Najlepiej, gdy produkty te posiadają certyfikaty odpowiednich państwowych urzędów kontrolnych (jak na przykład NIST w USA). Programy i urządzenia kryptograficzne powinny realizować powszechnie znane, popularne i przetestowane rozwiązania. Proces testowania powinien mieć następujący przebieg: 1. Propozycja metody, wraz z jej szczegółowym opisem, musi być podana do wiadomości publicznej. Bezpieczeństwo metody nie moŜe opierać się na utajnieniu jej sposobu działania. Wiadomo, Ŝe i tak pewna grupa osób uzyska do takich informacji dostęp (choćby pracownicy firmy oferującej produkt). Grupa ta moŜe następnie wykorzystywać je na szkodę uŜytkownika produktu. 2. Propozycja musi wzbudzić powszechne zainteresowanie zarówno środowisk naukowych, jak i businessu oraz muszą być prowadzone nad nią intensywne badania. 3. Jeśli po dłuŜszym czasie nie ma znaczących postępów prowadzących do złamania metody, a teoretyczne badania zdają się potwierdzać jej bezpieczeństwo (na przykład poprzez redukcję znanych trudnych zagadnień obliczeniowych do zagadnienia złamania proponowanego szyfru), wtedy metodę tę moŜna uznać za względnie bezpieczną i dopuścić do uŜytku. 13

M. Kutyłowski, W.-B. Strothmann Jeśli jakikolwiek z powyŜszych warunków nie jest spełniony, algorytmu nie moŜna uznać za bezpieczny. >- Niezbędne jest ciągłe śledzenie rozwoju stanu wiedzy kryptograficznej. Postępy w tej dziedzinie mogą spowodować moŜliwość łamania algorytmów dawniej uznawanych za bezpieczne. (Tego typu sytuacja nastąpiła, na przykład, w odniesieniu do długości kluczy dla systemu RSA wskutek postępów w zakresie algorytmów rozkładających liczby na czynniki pierwsze.) Czasami jakość software'u i hardware'u kryptograficznego jest powiązana z czynnikami politycznymi, takimi jak ograniczenia eksportowe. Na przykład, tak zwane wersje międzynarodowe produktów firm amerykańskich gwarantują jedynie bardzo niski poziom bezpieczeństwa. Poziom ten jest tak niski, Ŝe programy te nie wymagają zezwoleń eksportowych w bardzo restrykcyjnym ustawodawstwie USA.

14

Rozdział 2 Podstawowe techniki szyfrowania

M- Kutyłowski, W.-B. Strothmann

16

W niniejszym rozdziale przedstawiamy kilka klasycznych technik szyfrowania. Techniki te bywają składnikami wielu bardziej zaawansowanych algorytmów, dlatego poświęcimy im chwilę uwagi.

2.0.6. Podstawienie Niech 7r : Z —)■ Z będzie permutacją, Z zaś zbiorem uŜywanych liter. Tekst jawny aia2. ■ ■ an (gdzie «, 6 Z) jest szyfrowany jako ciąg 7r(fl1)7r(a2) • • • n(an). Kryptogrambi.. .bn deszyfrowywany jest jako 7r_1(Ł>i).. . 7r_1(frn). Przykład: szyfry Cezara. Litery alfabetu moŜna utoŜsamiać z liczbami. W systemie Cezara uŜywanych jest 26 liter odpowiadających liczbom od 0 do 25.7r(i) := i + 3 mod 26 dla i e {0,... , 25}. 2.0.6.1.

Analiza częstotliwości

Słabością szyfrów opartych na podstawieniach jest to, Ŝe mogą one być złamane poprzez analizę częstotliwości występowania poszczególnych liter alfabetu. Litery alfabetu nie występują bowiem z jednakową częstotliwością - analiza tych częstotliwości w zaszyfrowanych tekstach pozwala na zgadnięcie niektórych wartości permutacji 7r. Dla przykładu przyjrzyjmy się przeciętnej częstotliwości występowania liter w tekstach w języku angielskim. Najczęściej spotykaną literą jest E i obejmuje około 12,3% wszystkich wystąpień. Na drugim biegunie leŜą litery takie jak Y, B, G, V, K, Q, X, J, Z. KaŜda z nich występuje z częstością poniŜej 2%. Ostatnie cztery podane litery mają nawet częstości nie przekraczające 0,2%! Grupa liter o częstościach powyŜej 6% teŜ nie jest liczna i zawiera, prócz wspomnianej juŜ litery E, jedynie T, A, O, N, I, S,R. 17

M. Kutyłowski, W.-B. Strothmann Kryptoanaliza polega na sporządzeniu tabeli częstotliwości występowania liter w zaszyfrowanym tekście i porównania go z powyŜszą tabelą- Na tej podstawie moŜna, na przykład, zlokalizować prawdopo-dobAe wartości dla 7r(E), 7r(T), TT(A). Po przyjęciu hipotetycznych wartości dla tych liter, szukamy w kryptogramie sekwencji liter odpowiadających typowym s"łowom, ta'k'im ja~k na przykład „the77.Pozwala to na zweryfikowanie hipotezy i przyjęcie prawidłowych wartości dla E, T, A. Po ustaleniu tych wartości moŜemy pokusić się o odgadnięcie 7r(H) tak, by utworzyć odpowiednio duŜo słów „the" w tekście jawnym. Postępowanie to kontynuujemy, dysponując coraz to większymi porcjami tekstu jawnego. Sposobem na utrudnienie analizy częstotliwości jest szyfrowanie poprzez podstawienie nie pojedynczych liter, ale bloków liter określonej długości (tj. k TT : ~L —)• £*). Mamy wtedy bowiem do czynienia z mniejszymi dysproporcjami w zakresie średniej częstotliwości występowania poszczególnych konfiguracji liter w bloku; w szczególności prawdopodobieństwa te stają się stosunkowo małymi liczbami. Utrudnia to odgadnięcie wartości podstawienia ix. W szczególności kryptoanaliza wyrfiaga duŜo dłuŜszych kryptogramów, aby móc skorzystać z jakichkolwiek statystycznych prawidłowości.

klucz: kwadrat 5x5 zawiera wszystkie litery z wyjątkiem J, które w tekście jawnym zastępujemy poprzez I

POS AMD \T

P

V

Z L hasło: „POSZŁA MAŁPA DO PIWNICY" I W pozostałe litery F G H K Q""

w kolejności

alfabetycznej RTUVX

Rysunek 2.1. System Playfair'a - kwadrat szyfrujący Przykładem systemu, w którym koduje się bloki długości 2 jest system 18

Kryptografia

szyfrowanie: K

p OS ZL A M IW N CY B E F GH KQ

OH - rogi prostokąta K; OH zastępowany jest poprzez litery znajdujące się w pozostałych rogach prostokąta K, tj. przez SG

RTUVX szyfrowanie tekstu jawnego KR|OW|A I| WE|SZ TT(KR) = FV, TT(OW) = LM, TT(AI) = MW, TT(WE) = AN; TT(SZ) = ZŁ

Rysunek 2.2. System Playfair'a - szyfrowanie Playfair'a przedstawiony na rysunkach 2.1 i 2.2. Jest to prosty system, w którym wszelkie operacje szyfrowania i deszyfrowania mogą być z łatwością dokonane ręcznie. System oczywiście gwarantuje tylko bardzo niewielki zakres bezpieczeństwa i moŜe być traktowany jako dygresja w stronę metod historycznych (stosowanych w trakcie pierwszej wojny światowej). Szyfrowaniu podlegają pary liter, przy czym uŜywamy 25 liter (25 duŜych liter alfabetu angielskiego, jedna z liter, mianowicie J, jest w tekstach zastąpiona przez I). Do szyfrowania i deszyfrowania uŜywany jest kwadrat 5 x 5, w który wpisujemy kolejne litery występujące w haśle (na rysunku 2.1 hasłem jest „POSZŁA MAŁPA DO PIWNICY"), przy czym pomijamy powtarzające się litery. Gdy po wpisaniu tych liter zostały jeszcze wolne miejsca w kwadracie, to umieszczamy tam jeszcze niewpisane litery w kolejności alfabetycznej. W ten sposób wypełniamy kwadrat 25 literami. Szyfrowanie przebiega następująco. ZałóŜmy dla przykładu, Ŝe chcemy zaszyfrować parę OH według klucza z rysunku 2.1. Litery O oraz H wyznaczają prostokąt « w kwadracie do szyfrowania, w którego pozostałych rogach znajdują się S i G (patrz rysunek 2.2). Reguła szyfrowania mówi, Ŝe OH zastępujemy właśnie tymi literami, tj. SG. Gdy para liter, jaką zamierzamy zaszyfro19

M. Kutyłowski, W.-B. Strothmann wać, leŜy w jednej kolumnie lub jednym wierszu (i wobec tego nie definiuje prostokąta), to litery te zastępujemy parą liter leŜącą na prawo od nich, na przykład SY zastępujemy przez ZB, parę WE zaś przez AN (litery leŜące w pierwszej kolumnie z prawej strony zastępujemy literami z ostatniej kolumny). Ogólnie rzecz biorąc, podstawienie nie oparte o długie bloki lub o prostych zasadach generowania permutacji z klucza moŜe być podatne na analizę częstotliwości. Z tego względu podstawienie naleŜy traktować raczej jako technikę wykorzystywaną jako element pomocniczy bardziej złoŜonych metod.

2.0.7. XOR i one-time pad Operacja XOR (eXclusive OR) jest zdefiniowana jak następuje: 0 XOR 0=1 XOR 1 = 0,1 XOR 0 = 0 XOR 1 = 1. Jeśli mamy do czynienia z dwoma ciągami bitów A = a\... ak, B = b\... bk, to przez A XOR B rozumiemy ciąg c\... ck powstały z dokonania operacji XOR na odpowiadających sobie bitach obu ciągów: ci = fli XOR b\, c2 = a-i XOR b2, ..., ak XOR bk.

Szyfrowanie za pomocą XOR: załóŜmy, Ŝe tekst jawny jest ciągiem bitów A =