WST P DO KRYPTOGRAFII Grzegorz Szkibiel Jesie«2012/13
Spis tre±ci 1 Kryptograa a steganograa 5 1.1 Steganograa........................... 6 1.2 Szyfry przestawieniowe...................... 8 1.3 Systemy kryptograczne..................... 9 2 Klasyczne metody szyfrowania 12 2.1 Szyfry cykliczne.......................... 12 2.2 Monoalfabetyczny szyfr Beauforta................ 13 2.3 Kody aniczne jednowymiarowe................. 14 2.4 Permutacje alfabetu....................... 15 2.5 Analiza cz sto±ci wyst powania liter............... 16 2.6 Homofony i nulle......................... 17 2.7 Jednostki dwuliterowe czyli digramy............... 18 2.8 Szyfr Playfaira.......................... 20 2.9 Podwójny szyfr Playfaira..................... 21 2.10 szyfr Delastelle'a......................... 22 2.11 Jednostki wieloliterowe...................... 23 2.12 Szyfry polialfabetyczne...................... 23 2.13 Ša«cuch szyfrów i DES...................... 28 3 Maszyny szyfruj ce 32 3.1 Zasada dziaªania......................... 32 3.2 Jak zªamano szyfr ENIGMY................... 36 4 Macierze szyfruj ce 41 4.1 Algebra liniowa modulo N.................... 41 4.2 Szyfry Hill'a............................ 44 4.3 Aniczne przeksztaªcenia szyfruj ce............... 48 2
5 Pakowanie plecaka 50 5.1 Postawienie problemu....................... 50 5.2 Szybko rosn ce ci gi....................... 51 5.3 Kryptosystem oparty na problemie pakowania plecaka............. 53 6 Systemy z publicznym kluczem 56 6.1 Numeryczna funkcja jednokierunkowa.............. 57 6.2 Funkcje skrótu.......................... 58 6.3 poufno± i autentyczno±...................... 58 6.4 Wymiana kluczy......................... 60 6.5 2-1 funkcje jednokierunkowe................... 60 7 System RSA 62 7.1 Rozkªad liczb na czynniki.................... 62 7.2 Liczby wybrane losowo...................... 63 7.3 Zasada dziaªania systemu RSA................. 64 7.4 Wpadka systemowa wspólny moduª............... 65 7.5 Wpadka systemowa niski wykªadnik............... 65 8 Teorio-liczbowe podstawy RSA 67 8.1 Systemy pozycyjne........................ 67 8.2 Iterowane podnoszenie do kwadratu............... 69 8.3 Twierdzenie Eulera i Maªe Twierdzenie Fermata.................... 69 8.4 liczby pseudo-pierwsze...................... 71 8.5 Chi«skie twierdzenie o resztach................. 74 8.6 Kongruencje stopnia 2...................... 77 8.7 Gra w orªa i reszk przez telefon................. 80 9 Zastosowania arytmetyki modulo m do rozkªadu liczb 83 9.1 Wzory skróconego mno»enia................... 83 9.2 Metoda ρ rozkªadu na czynniki................. 85 9.3 Metoda faktoryzacji Fermata................... 87 9.4 Bazy rozkªadu........................... 88 3
10 Logarytm dyskretny 92 10.1 Poj cie logarytm dyskretny................... 92 10.2 System DiegoHellmana uzgadniania klucza........................ 93 10.3 System kryptograczny Masseya-Omury............ 95 10.4 System ElGamala......................... 96 11 Protokoªy o zerowej wiedzy i przekazy nierozró»nialne 97 11.1 Kolorowanie mapy........................ 97 11.2 Logarytm dyskretny....................... 99 11.3 Przekazy nierozró»nialne..................... 100 11.4 Dowód faktoryzacji........................ 102 4
Rozdziaª 6 Systemy z publicznym kluczem Jak ju» zauwa»yli±my przy okazji omawiania systemu kryptogracznego opartego o problem pakowania plecaka, istniej szyfry, których klucz szyfruj cy jest a» tak ró»ny od klucza rozszyfrowuj cego,»e ten pierwszy mo»na bez obawy poda do publicznej wiadomo±ci. Tego rodzaju kryptosystem nazywamy szyfrem o kluczu publicznym. Przy okazji takiego systemu mo»emy mówi o tworzeniu pewnej sieci u»ytkowników, z których ka»dy ma swój (jawny) klucz szyfruj cy oraz (tajny) rozszyfrowuj cy. Gdyby±my chcieli utworzy tego rodzaju sie maj c do dyspozycji jedynie szyfry klasyczne, to ka»dy z u»ytkowników musiaªby pami ta klucze szyfruj ce wszystkich u»ytkowników oraz klucz rozszyfrowuj cy wiadomo± od ka»dego u»ytkownika. Je»eli tych u»ytkowników byªoby n, to ka»dy z nich miaªby do zapami tania 2(n 1) kluczy, a w caªej sieci byªoby 2n(n 1) kluczy. Co gorsza, u»ytkownicy musieliby mie do siebie peªne zaufanie, poniewa» ka»dy z kluczy szyfruj cych jest te» kluczem rozszyfrowuj cym. System kryptograczny z kluczem publicznym zdecydowanie ogranicza liczb kluczy. Dokªadnie, liczba kluczy dla caªej sieci, to tylko n. Ka»dy z u»ytkowników pami ta wi c tylko jeden klucz swój rozszyfrowuj cy, natomiast klucze szyfruj ce podane s w swego rodzaju ksi»ce telefonicznej. Znajomo± tych kluczy nie jest równoznaczna z dost pem do ka»dej wiadomo±ci, jaka si pojawia w sieci. Systemy kryptograczne, w których znajomo± klucza szyfruj cego oznacza praktycznie znajomo± klucza rozszyfruj cego nazywamy systemami symetrycznymi. Pozostaªe systemy, czyli systemy o kluczu publicznym nazywamy systemami asymetrycznymi lub niesymetrycznymi. 56
6.1 Numeryczna funkcja jednokierunkowa Aby zbudowa omawiany wy»ej kryptosystem oraz sie jego u»ytkowników, potrzebne nam b dzie poj cie funkcji jednokierunkowej. Poj ciem funkcja okre±la tu b dziemy raczej schemat lub algorytm szyfrowania ni» funkcj w ±cisªym znaczeniu. W ka»dym razie jest to funkcja ªatwa do obliczenia w jednym kierunku, ale bardzo trudna do obliczenia w kierunku przeciwnym. Czyli, znaj c argument bez trudu obliczamy warto± funkcji, ale znajomo± warto±ci funkcji nie pozwala nam obliczy argumentu, dla którego ta warto± jest przyjmowana. Na przykªad, aby obliczy iloczyn dwóch liczb 500- cyfrowych, nowoczesne komputery potrzebuj kilku mikrosekund. Jednak»e, aby rozªo»y na czynniki liczb 1000 cyfrow, te same komputery potrzebuj wieków. Idea funkcji jednokierunkowej pojawiªa si w 1974, jednak wydaje si»e jest ona nieco starsza. W 1968 roku, kiedy rodziª si system operacyjny UNIX, potrzebny byª solidny system zabezpieczania informacji. Rozwi zano to w ten sposób,»e kiedy u»ytkownik po raz pierwszy wprowadza hasªo lub je zmienia, jest ono zaszyfrowane, a gdy hasªo to jest wprowadzane ponownie, system szyfruje je i porównuje z wcze±niej zaszyfrowan wersj. Pierwszy szczegóªowy opis funkcji jednokierunkowej opublikowaª G. Purdy w 1974 roku. Opisana wtedy funkcja, to f : F p F p, gdzie p = 2 64 59, a funkcja jest okre±lona wzorem f(x) = x 224 +17 + a 1 x 224 +3 + a 2 x 3 + a 3 x 2 + a 4 x + a 5, gdzie wspóªczynniki a i byªy pewnymi liczbami 19cyfrowymi. Zauwa»my,»e obliczenie funkcji odwrotnej do powy»szej nie jest niemo»- liwe, tylko po prostu zajmuje du»o czasu. Do tej pory nie przedstawiono funkcji,,czysto jednokierunkowej, tj. takiej, która po upªywie jakiego± czasu nie przestaªa by jednokierunkow. Nie udowodniono nawet,»e taka funkcja istnieje lub te»,»e nie isnieje. Ciekawy przykªad funkcji jednokierunkowej przedstawiª A. Salomaa tak»e w 1974 roku. Jego pomysª polegaª na wykorzystaniu ksi»ki telefonicznej. Numer telefonu oznaczaª pierwsz liter nazwiska abonenta. Bardzo ªatwo jest zakodowa dan liter je±li mamy do dyspozycji spis telefonów. Jednak trudno jest przeszuka caª ksi»k telefoniczn, aby odnale¹, na jak liter zaczyna si nazwisko wªa±ciciela numeru telefonicznego. Przykªadowy szyfr, 57
to 914538761 914628841 914526316 914330826 914692564 914539302 914540189 Jak wida z tego przykªadu, szyfr jest do± dªugi. St d idea funkcji skrótu. 6.2 Funkcje skrótu Inaczej s nazywane funkcjami haszuj cymi. Stosuje si je do skrócenia szyfru. Chodzi o to,»e kryptogram jest zwykle dªugi (ok. 10 12 bitów w przypadku podpisu elektronicznego). Funkcja skrótu przeprowadza go na znacznie krótszy tekst (np. do 1000 bitów). Jest to mo»liwe, poniewa» nie wszystkie liczby 10 12 -bitowe s wykorzystane przez dany system kryptogra- czny. Mo»liwe jest zatem utworzenie bijekcji. 6.3 poufno± i autentyczno±. ma Piotrek i tylko on jest w stanie roszyfrowa szyfr F P (m). Jednak»e Izka, mo»e podszy si pod Agnieszk i wysªa do Piotrka swoj wªasn wiadomo± m. Szyfruje j identycznie jak Agnieszka, tj. oblicza F P (m ). Oczywi±cie, Izka nawet Problem poufno±ci i autentyczno±ci pojawiª si wrazem z systemami kryptogracznymi o kluczu publicznym. Poufno± jest to wymóg polegaj cy na tym, aby przesyªana wiadomo± mogªa by odszyfrowana tylko przez adresata. Autentyczno± jest to wymóg, aby adresat miaª pewno±,»e osoba, której podpis widnieje pod wiadomo±ci jest nadawc. Brak poufno±ci i autentyczno±ci. Je±li mamy do czynienia z sieci u»ytkowników, którzy posªuguj si klasycznym systemem szyfrowania, to ka»dy z nich zna klucz szyfruj cy (a zatem i rozszyfrowuj cy) ka»dego innego u»ytkownika sieci. Zatem nie mo»e tu by mowy ani o poufno±ci ani o autentyczno±ci wysyªanych wiadomo±ci. Poufno± zachowana, ale brak autentyczno±ci. Zaªó»my,»e Piotrek i Agnieszka s u»ytkownikami pewnej sieci. Wówczas oboje maj swoje klucze publiczne opublikowane w informatorze dla u»ytkowników. Je±li Agnieszka chce wysªa do Piotrka wiadomo± m, szyfruje j najpierw kluczem publicznym Piotrka (powiedzmy F P ). Klucz rozszyfrowuj cy F 1 P je±li przechwyci kryptogram Agnieszki, nie jest w stanie go rozszyfrowa, ale Piotrek nigdy nie jest pewien, od kogo otrzymaª wiadomo±. Mamy wi c 58
tu do czynienia z przypadkiem, kiedy kryptogram jest poufny (tzn. tylko adresat mo»e go rozszyfrowa ), ale nie jest autentyczny (tzn. adresat nie wie na pewno, czy osoba podpisana jest nadawc ). Autentyczno± zachowana, ale brak poufno±ci. Rozwa»my spraw zapªaty za zakupy za pomoc karty kredytowej. Sama wiadomo± (kwota transakcji, wykaz zakupionych towarów itp.) nie jest tu wa»na, wi c mo»e by tekstem jewnym, ale z którego konta pójdzie przelew jest rzecz do± istotn. Obecnie, autentyczno± karty jest sprawdzana przez porównanie podpisów klienta na karcie i zªo»onego w obecno±ci sprzedawcy lub za pomoc czterocyfrowego numeru identykacyjnego (PINu). Czasami, je±li bank stwierdzi,»e klient, który zwykle nie wydawaª du»o, nagle zaczyna,,szasta pieni dzmi, odpowiedni urz dnik dzwoni do niego i zadaje mnóstwo pyta«, które maj stwierdzi autentyczno±. Skªadania podpisu, wstukiwania PINu oraz rozmowy z urz dnikiem bankowym daªoby si unikn gdyby istniaªa w±ród wszystkich posiadaczy kart pewna sie pozwalaj ca na wysªanie przy ka»dym u»yciu karty kredytowej swojego podpisu stwierdzaj cego autentyczno±. Tego rodzaju podpis jest u»ywany w tak zwanym,,immobilizerze samochodowym. Podpis jest elektronicznie zapisany w chipie wtopionym w kluczyk. Tylko tym kluczykiem mo»na uruchomi dany samochód. Je»eli kto± usiªuje wªo»y do stacyjki inny klucz, odpowiedni chip zamontowany w stacyjce wykrywa niezgodno± i uruchamia szereg czynno±ci, tj. odcina pr d od stacyjki oraz paliwo od silnika. Oczywi±cie, je±li niepo» dana osoba posi dzie wªa±ciwy kluczyk, nie b dzie miaªa ona trudno±ci z uruchomieniem samochodu. Poufno± i autentyczno± zachowana. Wyobra¹my sobie sie, która grupuje inwestorów i maklerów. Inwestorzy obawiaj si,»e ich maklerzy mog kupowa akcje przyznaj c si do ich zakupu dopiero gdy ich ceny rosn (wtedy bior prowizje), a je±li spadaj, twierdzi,»e dostali wyra¹ne polecenie zakupu akcji (na dowód pokazuj zaszyfrowany tekst z poleceniem od inwestora. Maklerzy natomiast, boj si,»e je±li zakupi walory trac ce na warto±ci,»aden inwestor nie przyzna si do wysªania kryptogramu z poleceniem zakupu. Potrzeba tu wi c zachowania zarówno poufno±ci jak i autentyczno±ci. Jest to zachowane, je±li wiadomo± jest najpierw zaszyfrowana kluczem prywatnym nadawcy, a nast pnie kluczem publicznym odbiorcy. 59
6.4 Wymiana kluczy Systemy z kluczem publicznym s jeszcze mªode i istniej spore problemy z zastosowaniem ich w praktyce. Przede wszystkim, s one znacznie wolniejsze od systemów klasycznych, tj. liczba jednostek tekstu przesyªanych w ci gu sekundy jest istotnie mniejsza dla systemów z kluczem publicznym. Jest to gªówny powód, dla którego systemy te nie zostaªy wprowadzone do powszechnago u»ytku. Jednak»e daj one bardzo dobr sposobno± do przesyªania (tajnych) kluczy systemów klasycznych. Klucze mo»na wymienia wi c cz sto bez korzystania z pomocy kurierów. Wi ksze obj to±ciowo informacje wysyªane s ju» z wykorzystaniem metod klasycznych. 6.5 2-1 funkcje jednokierunkowe W poprzednich podrozdziaªach omawiali±my pewne funkcje jednokierunkowe, które ze wzgl du na zastosowanie musiaªy by wzajemnie jednoznaczne lub przynajmniej ró»nowarto±ciowe. Okazuje si,»e funkcje, które przyjmuj jedn warto± dla dwóch argumentów (podobnie jak x 2 ) maj równie ciekawe zastosowanie. Poka»emy,»e za ich pomoc mo»na zagra w orªa i reszk przez telefon. Idea tej zabawy jest prosta i mo»na j wytªumaczy natychmiast. Przypu± my,»e Alicja oraz Stefan chc rozstrzygn, do kogo ma nale»e samochód. W tym celu mog oni rzuci monet i zda si na los. Jednak»e dzieli ich pewna odlegªo± przez co mog si porozumiewa wyª cznie przez telefon. Maj te» do dyspozycji pewn funkcj f, która warto± y przyjmuje dla dwóch argumentów x 1 oraz x 2. Zakªadamy tutaj,»e znaj c pewien argument, bez trudu mo»na obliczy warto± funkcji odpowiadaj c temu argumentowi, jednak je±li znamy jak ± warto±, nie mo»emy obliczy bez dodatkowych informacji ani jednego argumentu, który odpowiada tej warto±ci. Zakªadamy,»e Stefan nie zna tych dodatkowych informacji, natomiast Alicja zna. Ich gra wygl da nast puj co: 1. Stefan wybiera losowo argument x i oblicza warto± y = f(x), któr wysyªa Alicji (argument x pozostawia w tajemnicy). 2. Alicja po otrzymaniu y i znaj c dodatkowe informacje, oblicza x 1 oraz x 2. Rzut monet polega teraz na losowym wybraniu jednego argumentu x 1 lub x 2. Ten argument (zaªó»my,»e jest to x 1 ) wysyªa ona Stefanowi. 60
3. Je±li x = x 1 Stefan przegrywa, i nie mo»e si z tego wykr ci, poniewa» je±li powie Alicji,»e wygraª, to ona za» da od niego drugiego elementu. 4. Je»eli x x 1, wygrywa Stefan i na dowód wygranej przesyªa Alicji x = x 2. Zauwa»my,»e dodatkowo, Alicja nie mo»e si tu wykr ci od wygranej. Natomiast Stefan, je±li koniecznie chce przegra, zaªatwia to bez problemu. Okazuje si,»e jest mo»liwe omini cie i tego mankamentu, ale odpowiedni rezultat (znany dobrze w pewnych kr gach) nie zostaª do tej pory opublikowany. W dalszej cz ±ci wykªadu poznamy teorio-liczbowe i algebraiczne podstawy przytoczonych koncepcji kryptogracznych. 61