Wykład IX: Systemy o publicznym kluczu

Transkrypt

Wykład IX: Systemy o publicznym kluczu
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
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

Podobne dokumenty