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ª 10 Logarytm dyskretny 10.1 Poj cie logarytm dyskretny System RSA jest oparty na tym,»e pomno»enie przez siebie dwóch liczb jest istotnie ªatwiejsze ni» rozkªad liczby na czynniki. Podobn wªasno±,,jednokierunkowo±ci ma te» podnoszenie liczby do pot gi w (du»ym) ciele sko«czonym. Zauwa»my,»e w R, obliczenie b x nie jest istotnie ªatwiejsze od obliczenia log b x i to z dowoln dokªadno±ci. Nie jest to jednak prawd dla ciaª sko«czonych. Zaªó»my,»e mamy ustalon liczb b nale» c do grupy multyplikatywnej pewnego ciaªa sko«czonego F q. Je±li chcemy obliczy b x, stosujemy wypróbowan metod iterowanego podnoszenia do kwadratu, która dziaªa w miar szybko. Je±li jednak wiemy tylko,»e y jest pewn pot g elementu b, nie jest ªatwo znale¹ taki wykªadnik x,»eby b x = y. Potrzebujemy zatem funkcji okre±lonej na ciele sko«czonym i odwrotnej do pot gowania. Tak funkcj nazywamy logarymem dyskretnym. Dokªadnie, logarytmem dyskretnym, o podstawie b F q z elementu y nazywamy tak liczb caªkowit x,»e b x = y. Przykªady. 10.1. We¹my q = 19. Wtedy liczba 2 jest generatorem grupy F 19. Logarytmem dyskretnym o podstawie 2 z 7 jest 6. 10.2. W grupie F 9 rozwa»my element α, który jest pierwiastkiem wielomianu x 2 x 1. Logarytmem dyskretnym o podstawie α z 1 jest 4. 10.3. Rozwa»ymy ciaªo F 16129, tutaj 16129 = 127 2. Niech generatorem grupy multyplikatywnej b dzie g = a + 2, przy czym a jest pierwiastkiem drugiego 92
stopnia z 1 = 126. Wówczas logarytmem dyskretnym z 87 jest 12032, a z 2a + 2, 12000. Zwró my uwag na to,»e logarytm dyskretny ma warto±ci w Z, czyli nie tam gdzie argumenty. Dokªadnie jest to funkcja z grupy multyplikatywnej ciaªa sko«czonego do pier±cienia liczb caªkowitych. Podobnie jak i dla rozkªadu liczb na czynniki pierwsze, istniej algorytmy pozwalaj ce stosunkowo szybko obliczy logarytm dyskretny dla pewnych, szczególnych liczb oraz ciaª. Nie b dziemy si jednak zajmowa tymi algorytmami, poniewa» ich dokªadne wytªumaczenie wymaga znajomo±ci problemów zwi zanych z teori ciaª sko«czonych, której tutaj nie przedstawimy. W zamian omówimy kilka systemów opartych na logarytmie dyskretnym. 10.2 System DiegoHellmana uzgadniania klucza Jak ju» wspomnieli±my, systemy z publicznym kluczem s wci» zbyt wolne, aby za ich pomoc przesyªa dªugie wiadomo±ci. Z drugiej strony, je±li wiadomo± jest odpowiednio krótka, nie mo»na zªama szyfru stosuj c analiz cz sto±ci wyst powania liter. Dlatego systemów z publicznym kluczem cz sto u»ywa si do uzgadniania kluczy systemów klasycznych. Opiszemy tu system wymiany kluczy oparty o logarytm dyskretny. Zaªó»my,»e do szyfrowania chcemy u»ywa pewnego klucza k. Liczb k wybieramy losowo z pewnego przedziaªu pocz tkowego liczb naturalnych. Zauwa»my,»e wybranie liczby z takiego przedziaªu jest równowa»ne wybraniu losowego elementu pewnego du»ego ciaªa sko«czonego F p f, którego elementy uto»samiamy z liczbami naturalnymi z przedziaªu [0, p f 1]. Aby uto»sami elementy F p f z liczbami caªkowitymi, wybieramy najpierw baz tego ciaªa (jako przestrzeni wektorowej) nad Z p. Wtedy ka»demu elementowi ciaªa F p f odpowiada felementowy ci g elementów Z p. Ci g ten reprezentuje liczb zapisan w systemie o podstawie p. Oczywi±cie, nie jest to jedyny sposób uto»samienia pewnego przedziaªu liczb naturalnych z elementami ciaªa sko«czonego. Metoda DiegoHellmana dziaªa nast puj co. Potrzebujemy tu du»ego ciaªa sko«czonego F q oraz generatora g grupy F q. Liczb q i element g podajemy do publicznej wiadomo±ci. Przypu± my,»e dwoje u»ytkowników, Maja i Gucio, chce uzgodni klucz. Kluczem tym b dzie pewien element F q. Aby 93
rozpocz negocjacje, Maja wybiera dla siebie liczb M, a Gucio liczb G. Pot gi g M oraz g G oboje podaj do publicznej wiadomo±ci. Wspólnym tajnym kluczem, którego b d u»ywa jest g MG. Oczywi±cie, je±li znamy g G oraz M albo g M oraz G, to bez problemów obliczamy g MG. Nie jest to jednak ªatwe, je±li znamy tylko g M i g G. Oczywi±cie, opisany system mo»emy stosowa tylko wtedy, je±li prawdziwe jest nast puj ce zaªo»enie Zaªo»enie DiegoHellmana. Zadanie obliczenia g ab nie jest ªatwe je±li znane s tylko g a oraz g b. Powy»sze zaªo»enie jest tak samo silne jak zaªo»enie,»e logarytm dyskretny w grupie nie mo»e by ªatwo obliczony. Dokªadnie, je±li znamy prosty sposób obliczania logarytmu dyskretnego, to znaj c g a i g b, bez problemu obliczymy a oraz b, a wi c i g ab. Znanym problemem jest wynikanie odwrotne, tj. czy je±li obliczenie g ab znaj c g a i g b jest ªatwe, to tak»e obliczenie logarytmu dyskretnego jest ªatwe. Jest to wci» otwarty problem. Dziaªanie opisanego systemu wymiany kluczy opiszemy na podstawie ªatwego przeksztaªcenia szyfruj cego oraz maªego ciaªa sko«czonego. 10.4 Przykªad. Przypu± my,»e naszym przeksztaªceniem szyfruj cym jest przesuni cie, a wi c kluczem jest tu liczba k, któr dodajemy modulo 26 do ka»dej litery tekstu jawnego. Kluczem rozszyfrowuj cym jest tu wi c liczba k (mod 26). Sam klucz wybieramy bior c reszt z dzielenia uzgodnionej liczby przez 26. Niech g (generator F 53 ) b dzie równy 3. Zaªó»my,»e Maja wybraªa liczb losow M = 29, wi c jej kluczem publicznym jest 3 29 = 26. Kluczem publicznym Gucia jest 3 G = 12. Zatem uzgodnionym kluczem szyfruj cym jest p = 12 29 = 21. Sprawd¹my teraz, czy jest to rzeczywi±cie uzgodniony klucz, tj. czy Gucio otrzymaª t sam liczb. Wybran liczb Gucia byªo G = 47. Maja ma klucz publiczny 26 (= 3 29 ). Zatem Gucio otrzymaª klucz szyfruj cy p = 26 47 = 21. 10.5 Przykªad. Zaªó»my,»e umawiamy si na dwuliterowe hasªo do szyfru permutacyjnego i wykorzystujemy ciaªo F 16129 z generatorem grupy multyplikatywnej g = a + 2, gdzie a jest pierwiastkiem kwadratowym z 1. Oboje Przypu± my,»e Gucio zaczyna negocjacje od (tajnego) hasªa HI, a Maja od T K. Oboje zamieniaj swoje hasªa na liczby. S to, odpowiednio, G = 190 = 7 26 + 8 oraz M = 504 = 19 26 + 10. Gucio i Maja upubliczniaj elementy (a + 2) 190 = 7a + 94 oraz, odpowiednio, (a + 2) 504 = 68a + 40. Maja, aby uzyska hasªo, podnosi 7a+94 do pot gi 504 otrzymuj c 21a+24. Uzgodnionym hasªem jest wi c V Y. 94
10.3 System kryptograczny Masseya-Omury Aby u»ywa tego systemu, wszyscy u»ytkownicy musz zdecydowa si u»ywa ustalonego, powszechnie znanego ciaªa sko«czonego F q. Ka»dy u»ytkownik wybiera (w tajemnicy przed innymi) liczb losow 0 e q 1, która jest wzgl dnie pierwsza z q 1. Nast pnie ka»dy oblicza liczb odwrotn do e modulo q 1. Obie liczby e oraz d stanowi klucz prywatny. Je»eli Tola chce wysªa do Lolka wiadomo± P, najpierw uto»samia j z pewnym elementem ciaªa F q, a nast pnie wysyªa do Lolka wiadomo± P e T. Lolek nie próbuje nawet odszyfrowywa wiadomo±ci, tylko stosuj c swój klucz prywatny oblicza P e T e L i tak otrzymany element odsyªa do Toli, która z kolei oblicza P e T e L d T = P e L i odsyªa to Do Lolka, który po obliczeniu P e L d L = P bez trudu odczytuje wiadomo±. 10.6 Przykªad. Ponownie rozwa»ymy ciaªo F 16129. Zaªó»my,»e naszym kluczem jest (779, 6563). Otrzymali±my od Toli wiadomo± (32a + 66, 16a + 112, 12a + 112, 48a + 66, 69a + 116, 66a + 0). Ka»dy z elemetów podnosimy do pot gi o wykªadniku 779, otrzymujemy (75a + 48, 118a + 93, 118a + 78, 28a + 81, 71a + 79, 38a + 0) i odsyªamy to do Toli. Chwil pó¹niej, Tola przysyªa nam ci g (75a + 95, 30a + 40, 38a + 122, 38a + 83, 67a + 62, 100a + 0). Tym razem, podnosz c do pot gi 6563, otrzymujemy (9a + 4, 18a + 19, 8a + 12, 15a + 17, 4a + 25, 10a + 0) i odczytujemy wiadomo± (kolejne liczby, to pozycje liter alfabetu): imprezka. jest Zauwa»my,»e wa»nym jest, aby u»ytkownik, który odczytaª wiele informacji nie byª w stanie znale¹ e T nawet je±li dotarªo do niego du»o wiadomo±ci P e T. Gdyby bowiem Lolek rozwi zaª problem logarytmu dyskretnego, to szybko obliczyªby e T a wi c i d T, a to oznaczaªoby,»e byªby w stanie nie tylko odczyta ka»d wiadomo±, jak wysyªa Tola (niezale»nie od tego, do kogo jest ona skierowana), ale równie» mógªby bez trudu,,podszy si pod Tol. 95
Zwró my te» uwag i na to,»e system Maseya-Omury wymaga stosowania dobrej metody potwierdzania to»samo±ci, poniewa» adresat, otrzymuj c najpierw P e, nie wie, czyim kluczem e jest ta wiadomo± zaszyfrowana. Tak wi c Lolek mo»e otrzyma wiadomo± od Justysi b d c przekonanym,»e jest to wiadomo± od Toli. Z drugiej strony, tak»e Tola po otrzymaniu P e T e L musi by pewna,»e odpowied¹ przyszªa od Lolka a nie od innego u»ytkownika systemu. 10.4 System ElGamala Tutaj równie» potrzebne jest ustalone ciaªo sko«czone F q (odpowiednio du»e) oraz pewien element g F q. Podobnie jak powy»ej, tekstem zaszyfrowanym b d¹ jego jednostkami s elementy F q. Ka»dy u»ytkownik wybiera losowo liczb caªkowit 0 < b < q 1, która jest jego tajnym kluczem rozszyfrowuj cym. Jawnym kluczem szyfruj cym jest g b. Zaªó»my,»e chcemy wysªa do u»ytkownika A wiadomo± P. W tym celu wybieramy losow liczb naturaln k i wysyªamy par elementów (g k, P g bak ). Oczywi±cie jeste±my w stanie obliczy g bak znaj c tylko g b A, poniewa» wystarczy t liczb podnie± do pot gi k. Adresat A chc c odczyta wiadomo±, podnosi najpierw g k do pot gi b A, a nast pnie dzieli P g bak przez otrzyman liczb uzyskuj c wiadomo± P. Je±li adresat preferuje mno»enie, to zamiast podnosi g k do pot gi b A, podnosi t liczb do pot gi q 1 b A a nast pnie mno»y wynik oraz P g bak otrzymuj c P. Kto±, kto potra rozwi za problem logarytmu dyskretnego w F q bez trudu rozszyfruje ka»d wiadomo±, poniewa» znaj c g oraz g b jest on w stanie znale¹ klucz rozszyfrowuj cy b. Je»eli zaªo»enie DiegoHellmana nie zachodzi, to tak»e mo»na zªama szyfr ElGamala znajduj c g bk znaj c tylko g k (przesyªane) oraz g b (publiczne). 10.7 Przykªad. Jeszcze raz rozwa»ymy ciaªo F 16129 z kluczem 32a + 113 (a 2 = 1). Zaszyfrowany tekst jest imprezka, to (111a + 120, 74a + 30), (90a + 49, 88a + 80), (73a + 126, 67a + 109), (98a + 7, 97a + 54), (92a + 36, 94a + 89), (45a + 94, 111a + 8), (79a + 85, 41a + 20). 96