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ª 1 Kryptograa a steganograa Kryptograa jako dyscyplina matematyczna zajmuj ca si metodami przesy- ªania wiadomo±ci w zakamuowanej formie tak, aby tylko adresat mógª odczyta wiadomo±, rozwin ªa si w drugiej poªowie dwudziestego wieku chocia» byªa ona stosowana znacznie wcze±niej. Do czasów drugiej wojny ±wiatowej szyfrów oczywi±cie u»ywano, jednak aparat matematyczny nie byª stosowany do ich tworzenia. Prawdziwa bomba wybuchªa, kiedy u»ywane od lat dwudziestych maszyny mechaniczne zostaªy zast pione przez komputery o du»ej mocy obliczeniowej. Wówczas okazaªo si,»e praktycznie ka»dy szyfr wynaleziony do tego czasu mo»e by zªamany w stosunkowo krótkim czasie. Zaistniaªa potrzeba systemu szyfruj cego, który nie tylko chroniªby tajemnice wojskowe, ale przede wszystkim informacje bankowe ukryte w ogólnie dost pnej sieci komputerowej. Wiadomo przy tym,»e tego rodzaju system b dzie,,atakowany od samego pocz tku. Z drugiej strony, na pocz tku lat siedemdziesi tych ujawniono w ko«cu, kto zªamaª tajemnic niemieckiej ENIGMY. To zmusiªo wielu matematyków i informatyków do gª bszego zainteresowania si,,now dziedzin nauki, która stanowi najszersz drog od matematyki do informatyki. Kryptograa jednak»e jest nauk si gajac jeszcze czasów staro»ytnych. W trakcie wykªadu prze±ledzimy histori tej nauki oraz wejdziemy w nowoczesne metody szyfrowania. 5
1.1 Steganograa Jest wiele terminów okre±laj cych, z pozoru mogªoby si wydawa, t sam rzecz: kryptograa, kryptologia, kodowanie, steganograa, szyfrowanie itd. Jednak»e dla osób dogª bnie studiuj cych temat, ró»nice mi dzy tymi poj ciami staj si wyra¹ne. Steganograa, na przykªad zajmuje si kamuowaniem tekstu w dosªownym tego sªowa znaczeniu. Zakamuowanie (zakrycie) i odkrycie tekstu nie wymagaj skomplikowanych algorytmów, tylko pewnej zasady logicznej, szablonu, b d¹ odczynników chemicznych. Opiszemy tu najpopularniejsze metody steganografów. Jedn z metod jest u»ywanie w tek±cie dwóch charakterów pisania poszczególnych liter. Litery napisane inaczej utworz ukryty tekst. Innym sposobem jest robienie maªej przerwy tu» przed liter, któr chcieliby±my»eby adresat przeczytaª. Zamiast pisa dªugi i nic nie znacz cy tekst mo»na wykorzysta tekst ju» napisany (np. gazet lub ksi»k ) i zaznaczy potrzebne litery tak, aby nikt niepowoªany nie domy±liª si, ze co± jest zaznaczone: Sto dwadzie±cia zªotych jest mi znów potrzebne. Kochany Tato przy±lij mi je w czwartek. Ryby w tym jeziorze s wyj tkowo nieuchwytne. S t o dwadzie±cia zªotych j e s t mi znów potrze bne. Kochan y Ta t o przy±lij mi je w c zwartek. R yby w tym jez iorze s wyj tkowo ni euchwytne. Inn metod jest wskazanie ci gu liczb pokazuj cych pozycj danej litery b d¹ w alfabecie, b d¹ te» w jakiej± ksi»ce. Na przykªad posªuguj c si ksi»k Neal'a Koblitza,,Wykªad z teorii liczb i kryptograi mo»emy zaszyfrowa sªowo,,mama ci giem liczb 21 26 31 2. Ci g ten rozszyfrowujemy licz c litery od okre±lonego miejsca w ksi»ce. W naszym przypadku jest to pocz tek tekstu,,wst pu. By wskaza po» dany ci g liczb mo»emy posªu»y si cho by pudeªkiem domina przesªanym w paczce. Aby ukry wiadomo± mo»na te» si posªu»y rebusem, lub te» labiryntem z literami w korytarzach. Prawidªowe przej±cie takiego labiryntu ujawni nam ukryty tekst. Podobnie, wiadomo± mo»emy schowa w obrazek z dziwnymi detalami, który staje si czytelny, gdy w odpowiedniej od niego odlegªo±ci mrugniemy oczami i zobaczymy trójwymiarowy rysunek. Obraz, jako taki, te» mo»e posªu»y steganografowi do ukrycia wiadomo±ci. Na przykªad pewne detale (¹d¹bªa traw lub tym podobne) mog ukªada si w kod Morse'a. Ciekaw grup metod steganogracznych jest zamiana ukrywanej wiado- 6
mo±ci w ªatwo, ale na pewno ¹le zrozumian wiadomo± brzmi c caªkiem nieszkodliwie. Mo»na rozró»ni tu dwie kategorie: maskowanie i zasªanianie. Maskowanie wymaga najpierw zgody obu stron co do przekazywanego kodu. Cz sto stosuj to bryd»y±ci, którzy trzymaj c odpowiednio papierosa lub robi c szereg niewinnych czynno±ci, w istocie przekazuj sobie informacje. Mistrzami w przekazywaniu zamaskowanych informacji s te» wi ¹niowie, którzy tworz swój swoisty»argon. niektóre sªowa w tym»argonie to dziura, paka wi zienie; ±nieg, cukier kokaina; obczyszczenie kradzie» itp. W czasie drugiej wojny ±wiatowej, Amerykanie zatrudnili radiooperatorów, którzy rozmawiali w swoim ojczystym j zyku Nawaho. Japo«czycy nie mogli przechwyci i zidentykowa»adnej z wysyªanych wiadomo±ci. Bardzo dobry (jak na tamte czasy) niemiecki szyfr ENIGMA zostaª, jak wiadomo, zªamany. Mówi c o maskowaniu, trudno jest tu nie wspomnie o audycjach radia BBC w 1944 roku, gdzie w±ród tzw, prywatnych wiadomo±ci zapodziaªo si hasªo,,dªugie struny jesiennych skrzypiec, a jaki± czas pó¹niej,,rani me serce monotonnym brzmieniem. Oznaczaªo to dokªadn dat i miejsce inwazji na Francj. Niemiecka Abwehra Admiraªa Canarisa rozszyfrowaªa dokªadnie t wiadomo±, która dotarªa do wszystkich niemieckich jednostek z wyj tkiem stacjonuj cej w Normandii VII armii. Do dzi± nie wyja±niono w peªni, dlaczego armia ta nie zostaªa ostrze»ona. Wspomnie mo»emy tak»e o audycjach Polskiego Radia, nadaj cych sªynne,,uwaga, uwaga, nadchodzi, KO-MA 27. Tak»e Japo«czycy,»eby przekaza swoim statkom wiadomo± o wojnie z USA u»yli sªów,,higaszi no kaze ame (wschodni wiatr, deszcz). Sªowa te zostaªy wplecione w prognoz pogody i powtórzone dwukrotnie. Z maskowaniem sªów za pomoc zjawisk meteorologicznych trzeba jednak mocno uwa»a, o czym przekonaªa si Miss Holly Golightly w lmie,, niadanie u Tianiego. Przekazana przez ni,,wiadomo± o pogodzie, która brzmiaªa,,±nieg w Nowym Orleanie byªa mocno podejrzana i stró»owie prawa skojarzyli to sobie z handlem kokain. Zasada zasªaniania tekstu najcz ±ciej jest typu,,czytaj nt liter po okre±lonym znaku. Mo»e to by spacja, pocz tek nowej linii tekstu lub samogªoska. Zasªanianie stosowali powszechnie»oªnierze, którzy chcieli przekaza miejsce swego pobytu rodzinie, ale nie mogli tego zrobi w ocjalny sposób. Dla jednego z nich nie sko«czyªo si to dobrze, poniewa» rodzice w li±cie powrotnym spytali go:,,gdzie jest to Nutsi? Nie mo»emy znale¹ tego w»adnym atlasie!. Równie» Kornel Makuszy«ski w ksi»ce,,szatan z siódmej klasy u»yª ten rodzaj zasªaniania. Bohater ksi»ki tak sprytnie 7
napisaª list,»e jego przyjaciele bez wi kszego trudu rozszyfrowali wiadomo±, któr chciaª przekaza : Serdecznie ukochany panie profesorze! Trzeba byªo takiego jak ja wariata, aby nie znaj c okolicy ruszy na dalek w drówk. Takim jednak szcz ±cie sprzyja. Ziemie okoliczne s bardzo pi kne, lecz Ejgoªa pi kniejsza. al mi jedynie,»e pana tu ze mn nie ma. Caªy jestem i zdrów. Znalazªem miªe towarzystwo i dlatego nie wiem dobrze, kiedy wreszcie powróc do Ejgoªy. B d¹cie jednak»e o mnie spokojni, cho bym nawet dªugo nie powracaª. Ogromnie mi t skno za panem, panie profesorze, za pani Mari i pann Wandeczk. ciskam wszystkich i ª cz ukªony dla caªego domu. Wdzi czny Ada±. Inny sposób zasªaniania wymaga szablonu, którym zasªania si napisany tekst. W okienkach szablonu odczytujemy nasz ukryt wiadomo±. Metoda ta wymaga jednak doskonaªego wyczucia miejsca umiej tno±ci dopasowania tekstu tak, aby odpowiedni wyraz znalazª si w wyznaczonym szablonem miejscu. 1.2 Szyfry przestawieniowe Szyfry przestawieniowe (lub anagramowe) s tak»e rodzajami steganogramów, mimo»e okre±la si je mianem,,szyfry. Dokªadnie,»eby zaszyfrowa pewien tekst, przestawiamy jego litery wedªug okre±lonej zasady. Przytoczymy tu dwa przykªady szyfrów przestawieniowych. Szyfr pªotowy. Ukªadamy litery tekstu,,wzdªó» pªotu, tj. wzdªó» ªamanej zªo»onej ze sko±nych odcinków. Wysoko± pªotu jest okre±lona liczb liter przypadaj c na jeden odcinek ªamanej. Nast pnie tekst zaszyfrowany odczytujemy wierszami. Na przykªad, chc c zaszyfrowa tekst INSYGNIA MIERCI pªotem o wysoko±ci 3, zapisujemy I G R N Y N A M E C S I I I 8
i przepisujemy ig±rnynamecsiii. Generalnie, przy szyfrowaniu obowi zuje zasada,»e w tek±cie zaszyfrowanym nie ma znaków interpunkcyjnych ani spacji. Mo»e to prowadzi do nieporozumie«, ale zasada ta utrudnia te» ewentualne ªamanie szyfru. Przy pªocie wysoko±ci 5, zaszyfrowany tekst kªsókipr ew»i, to KSI E PÓŠKRWI. Szyfr kwadratowy. Tekst, który chcemy zaszyfrowa wpisujemy w kwadrat (lub kilka takich samych kwadratów) wierszami, a jako szyfr odczytujemy kolumnami, i to wedªug pewnej permutacji. Na przykªad, u»yjemy kwadratu 4 4 z permutacj (12)(34) i zaszyfrujemy tekst KOMNATA TA- JEMNIC. Poniewa» tekst ten ma mniej ni» 16 liter, na jego ko«cu dopisujemy dowolne litery (tzw. nulle) i wpisujemy tekst w kwadrat K O M N A T A T A J E M N I C X Odczytuj c kolumy wg kolejno±ci 2 1 4 3, otrzymujemy otjikaanntmxmaec. Istotn wskazówk identykuj c szyfr kwadratowy jest fakt,»e liczba liter w tek±cie zaszyfrowanym jest wielokrotno±ci kwadratu liczby naturalnej n. Sama liczba n oznacza dªugo± boku kwadratu. Np. tekst aeim«lkifzinocyofz ma 18 liter, co mo»e oznacza,»e zostaª u»yty szyfr kwadratowy z kwadratem o boku 3, a do zaszyfrowania u»yto dwóch kwadratów. 1.3 Systemy kryptograczne Podstawowym elementem, który odró»nia steganogra od kryptograi jest system kryptograczny. Jest to poj cie które w przypadku metod kryptogra- cznych mo»na w miar ªatwo zdeniowa. Na pocz tek zdeniujmy kilka podstawowych elementów. Aby jednak wiadomo± mogªa by wysªana, najpierw trzeba j w jaki± sposób napisa. W tym celu u»ywamy alfabetu, który deniujemy jako dowolny zbiór sko«czony. Liczb elementów zbioru A (alfabetu) b dziemy oznacza przez A, #A lub A. Do zapisywania wiadomo±ci b dziemy u»ywa alfabetu ªaci«skiego A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 9
który uto»samimy z liczbami 0, 1, 2,..., 25. B dziemy te» rozwa»a inne alfabety, którym w podobny sposób odpowiada b d liczby ze zbioru Z q wszystkich liczb caªkowitych nieujemnych i mniejszych od q. Zbiór ten ma t zalet,»e jego elementy mo»na dodawa, odejmowa i mno»y zgodnie z zasadami arytmetyki modulo q. Litery alfabetu mo»na ukªada w bloki liter. Blok dwuliterowy nazywamy digramem, trzyliterowy trigramem i, ogólnie, blok nliterowy nazywamy n gramem. Litery i bloki liter ukªadaj si w tekst. Oznaczmy przez A n zbiór wszystkich ngramów z alfabetu A. Tekstem nazywamy dowolny element zbioru A = A n. n 0 Generalnie, szyfrujemy tylko wiadomo±ci, które co± oznaczaj, wi c nie mog to by przypadkowe ci gi liter. Koniecznym zatem jest zdeniowanie poj cia j zyka. J zykiem nazywamy dowolny podzbiór zbioru A. Zaªó»my wi c,»e mamy wybrany konkretny j zyk oraz pewien tekst w tym j zyku. Tekst ów nazywamy jawnym lub otwartym. Alfabet A, w którym jest on napisany tak»e nazywamy jawnym. Aby przesªa tekst, szyfrujemy go. Mo»emy w tym celu u»y jednego alfabetu szyfrowego B (szyfry monoalfabetyczne), lub te» wielu alfabetów szyfrowych (szyfry polialfabetyczne). W tym drugim przypadku, u»ywa si raczej wielu kopii tego samego alfabetu. Zawsze jednak potrzebne nam jest przeksztaªcenie szyfruj ce, czyli funkcja ró»nowarto±ciowa E okre±lona w A o warto±ciach w B. Je±li m jest tekstem jawnym, to E(m) nazywamy kryptotekstem, lub szyfrem. W dalszej cz ±ci wykªadu b dziemy u»ywa synonimów wymienionych wy»ej poj, które oznacza b d to samo, je±li nie zostanie podana inna de- nicja. Na przykªad, sªowo,,tekst b dziemy stosowa zamiennie ze sªowem,,wiadomo±. Istnieje wiele mo»liwo±ci zdeniowania przeksztaªcenia E. Najpro±ciej jest zada bijekcj e : A B. Poniewa» B ma wówczas tyle samo elementów co A, wi c przyjmujemy,»e A = B. Przeksztaªcenie e generuje E w nastepuj cy sposób. Je»eli m = l 1 l 2... l q jest wiadomo±ci, to E(m) = e(l 1 )e(l 2 )... e(l q ). W podobny sposób generujemy E z funkcji ró»nowarto- ±ciowej e : A n B m. W tym wypadku, liczba liter w szyfrowanej wiadomo±ci musi by podzielna przez n. Je±li tak nie jest, nale»y dopisa do tej wiadomo±ci odpowiedni ilo± liter. Zdeniujemy teraz poj cie kryptosystemu. Kryptosystemem nazywamy 10
rodzin przeksztaªce«szyfruj cych {E k : k K}, gdzie K jest pewnym zbiorem (sko«czonym lub nie) zwanym przestrzeni kluczy. Dowolny element k przestrzeni kluczy nazywamy kluczem. Skoro dla dowolnego k odwzorowanie E k jest ró»nowarto±ciowe, istnieje odwzorowanie odwrotne D k, które nazywamy deszyfrowaniem. Je±li m jest wiadomo±ci jawn, to dla dowolnego klucza k, D k (E k (m)) = m. Nie musi jednak zachodzi E k (D k (m)) = m. 11