Wykład IX: Systemy o publicznym kluczu
Transkrypt
Wykład IX: Systemy o publicznym kluczu
WSTP 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 N 4.1 Algebra liniowa modulo . . . . . . . . . . . . . . . . . . . . 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 oparty na problemie pakowania plecaka . . . . . . . . . . . . . 53 5.3 Kryptosystem 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 System RSA 60 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 8.6 Kongruencje stopnia 2 8.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 . . . . . . . . . . . . . . . . . . . . . . 77 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 . . . . . . . . . . . . . . . . . . . 9.2 Metoda . . . . . . . . . . . . . . . . . 85 9.3 Metoda faktoryzacji Fermata . . . . . . . . . . . . . . . . . . . 87 9.4 Bazy rozkªadu . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 ρ rozkªadu na czynniki 3 83 10 Logarytm dyskretny 92 10.1 Poj¦cie logarytm dyskretny . . . . . . . . . . . . . . . . . . . 92 10.2 System DiegoHellmana uzgadniania klucza . . . . . . . . . . . . . . . . . . . . . . . . 10.3 System kryptograczny Masseya-Omury 93 . . . . . . . . . . . . 95 10.4 System ElGamala . . . . . . . . . . . . . . . . . . . . . . . . . 96 11 Protokoªy o zerowej wiedzy i przekazy nierozró»nialne 11.1 Kolorowanie mapy 11.2 Logarytm dyskretny 97 . . . . . . . . . . . . . . . . . . . . . . . . 97 . . . . . . . . . . . . . . . . . . . . . . . 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 2(n − 1) n, to ka»dy z nich miaªby do zapami¦tania kluczy, a w caªej sieci byªoby 2n(n − 1) kluczy. Co gorsza, u»yt- kownicy 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 500cyfrowych, 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. Purf : Fp → Fp , gdzie p = 264 − 59, dy w 1974 roku. Opisana wtedy funkcja, to a funkcja jest okre±lona wzorem 24 +17 f (x) = x2 gdzie wspóªczynniki ai 24 +3 + a1 x 2 + a2 x 3 + a3 x 2 + a4 x + a5 , 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. szyfru. Stosuje si¦ je do skrócenia 12 Chodzi o to, »e kryptogram jest zwykle dªugi (ok. 10 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 12 wszystkie liczby 10 -bitowe s¡ wykorzystane przez dany system kryptograczny. Mo»liwe jest zatem utworzenie bijekcji. 6.3 poufno±¢ i autentyczno±¢. 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»yt- kownikó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 publicz−1 nym Piotrka (powiedzmy FP ). Klucz rozszyfrowuj¡cy FP ma Piotrek i tylko on jest w stanie roszyfrowa¢ szyfr FP (m). Jednak»e Izka, mo»e podszy¢ si¦ 0 pod Agnieszk¦ i wysªa¢ do Piotrka swoj¡ wªasn¡ wiadomo±¢ m . Szyfruje 0 j¡ identycznie jak Agnieszka, tj. oblicza FP (m ). Oczywi±cie, Izka nawet je±li przechwyci kryptogram Agnieszki, nie jest w stanie go rozszyfrowa¢, ale Piotrek nigdy nie jest pewien, od kogo otrzymaª wiadomo±¢. 58 Mamy wi¦c 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¦ za- pª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 roz- mowy 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. kluczyk. Podpis jest elektronicznie zapisany w chipie wtopionym w 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. grupuje inwestorów i maklerów. Wyobra¹my sobie sie¢, która 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 tra- c¡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 wol- niejsze 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¡ 2 jedn¡ warto±¢ dla dwóch argumentów (podobnie jak x ) 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¦ muje dla dwóch argumentów x1 oraz x2 . f, która warto±¢ y przyj- 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 wysyªa Alicji (argument 2. Alicja po otrzymaniu y x x i oblicza warto±¢ y = f (x), któr¡ pozostawia w tajemnicy). i znaj¡c dodatkowe informacje, oblicza x1 oraz x2 . Rzut monet¡ polega teraz na losowym wybraniu jednego argumentu x1 lub x2 . Ten argument (zaªó»my, »e jest to x1 ) wysyªa ona Stefanowi. 60 3. Je±li x = x1 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. x 6= x1 , x = x2 . 4. Je»eli wygrywa Stefan i na dowód wygranej przesyªa Alicji 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