WSTĘP DO KRYPTOLOGII
Literatura
1. D.E. Robling-Denning „Kryptografia i ochrona danych”, Wyd. II, WNT W-wa 1993.
2. B. Schneier „ Kryptografia dla praktyków”, WNT W-wa 1995.
3. B. Schneier „ Ochrona poczty elektronicznej”, WNT W-wa 1996.
4. N. Koblitz „Wykład z teorii liczb i kryptografii”, WNT W- wa 1995.
5. A. Menezes, P. van Oorschot, S. Vanstone „Handbook of Applied Cryptography” Springer-Verlag 1996.
6. D. R. Stinson „Cryptography. Theory And Practice”,
Springer-Verlag 1995
KRYPTOLOGIA
KRYPTOGRAFIA + KRYPTOANALIZA (konstruowanie szyfrów) (łamanie szyfrów)
KLASYCZNA KRYPTOGRAFIA
Definicja
Kryptosystem jest to piątka ( P , C , K , E , D ), gdzie spełnione są następujące warunki:
1. P jest skończonym zbiorem możliwych jednostek tekstu jawnego.
2. C jest skończonym zbiorem możliwych jednostek szyfrogramu.
3. K jest przestrzenią klucza; skończonym zbiorem możliwych kluczy.
4. Dla każdego k K istnieje reguła szyfrowania
ek Ei odpowiadająca reguła deszyfrowania
dk D .Wtedy
ek: P Ci
dk:C Psą funkcjami takimi, że
d e xk
k( )
xdla każdego x P . Funkcje e d
k,
kmuszą być wzajemnie jednoznaczne:
x
1 x
2e x
k( )
1 e x
k( )
2i podobnie dla funkcji d
k.
jawny kanał łączności
A B
O
Jeśli znajomość przekształcenia szyfrującego
ekjest równoważna znajomości przekształcenia deszyfrującego
dkto kryptosystem nazywamy symetrycznym .
Wiadomość od Alicji do Boba:
x x x1 2... ,xn
gdzie
x ii, 1,...,n, są jednostkami testu jawnego.
Alicja szyfruje tekst jawny x używając funkcji
ekotrzymując szyfrogram:
y y y1 2...yn,
gdzie y
i e x
k( ),
ii 1 ,..., . n
Bob stosuje przekształcenie d
k: x
i d y
k( ),
ii 1 ,..., n i uzyskuje tekst jawny x.
Alicja Szyfrator Deszyfrator Bob
Oskar
Klucz
jawny kanał łączności
bezpieczny kanał łączności kanał
podsłuchu
Arytmetyka modularna
a i b - liczby całkowite m - liczba naturalna
a b (mod ) m , a przystaje do b modulo m jeśli m dzieli a-b.
Liczbę m nazywamy modułem kongruencji a b (mod ) m .
a q m r
1
1, b q m r
2
2,
gdzie reszty z dzielenia spełniają warunek: 0 r r
1,
2 m 1 .
a b (mod ) m r
1 r
2.
a mod m oznacza resztę r
1z dzielenia a przez m .
Zastępując a przez a mod m , mówimy, że liczba całkowita a została zredukowana modulo m.
Z
mzbiór liczb całkowitych { , ,..., 0 1 m 1 } z określonymi działaniami dodawania + i mnożenia w ten sposób, że wyniki rzeczywistych działań są redukowane modulo m.
Przykład:
11 13 = 143 143 15(mod16), stąd 11 13 = 15 w Z
16Dodawanie + i mnożenie w Z
mposiadają własności działań arytmetycznych:
1. Dodawanie jest zamknięte: dla
a b, Z
m, a b Z
m. 2. Dodawanie jest przemienne:
a b Z, m, a b b a .
3. Dodawanie jest łączne: a b c , ,
Zm, ( a b ) c a ( b c ) . 4. Zero jest elementem neutralnym względem dodawania:
dla
aZ ,m a 0 0 a a.5. Elementem przeciwnym (odwrotnym) do
aZmjest m a :
a ( m a ) ( m a ) a 0 . 6. Mnożenie jest zamknięte: dla
a,bZm,abZm.
7. Mnożenie jest przemienne:
a b, Zm, ab ba.
8. Mnożenie jest łączne: a b c , ,
Zm, ( ) ( ) a bc ab c . 9. 1 jest elementem neutralnym względem mnożenia:
dla
aZ ,m 1a a 1 a.10. Dodawanie i mnożenie są działaniami rozdzielnymi:
dla a b c Z , ,
m, ( a b c ac bc ) , a b c ( ) ab ac .
Zbiór Z
mz dodawaniem (Z
m, +) tworzy strukturę algebraiczną zwaną grupą abelową (przemienną);
Zbiór Z
mz działaniami dodawania i mnożenia (Z
m, +, ) jest
pierścieniem.
Szyfr przesuwający (shift cipher)
P C K = = Z
26. Dla klucza 0 k 25 definiujemy
e x x k x
d y y k y
k k
( ) ( ) mod , ,
( ) ( ) mod , .
26 26
P C
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N 0 P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25.
Dla k = 3 szyfr ten był oryginalnie używany przez Juliusza Cezara (żył w latach 100 - 40 p.n.e.).
Przykład
k 11
tekst jawny:
spotk aniej utror ano
18 15 14 19 10 0 13 8 4 9
20 19 17 14 17 0 13 14
szyfrogram:
3 0 25 4 21 11 24 19 15 20
5 4 2 25 2 11 24 25
DAZEV LYTPU FECZC LYZ
Kryptosystem powinien spełniać następujące warunki:
1. Funkcje szyfrująca
eki deszyfrująca
dkmuszą być łatwe i szybkie w obliczaniu.
2. Kryptosystem musi być bezpieczny: przeciwnik (Oskar) znając kryptogram y nie jest w stanie znaleźć klucza k czy też tekstu jawnego x.
Określenie klucza k jest co najmniej tak trudne jak znalezienie tekstu jawnego.
Drugi warunek bezpieczeństwa kryptosytemu jest sformułowany w bardzo ogólny sposób.
Szyfr przesuwający nie jest bezpieczny.
#K = 26.
Do jego złamania możemy kolejno sprawdzać wartości klucza k
1 2, ,...,25
aż otrzymamy sensowny tekst jawny;
Średnio należy wykonać 26/2 = 13 prób.
Opisana metoda kryptoanalizy nazywa się przeszukiwaniem przestrzeni klucza, stąd warunkiem koniecznym (ale nie dostatecznym) bezpieczeństwa kryptosytemu jest to, aby przestrzeń klucza była możliwie duża, co uniemożliwi jej przeszukanie w realnym czasie.
Szyfr podstawieniowy
P C = i P = Z
26Przestrzeń klucza K - wszystkie możliwe permutacje (przekształcenia wzajemnie jednoznaczne) zbioru 26-elementowego.
Klucz k ustalona permutacja
Przekształcenie szyfrujące i deszyfrujące mają postać:
e x( )( ),x d 1( ),x
gdzie
1jest permutacją odwrotną.
Przykład
Przykładowa permutacja 26-literowego alfabetu:
a b c d e f g h i j k l m
X N Y A H P O G Z Q W B T
n o p q r s t u v w x y z
S F L R C V M U E K J D I.
Permutacja odwrotna:
A B C D E F G H I J K L M
d l r y v o h e z x w p t
N O P Q R S T U V W X Y Z
b g f j q n m u s k a c i
# K = 26!
Zadanie
Używając powyższej permutacji zdeszyfrować tekst:
MHSVI DPCFO CXTQH VMMCU ASDAF FAYIM XSZX.
Szyfr afiniczny
P = = ZC 26
, funkcja szyfrująca:
e x
k( ) ( ax b ) mod 26 ,
gdzie klucz szyfrujący k =
{ , }a bjest pewną parą liczb z
Z26.
Warunkiem jednoznaczności funkcji deszyfrującej jest istnienie jedynego rozwiązania x równania
y(ax b ) mod 26przy zadanym y .
Takie rozwiązanie istnieje dla a 0 względnie pierwszych z modułem 26
( ,a 26) 1
. Liczba a ma tzw. multiplikatywną odwrotność tzn. istnieje liczba
a
1
Z26taka, że
a a1 1mod26.Przekształcenie deszyfrujące:
x dk( )y a1y a b 1 mod26
dla a względnie pierwszych z 26. Klucz deszyfrujący
k
a1,a b1 jest jednoznacznie wyznaczony przez k i może być łatwo obliczony stosując algorytm Euklidesa do obliczenia a
1.
Jest to kryptosytem symetryczny.
( ,a 26) 1
dla
a 1 3 5 7 9 111517 19 21 23 25, , , , , , , , , , ,.
#K = 12 26 = 312 Przykład
k { , }7 3
, (7,26) = 1 i 7
1mod 26 15 .
Funkcja szyfrująca: funkcja deszyfrująca:
e x
k( ) 7 x 3 , d y
k( ) 15 y 19 15 y 7 ,
tekst jawny: szyfrogram:
kryptografia VSPEGXTSDAHD
Szyfr Vigenere’a
(dyplomata francuski Blaise de Vigenere żył w latach 1523-1596)
Jest to kryptosystem polialfabetyczny.
m 2 - ustalona liczba naturalna
P = =C K Z
26 m.
Dla klucza
k
k k1, ,...,2 km definiujemy przekształcenie szyfrujące
e x xk 1, 2,...,xm x1k x1, 2 k2,...,xmkm
i przekształcenie deszyfrujące
d y yk 1, 2,...,ym y1k y1, 2k2,...,ymkm ,
gdzie działania arytmetyczne wykonujemy modulo 26.
#K = 26
mDla m 5 #K >
1 1 10, 7.
Przykład
).
17 , 5 , 24 , 25 , 18 (
"
"
5
k
Szyfr k
m
Tekst jawny:
tenkr yptos ystem nieje stbez piecz ny Szyfrogram:
LDLPI QORTJ QRRJD FHCOV KSZJQ HHCHQ FX
Szyfr Hilla
(1929 rok)
m - liczba naturalna
P = = ZC 26 m.
Metoda szyfrowania polega na wykorzystaniu m przekształceń
liniowych m liter alfabetu tekstu jawnego;
Na przykład dla m=2
y x x
y x x
1 1 2
2 1 2
11 3
8 7
,
gdzie równości rozumiane są modulo 26.
Powyższe wzory można zapisać w postaci macierzowej:
(y y1, 2) ( ,x x1 2) 11 8 3 7
.
Kluczem przekształcenia szyfrującego jest macierz K o wymiarach 22.
Kluczem deszyfrującym jest macierz odwrotna K
1do macierzy K obliczona modulo 26:
K
1 7 18
23 11
.
Warunkiem istnienia macierzy odwrotnej jest to, aby wyznacznik macierzy K był liczbą względnie pierwszą z modułem 26.
Przykład
tekst jawny: lu ty (11,20) (19,24) szyfrogram: (3,4) (11,22)
ZU VI
Szyfry przestawieniowe
m 2 - ustaloną liczbą naturalną
P = =C Am,
gdzie A jest alfabetem tekstu jawnego (np. 26-elementowym zbiorem
liter)
Przestrzeń klucza K składa się ze wszystkich permutacji zbioru {1,2,...,m}.
Dla ustalonego klucza k będącego permutacją przekształcenie szyfrujące ma postać:
e(x x1, 2,...,xm) x( )1 ,x( )2 ,...,x(m) ,
a przekształcenie deszyfrujące:
d y y
( , ,...,
1 2y
m) y
1( )1, y
1( )2,..., y
1( )m,
gdzie
1jest permutacją odwrotną do .
Zadanie
Niech m = 6 i permutacja ma postać:
1 2 3 4 5 6
3 5 1 6 4 2
Zaszyfrować wiadomość:
Jestbr zydkap ogoda
W celu uzyskania 3 grup 6-literowych dodajemy na końcu tekstu jawnego x.
Przykład 1
tekst jawny: kryptografia wpisujemy wierszami do macierzy o wymiarach 4 3.
1 2 3
K R Y
P T O
G R A
F I A
Następnie odczytujemy wpisany tekst kolumnami w kolejności kolumn (2 1 3) otrzymując szyfrogram:
RTRIKPGFYOAA.
Możemy stosować różne odmiany tej metody:
1. Odczytywanie z tablicy nie musi odbywać się kolumnami.
2. Można korzystać z różnych figur geometrycznych.
3. Można wykorzystywać siatki w danej figurze, a tekst jawny wpisuje się w określone miejsca figury, a całkowite wypełnienie siatki
uzyskuje się przez obroty figury.
Przykład 2
Kwadrat o wymiarach
9 9dzielimy na cztery kwadraty o wymiarach
3 3
, których pola numerujemy ustaloną permutacją liczb 1,2,...,9.
1 2 3 7 4 1
4 5 6 8 5 2
7 8 9 9 6 3
3 6 9 9 8 7
2 5 8 6 5 4
1 4 7 3 2 1
Wycinamy teraz w sposób przypadkowy z tych czterech kwadratów 9 pól jednostkowych o numerach od 1 do 9. Otrzymujemy przykładowo następujący szablon:
1 2
37 4 1
4
56 8 5
27 8
99
63
3 6 9 9 8
72 5
86 5
41
4 7 3 2 1
w którym zakreślone pola oznaczają wycięte miejsca. Tekst jawny wpisujemy teraz wierszami w otwory szablonu, następnie obracamy szablon o 90
0i wpisujemy dalej. Obracając szablon jeszcze dwukrotnie wypełniamy całą tablicę. Kluczem tego szyfru jest szablon.
Szyfry przestawieniowe są szczególnym przypadkiem szyfrów Hilla. Niech będzie ustaloną permutacją zbioru
{ , ,..., }1 2 m. Definiujemy tzw. macierz permutacyjną
K ( )kijo wymiarach
m m
następującymi wzorami:
k i j
ij
1 0
jeśli
w przeciwnymwypadku
( )
.
Macierz ta zawiera w każdym wierszu i każdej kolumnie dokładnie
jedną jedynkę. Permutacji odwrotnej
1odpowiada macierz
odwrotna:
K1 K
1.
Macierz
Kjest kluczem w odpowiadającym szyfrze Hilla.
Dla podanego przykładu szyfru przedstawieniowego z m = 6 i podaną permutacją odpowiadająca macierz permutacyjna ma postać:
K
0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0
Natomiast macierz odwrotna
K1określająca przekształcenie deszyfrujące ma postać:
K
1
0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0