Klasyczne metody szyfrowania

Transkrypt

Klasyczne metody szyfrowania
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ª 2
Klasyczne metody szyfrowania
Korzenie kryptograi si¦gaj¡ czasów staro»ytnego Rzymu. Tam wªa±nie powstaª i byª u»ywany pierwszy system kryptograczny.
zwanego te»
klasycznych.
szyfrem Cezara
lub
cyklicznym
Od tego systemu,
zaczniemy nasz przegl¡d metod
Nast¦pnie rozwa»ymy budow¦ innych, bardziej skomplikowa-
nych systemów, które byªy u»ywane w historii lub te» byªy stworzone do
innych celów ni» ochrona tajemnic.
2.1 Szyfry cykliczne
Zostaªy wynalezione, a na pewno u»ywane przez Juliusza Cezara. Maj¡ one
bardzo ªatwy klucz, ale jednocze±nie s¡ ªatwe do zªamania.
Oznaczmy przez
jest
N.
p
jednostk¦ tekstu jawnego i zaªó»my »e tych jednostek
Wtedy funkcja szyfruj¡ca
Ek
jest okre±lona wzorem
Ek (p) = p + k(mod N ).
Kluczem jest tu liczba
Je±li
k
k,
a przestrze« kluczy pokrywa si¦ z alfabetem
ZN .
jest równe 3, to aby zaszyfrowa¢ sªowo TAK, przeksztaªcamy je w
ci¡g 19 0 12, nast¦pnie dodajemy do ka»dej z tych liczb 3 modulo 26 otrzymuj¡c 24 3 15 i z powrotem przeksztaªcamy liczby na litery by otrzyma¢
wdn.
Przeksztaªcenie szyfruj¡ce okre±lone powy»ej nazywamy
przesuni¦ciem.
Wygodnie jest tutaj napisa¢ alfabet, a pod nim liczby odpowiadaj¡ce poszczególnym literom.
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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
12
W celu odszyfrowania wiadomo±ci
tgyfz kqyz, zaszyfrowanej kluczem 6,
zamieniamy j¡ najpierw w ci¡g liczb 19 6 24 5 25 10 16 24 25. Tym razem,
pd ka»dej z liczb odejmujemy 6 (modulo 26) i otrzymujemy 13 0 18 25 19
4 10 18 19.
W nast¦pnym kroku patrzymy jakie litery s¡ na pozycjach z
ostatniego ci¡gu i otrzymujemy wiadomo±¢ jawn¡ NASZ TEKST.
Jest ogólnie przyj¦te, »e tekst zaszyfrowany podajemy w blokach pi¦cio
literowych. Uªatwia to przekazywanie tekstu i zmniejsza ryzyko pomyªki przy
wysyªaniu i deszyfrowaniu.
Zajmiemy si¦ teraz ªamaniem szyfrów cyklicznych. Je±li wiemy na pewno,
»e mamy do czynienia z szyfrem cyklicznym i znamy ilo±¢ liter w alfabecie,
czyli
N,
ka»d¡ z
ªamanie polega na znalezieniu liczby
N
k.
Za
k
wystarczy podstawi¢
mo»liwo±ci i sprawdza¢ po kolei sens otrzymanych w ten sposób
wiadomo±ci.
Na przykªad, przypu±¢my, »e chcemy zªama¢ szyfr
Wiemy przy tym, »e
N = 26.
Sprawdzamy po kolei wszystkie mo»liwe klucze.
Zauwa»amy przy tym, »e odejmowanie liczby
dodawanie liczby
xolfd vhcdp nrzd.
26−k modulo 26.
k modulo 26 jest tym samym, co
Dodajemy wi¦c do liczb odpowiadaj¡cych
literom szyfru, tj. 23 14 11 5 3 21 7 2 3 15 13 17 25 3, kolejno
2, . . . , k = 25.
kilka pierwszych liter. Przy
Podobnie dla
k = 1, k =
Cz¦sto, aby wyeliminowa¢ przypadek wystarczy wypróbowa¢
k = 2.
k = 1 mamy pocz¡tek YPM, co jest nieczytalne.
Tym razem mamy ZQ. Szcz¦±cie u±miecha si¦ do nas
dosy¢ pó¹no, bo dopiero dla
k = 23.
Otrzymujemy wówczas ci¡g 20 11 8
2 0 18 4 25 0 12 10 14 22 0, co daje fraz¦ ULICA SEZAMKOWA. Ten
sposób ªamania szyfrów nazywa si¦
przestrzeni kluczy.
metod¡ brutalnej siªy,
lub
wyczerpania
Juliusz Cezar u»ywaª klucza 3, ale i tak dowódcy legionów raczej domy±lali si¦ tre±ci przysªanych wiadomo±ci ni» je odszyfrowywali. Jego nast¦pca,
Oktawian August u»ywaª klucza 2, nast¦pnie 1, a potem w ogóle zrezygnowaª
z szyfrowania wiadomo±ci.
2.2 Monoalfabetyczny szyfr Beauforta
W zasadzie szyfr ten, wynaleziony przez G. Sestri w 1710 roku, jest cz¦±ci¡ bardziej skomplikowanej techniki szyfrowania. Tutaj przedstawimy tylko
podstawowy krok tej techniki, który mo»e istnie¢ jako samodzielny system
szyfruj¡cy.
Podobnie jak w przypadku szyfrów Cezara, przestrzeni¡ kluczy jest
13
ZN ,
ale przeksztaªcenie szyfruj¡ce jest dane wzorem
Ek (p) = −p + k(mod N ).
Zauwa»my, »e przeksztaªcenie deszyfruj¡ce ma tak¡ sam¡ posta¢. Zatem szyfrowanie i deszyfrowanie odbywa si¦ za pomoc¡ tego samego przeksztaªcenia.
Zauwa»my te», »e w przeciwie«stwie do kryptosystemu Cezara, gdzie
identyczno±ci¡, w kryptosystemie Beauforta,
»adnego
Ek
E0
byªo
nie jest identyczno±ci¡ dla
k.
Ze wzgl¦du na maª¡ liczb¦ kluczy, równie» i ten szyfr mo»na ªama¢ przez
wyczerpanie przestrzeni kluczy. Podamy jeszcze alfabet jawny i szyfrowy dla
klucza 3. Zauwa»my, »e kolejno±¢ liter w alfabecie szyfrowym jest odwrócona.
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
D C B A Z Y X W V U T S R Q P O N M L K J I H G F E
2.3 Kody aniczne jednowymiarowe
Je»eli zamiast jednej liczby jeste±my w stanie zapami¦ta¢ dwie, to mo»emy
stosowa¢ nieco bardziej skomplikowany
szyfruj¡ce ma posta¢
kod aniczny,
E(p) = ap + b (mod N ).
gdzie przeksztaªcenie
Naszym kluczem jest tu pa-
ra (a, b). ›eby rozszyfrowa¢ wiadomo±¢ u»ywamy innego klucza. Dokªadnie,
D(c) = a0 c + b0 ( mod N ), gdzie a0 jest liczb¡ odwrotn¡ do a modulo N , a
b0 = −a0 b w ZN . Musimy tu uwa»a¢, czy NWD(a, N ) jest równy 1, gdy» w
przeciwnym wypadku nasz szyfr nie b¦dzie jednoznaczny. Kiedy a = 1, kod
aniczny staje si¦ kodem cyklicznym. Gdy b = 0, kod aniczny nazywamy
szyfrem liniowym.
W przypadku alfabetu 26-literowego, przestrze« kluczy
12 · 26)
elementów. Nie jest to du»a liczba z kyptoanalitycznego
ma 312 (=
punktu widzenia, ale rozwa»enie takiej liczby przypadków mo»e stworzy¢
pewne trudno±ci.
Zademostrujemy metod¦, która ogranicza istotnie liczb¦
rozwa»anych przypadków.
2.1 Przykªad.
szyfrze tym najcz¦stsz¡ liter¡
g
vqtmx ozdtg hgjqm aqhcx bgkgt ag. W
jest g, a nast¦pn¡ jest q. Podejrzewamy, »e
a (pozycja 0), natomiast q (pozycja 16), to e
Zªamiemy szyfr
(pozycja 6) to zaszyfrowane
(pozycja 4). Mamy wi¦c
6a0 +b0 ≡0( mod 26)
16a0 +b0 ≡4( mod 26)
14
Odejmuj¡c obie kongruencje stronami otrzymujemy
0
0
st¡d natychmiast a = 3. Chwil¦ potem mamy b =
10a0 ≡ 4 (mod 26), a
8 i mamy klucz deszy-
fruj¡cy. Zastosowanie tego klucza daje nam tekst jawny
do zªamania.
Ten szyfr nadaje si¦
2.4 Permutacje alfabetu
Znacznie trudniejsze od szyfrów cyklicznych oraz anicznych s¡ szyfry, w których ka»da litera alfabetu jawnego jest zast¡piona liter¡ alfabetu szyfrowego
bez stosowania okre±lonego algorytmu arytmetycznego.
Zatem przestrze«
kluczy jest równa zbiorowi wszystkich permutacji alfabetu. W celu uªatwienia zapami¦tania przeksztaªcenia szyfruj¡cego stosujemy tu innego rodzaju
klucz. Jest to sªowo, którego litery zast¦puj¡ pocz¡tkowe litery alfabetu jawnego.
Dalsze litery dopisujemy tak jak wyst¦puj¡ one w alfabecie jawnym
przy czym pomijamy ju» wykorzystane znaki.
Na przykªad stosuj¡c klucz
,,szyfrowanie dostajemy nast¦puj¡ce przeksztaªcenie szyfruj¡ce:
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
S Z Y F R O W A N I E B C D G H J K L M P Q T U V X
permutacyjnym. Jego odmian¡ jest stosowany w pierwszych maszynach szyfruj¡cych kryptosystem transpozycyjny, tj. taki, którego przestrze« kluczy jest równa zbiorowi wszystkich
Opisany powy»ej kryptosystem nazywamy
permutacji, które mo»na zapisa¢ w postaci iloczynu rozª¡cznych transpozycji.
Przykªadem tu jest nast¦puj¡ce przeksztaªcenie szyfruj¡ce:
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
Z C B F R D W K N J H M L I O P T E Y Q X V G U S A
Poniewa» szyfry tego rodzaju byªy zaprogramowane w maszynach jako
metody standardowe, nikt nie musiaª pami¦ta¢ klucza. Zalet¡ szyfrów transpozycyjnych jest fakt, »e klucze szyfruj¡cy i rozszyfrowuj¡cy s¡ identyczne.
Zatem ta sama maszyna sªu»yªa zarówno do szyfrowania jak i do rozszyfrowywania wiadomo±ci.
15
2.5 Analiza cz¦sto±ci wyst¦powania liter
Ta metoda ªamania szyfrów opiera si¦ na prawach rachunku prawdopodobie«stwa. Wiadomo, »e pewne litery wyst¦puj¡ w tek±cie cz¦±ciej ni» inne.
Oto alfabet angielski poukªadany wedªug cz¦sto±ci wyst¦powania liter: E 12.5%, T, A, O, I, N 9.2-7%, S, R 6%, L, D 4%, C, U, M, F, P, G, W,
Y, B 3-1.5%, V, K, X, J, Q, Z 1-0.1%,
Je»eli wi¦c przechwycimy wiadomo±¢ na tyle dªug¡ (lub na tyle du»o
wiadomo±ci), aby wyeliminowa¢ przypadkowo±¢, mo»emy przypuszcza¢, »e
najcz¦±ciej powtarzaj¡ca si¦ litera to zakodowane E, T, A, O, I lub N. Je»eli
mamy do czynienia z kodem cyklicznym, nasze sprawdzanie mo»liwo±ci dla
b
ogranicza si¦ do sze±ciu przypadków. Okazuje si¦, »e na podstawie badania
entropii j¦zyka, czyli ilo±ci informacji zawartej w jednym symbolu zaszyfrowanego tekstu, mo»na zªama¢ ka»dy szyfr, który szyfruje tekst angielski maj¡cy
wi¦cej ni» 25 liter.
Oczywi±cie metoda ta nie dziaªa, je±li przechwytywane wiadomo±ci s¡
krótkie (maj¡ mniej ni» 25 liter) i klucz cz¦sto si¦ zmienia.
je±li przechwycimy tylko
xolfd vhcdpnrzd.
Na przykªad,
jak w rozwa»anym wy»ej szyfrze
cyklicznym, to nie wida¢ tu, która litera pojawia si¦ najcz¦±ciej. Z drugiej
strony jednak, jak si¦ okazuje, klucze s¡ bardzo niech¦tnie zmieniane. Rz¡d
Stanów Zjednoczonych nie zdecydowaª si¦ na zmian¦ kluczy nawet po tym,
jak wszystkie zgin¦ªy w tajemniczej kradzie»y w Zagrzebiu na pocz¡tku drugiej wojny ±wiatowej.
Kiedy ju» wiemy, które litery pojawiaj¡ si¦ najcz¦±ciej, zwracamy uwag¦
na powtarzaj¡ce si¦ pary.
Na przykªad EA jest najcz¦±ciej pojawiaj¡cym
si¦ digramem samogªosek. Dosy¢ cz¦sty jest te» digram IO. Natomiast OI,
IA, AI, OA i AO s¡ ju» znacznie rzadsze. Digram AE nie pojawia si¦ prawie
nigdy. Ogólnie, dziesi¦¢ najcz¦stszych digramów w j¦zyku angielskim, to TH,
HE, AN, IN, ER, RE, ON, ES, TI oraz AT.
Dla przykªadu spróbujmy rozszyfrowa¢ nast¦puj¡cy tekst
wktqr
lwktq
fqatr
yggrg
ltqut
ziqzd
rziqz
kqveq
fsnzg
ksnqv
xlzwt
olzgg
kkgzl
ziglt
qozof
lsoet
fgxko
qktqe
vigso
utqlz
rvozi
liofu
ethzq
cto
tk
qfqbo
sqkut
wstql
xzeit
Aby uªatwi¢ nieco ªamanie, przypu±¢my »e wiemy ju», i» najcz¦±ciej pojawiaj¡c¡ si¦ w tek±cie jawnym liter¡ nie jest
16
e.
Z analizy cz¦sto±ci wynika, »e najcz¦stszymi literami w zaszyfrowanym
tek±cie s¡
q, t, z, g, k, l, o, i i f.
q
t
z
g
k
l
o
i
f
Tworzymy teraz tak zwan¡ tabel¦ kontaktów:
q
t
z g k
l
o i
f
0
0
2
0
3
2
1
0
1
6
0
0
0
2
2
1
0
1
2
1
0
2
0
1
2
4
0
0
0
2
2
0
1
0
0
2
1
3
0
1
1
0
1
0
0
1
2
3
0
0
0
0
1
0
0
0
2
0
0
3
0
0
3
3
1
0
1
0
0
1
0
0
2
0
0
1
0
0
0
1
0
Podaje ona jak cz¦sto w zaszyfrowanym tek±cie wyst¦puj¡ digramy zªo»one
z najcz¦±ciej wyst¦puj¡cych liter. Na przykªad digram
(szukamy w tabeli miejsca, gdzie krzy»uje si¦ wiersz
Wiemy, »e
q
k
kq
wyst¦puje 3 razy
z kolumn¡
q.
nie jest zaszyfrowanym E. Zgadujemy zatem, »e to
powiada E. Poniewa» mamy 6 par
tq,
a
t
ma by¢ E, wi¦c
q
t
od-
odpowiada
zapewne A. Trzeci¡ liter¡ z kolei jest Z. Poniewa» T jest jeszcze ,,wolne,
przyporz¡dkujmy
z → T.
Poniewa»
nie pojawia, przypuszczamy, »e
zi
i → H.
pojawia si¦ 4 razy, a
iz
w ogóle si¦
Na koniec zauwa»amy jeszcze, »e
pojawia si¦ dwa razy. Dobrze jest wi¦c postawi¢, »e
g
gg
to O. Podstawiamy
teraz odgadni¦te litery do naszego kryptogramu i odgadujemy reszt¦ liter na
zasadzie ,,co pasuje.
Tekstem jawnym jest wi¦c:
BREAD THAT MUST
BE SLICED WITH AN AX IS A BREAD THAT IS TOO NOURISHING
LARGE NAKED CARROTS ARE ACCEPTABLE AS FOOD ONLY TO
THOSE WHO LIVE IN HUTCHES EAGERLY AWAITING EASTER.
2.6 Homofony i nulle
kiedy przekonano si¦, »e analiza cz¦sto±ci wyst¦powania liter jest pot¦»n¡
broni¡, zacz¦to si¦ zastanawia¢, jak utrudni¢ t¦ analiz¦. Nasuwaj¡ si¦ tutaj
dwie dosy¢ oczywiste metody. Jedn¡ z nich jest ,,dokªadanie liter, a drug¡
zmniejszanie ilo±ci najcz¦±ciej powtarzaj¡cych si¦ znaków.
17
Prowadzi to do
dwóch denicji.
Nullem
nazywamy jednostk¦ tekstu zaszyfrowanego, któ-
rej nie odpowiada »adna jednostka tekstu jawnego. Oczywi±cie, nasze przeksztaªcenie szyfruj¡ce musi by¢ w dalszym ci¡gu wzajemnie jednoznaczne.
Zatem, w praktyce, do alfabetu jawnego dorzucamy ,,znak pusty, któremu
odpowiada pewien znak w alfabecie zaszyfrowanym. Na przykªad
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
s z y f r o w a n i e 3 c d g h j k 4 m p q
W powy»szym szyfrze, wyst¦puj¡ dwa nulle:
b i l.
t
∅ ∅0
u v x b l
Wtajemniczeni wiedz¡, »e
po otrzymaniu zaszyfrowanej wiadomo±ci, nale»y te dwa znaki zignorowa¢.
Na przykªad zaszyfrowane wiadomo±ci
esmsbhp13m1s
oraz
e1sbmsh1pb3ms
oznaczaj¡ to samo, a mianowicie wiadomo±¢ KATAPULTA.
Druga denicja jest nast¦puj¡ca:
homofonem nazywamy jednostk¦ tekstu
jawnego, której odpowiada wi¦cej ni» jedna jednostka tekstu zaszyfrowanego.
I tym razem mamy problemy z wieloznaczno±ci¡ funkcji szyfruj¡cej. Problem
ten pokonujemy powtarzaj¡c elementy w alfabecie jawnym. A oto przykªad
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 A A T
s z y f r o w a n i e 3 c d g h j k 4 m p q
t
u v x b 5 l
Trzy homofony powy»szego alfabetu to A, A i T. Dzi¦ki nim wiadomo±¢ KATAPULTA mo»emy zaszyfrowa¢ tak, »e »adna litera alfabetu zaszyfrowanego
nie powtarza si¦:
esm5hp31b.
Przy ukªadaniu przeksztaªcenia szyfruj¡cego mo»emy stosowa¢ zarówno
nulle jak i homofony. Šamanie szyfru jest wtedy jeszcze bardziej utrudnione.
Oprócz tych dwóch utrudnie« stosowane s¡ te» i inne bardziej skomplikowane.
Niektóre z nich opiszemy poni»ej.
2.7 Jednostki dwuliterowe czyli digramy
Digramy jako alfabet po raz pierwszy zastosowaª niejaki Giovanni Battista
Porta w 1563 roku. Alfabet taki skªadaª si¦ z czterystu digramów i do ka»dego
z nich Porta z niebywaª¡ inwencj¡ dobraª pewien szczególny znak.
Ogólnie, stosuj¡c digramy jako jednostki tekstu jawnego, mamy alfabet
2
zªo»ony z N liter. Jego symbole zast¦pujemy b¡d¹ pojedynczymi znakami,
18
Rysunek 2.1: Tablica Porty
jak to zrobiª Porta, b¡d¹ te» (innymi) digramami.
Nasze przeksztaªcenie
szyfruj¡ce przedstawiamy w postaci tabeli, jak na przykªad w tabeli Porty.
Dokªadnie, je±li
2
cja E∗k : A →
A jest alfabetem, to przeksztaªceniem bazowym jest bijekA2 . W szczególno±ci liczba liter w tek±cie jawnym m musi
by¢ parzysta. Przestrzeni¡ kluczy jest tu oczywi±cie zbiór wszystkich permu2
∗
tacji zbioru A . Przeksztaªcenie szyfruj¡ce Ek jest generowane przez Ek w
naturalny sposób, tj. Je±li
m = m1 m2 . . . mp ,
gdzie
mi
s¡ digramami, to
Ek (m) = Ek∗ (m2 )Ek∗ (m2 ) . . . Ek∗ (mp ).
Powy»sze przeksztaªcenie nazywamy
2-dzielnym.
Aby zªama¢ kod digramowy mo»emy stosowa¢ analiz¦ cz¦sto±ci wyst¦powania jednostek dwuliterowych. Aby metoda ta si¦ powiodªa, przechwycony
tekst musi by¢ bardzo dªugi. Je»eli dla tekstu o jednostkach jednoliterowych
potrzebowali±my N znaków, aby ªamanie si¦ powiodªo, to teraz potrzebujemy
2
okoªo N znaków. Dla j¦zyka angielskiego jest to ju» ponad 525 liter.
19
Gªówn¡ przeszkod¡ przy stosowaniu szyfrów dwudzielnych jest brak efektywnego algorytmu szyfruj¡cego i deszyfruj¡cego. Próby uproszczenia ogólnej zasady doprowadziªy do powstania szyfrów opartych na kwadracie oraz
na macierzach. Szyfry oparte na kwadracie omówimy w nast¦pnych trzech
podrozdziaªach.
2.8 Szyfr Playfaira
Problem zapami¦tania du»ej ilo±ci znaków doprowadziª w 1854 roku niejakiego Charlesa Wheatstone'a do wynalezienia prostej metody zast¦powania
jednego bloku liter drugim. Litery alfabetu umieszczone s¡ w kwadracie
5×5,
a blok liter tekstu jawnego tworzy w tym kwadracie przek¡tn¡ prostok¡ta.
Blok dwuliterowy odczytany z drugiej przek¡tnej jest odpowiadaj¡cym blokiem kryptotekstu. Je±li litery znajduj¡ si¦ w tym samym wierszu lub w tej
samej kolumnie, szyfrowanie jest nieco trudniejsze. Ogólnie po krótkiej praktyce, ªatwo jest posªugiwa¢ si¦ opisanym szyfrem. Szyfr ten nazwany szyfrem
Playfaira, byª stosowany przez Anglików, prawdopodobnie, od czasów Wojny
Krymskiej (1854), poprzez Wojny Burskie (1880 do 1902) a» do ko«ca pierwszej wojny ±wiatowej. Wiadomo jednak, »e od poªowy 1915 roku, Niemcy nie
mieli problemów z jego zªamaniem.
Szyfr ten u»ywa digramów jako jednostek tekstu. Kluczem jest macierz
5×5
zawieraj¡ca 25 liter (bez j). Do jej uªo»enia u»yjemy sªowa kluczowego
,,szyfrowanie.
s
o
e
h
q
Digram
xy = kij kmn ,
gdzie
z
w
b
k
t
x 6= y
y f
a n
c d
l m
u v
r
i
g
p
x
oraz
i, j , m, n ∈ {1, 2, 3, 4, 5}
je±li
i 6= m
i=m
i 6= m
szyfrujemy
jako


kin kmj
ki,j+1 ki,n+1


ki+1,j km+1,j
je±li
je±li
oraz
oraz
oraz
j=
6 n;
j=
6 n;
j = n.
(Dodanie 1 do wska¹nika 5 daje tu wynik 1.) Je»eli
lamy, tzn. wtykamy pomi¦dzy
xiy
liter¦
20
q,
x = y,
digram rozdzie-
która jest ró»na od
x
i od
y.
Przeksztaªcenie deszyfruj¡ce w pierwszym przypadku, tj. gdy deszyfrowane litery znajduj¡ si¦ w innych wierszach oraz kolumnach, pokrywa si¦
z szyfruj¡cym.
W pozostaªych przypadkach pozycje liter digramu przesu-
wamy w lewo lub w gór¦ stosuj¡c zasad¦ cykliczno±ci.
zaszyfrowanym tek±cie nie mo»e si¦ tra¢ digram postaci
Zauwa»my, »e w
xx.
Šamanie szyfru Playfaira i pozostaªych dwóch szyfrów opartych na kwadracie, polega na analizie statystycznej powi¡za« liter kryptotekstu i na tej
podstawie odtworzeniu kwadratu.
2.9 Podwójny szyfr Playfaira
Aby unikn¡¢ niewygody zwi¡zanej z digramami zªo»onymi z takich samych liter, w latach trzydziestych XX wieku, na potrzeby faszystowskiej organizacji
SD stworzono system oparty na dwóch kwadratach. Tym razem zrezygnowano z litery
y,
która byªa zast¦powana przez
tak»e zostaªo zmodykowane, tzn.
i.
Przeksztaªcenie szyfruj¡ce
zostaª dodany dodatkowy krok.
Krok
podstawowy algorytmu szyfruj¡cego niewiele ró»niª si¦ od przeksztaªcenia
Playfaira. Dokªadnie, wykorzystano dwa kwadraty:
d
k
v
c
q
o
a
r
g
u
p
s
f
i
w
e l
t n
h b
j m
x z
s i
r t
b f
l m
u v
c
d
g
o
w
h
n
j
p
x
e
a
k .
q
z
(2.1)
Pierwszej litery digramu szukamy w pierwszym kwadracie, a drugiej w drugim. W rezultacie mamy tylko dwa przypadki. Je±li
lij lmn
jest digramem,
lij jest w pierwszym kwadracie, a lmn w drugim, i, j , m, n ∈
{1, 2, 3, 4, 5}, to bijekcja zbioru digramów wyglada nast¦puj¡co.
(
lmj lin
je±li i 6= m,
E ∗ (lij lmn ) =
li,j+1 lm,n+1 je±li i = m
przy czym
i znów, pierwsza litera jest w pierwszym kwadracie, a druga w drugim oraz
dodanie 1 rozumiemy jako przesuni¦cie cykliczne w kwadracie.
Jak ju» wspomnieli±my, algorytm szyfrowania skªadaª si¦ z dwóch kroków.
W pierwszym tekst jawny dzielony byª na póª lub na bloki 17-literowe w
przypadku, gdy wiadomo±¢ zawieraªa wi¦cej ni» 34 litery.
21
Bloki te byªy
umieszczane jeden nad drugim, a digramy do szyfrowania zbierano pionowo.
Na przykªad, aby zaszyfrowa¢ tekst
ZBIERAMY SIE W PIATEK
dzielimy
go na poªowy i odpowiednio umieszczamy:
Z B I E R A M Y S
I E W P I A T E K
ZI, BE, IW, EP, RI, AA, MT, YE, SK. Stosuj¡c kwadraty z (2.1) otrzymujemy digramy lv, lk, wo, jh, of, sr, nm, pq oraz
fa, które po prostu ª¡czymy w tekst otrzymuj¡c szyfr: lvlkw ojhof srnmp qfa.
Digramy do przeksztaªcenia to
Przy deszyfrowaniu, post¦pujemy w odwrotnej kolejno±ci. Zauwa»amy, »e
przeksztaªcenie deszyfruj¡ce digramy jest takie samo jak szyfruj¡ce w pierwszym przypadku, tj. kiedy litery znajduj¡ si¦ w wierszach o innych numerach.
2.10 szyfr Delastelle'a
Kwadrat zaproponowany przez felixa Delastelle'a w 1902 roku jest typowym
przykªadem szyfru transpozycyjnego (przeksztaªcenie szyfruj¡ce jest równe
deszyfruj¡cemu) i eliminuje wszelkie niedogodno±ci zwi¡zane ze stosowaniem
ró»nych przypadków. W kwadracie Delastelle'a nie ma litery
pujemy przez
v.
s
o
b
j
q
z
a
c
k
t
y f
n i
d g
l m
u v
w, któr¡ zast¦-
r
e
h
p
x
Bazowe przeksztaªcenie szyfruj¡ce polega na zamianie wspóªrz¦dnych:
(lij lmn ) = lim ljn .
Dla przykªadu zaszyfrujemy fraz¦
E∗
SZYFR FRANCUSKI.
Pod ka»d¡ liter¡ piszemy pionowo jej wspóªrz¦dne w kwadracie, i znajdujemy
litery o wspóªrz¦dnych zapisanych poziomo.
S Z
1 1s
1 2z
Y F
1 1s
3 4g
R F
1 1s
5 4v
Otrzymany kryptogram to
R A
1 2z
5 2t
szsgs vztnc qbki.
22
N C
2 3n
3 2c
U S
5 1q
3 1b
K I
4 2k
2 4i
2.11 Jednostki wieloliterowe
Aby jeszcze bardziej utrudni¢ ªamanie tekstu mo»emy zastosowa¢ trigramy,
czyli jednostki trzyliterowe. Pojawia si¦ tu jednak problem odpowiedniego
zapisania przeksztaªcenia szyfruj¡cego tabelka musi by¢ trzywymiarowa.
Tym gorszy jest ten problem im dªu»sze s¡ jednostki tekstu. Specjalne sze±ciany szyfruj¡ce na wzór kwadratów Playfaira byªy proponowane przez Luigi
Gioppi di Tuerkheim w 1897 roku oraz przez Williama Friedmana w latach
dwudziestych XX wieku. Zdecydowanie ch¦tniej przyj¦to popularne podczas
I Wojny ‘wiatowej ksi¡»ki kodowe, gdzie szyfrowano od razu caªe wyrazy
a nawet zdania. Jednostkami tekstu jawnego s¡ tu cz¦sto powtarzaj¡ce si¦
sekwencje liter. W dalszej perspektywie oznacza to tworzenie swego rodzaju
,,sªowników zwanych ksi¡»kami kodowymi. I tu pojawia si¦ kolejny problem.
Nikt nie jest w stanie pami¦ta¢ caªej tre±ci takiej ksi¡»ki. Zatem musi ona
zawsze by¢ pod r¦k¡ zarówno koduj¡cego jak i dekoduj¡cego.
Stwarza to
du»e pole manewru dla szpiegów i nie tylko. W sierpniu 1914 roku niemiecki
kr¡»ownik
Magdeburg
próbowaª uciec od rosyjskiego pancernika i sztuka ta
mu si¦ nie udaªa. Co gorsza, statek zamiast zaton¡¢, osiadª na mieli¹nie i
w zwi¡zku z tym wszystkie ksi¡»ki kodowe niemieckiej marynarki zamiast
zaton¡¢, traªy w r¦ce Rosjan, którzy po przestudiowaniu ich ,,podali dalej.
W rezultacie ksi¡»ki dostaªy si¦ w r¦ce niejakiego Winstona Churchilla, który
wiedziaª jak je wykorzysta¢.
2.12 Szyfry polialfabetyczne
Blaise de Vigenére w wydanej w 1586 roku ksi¡»ce
Traicté des Chifres
opi-
saª kilka ró»nych metod szyfrowania. Ostatecznie jego nazwiskiem nazwano
szyfr, który opisany byª wcze±niej przez biskupa J.H. von Trittenheim'a. Idea
szyfrów tego typu polega na u»yciu kilku metod szyfruj¡cych nast¦puj¡cych
po sobie.
Na przykªad, rozwa»my ci¡g kluczy
k0 , k1 , . . . , kr−1
do szyfrów
Cezara. Przeksztaªcenie szyfruj¡ce deniujemy w nast¦puj¡cy sposób.
Ek0 k1 ...kr−1 (m0 m1 . . . mn ) = (m0 + k0 )(m1 + k1 ) . . . (mn + kn mod r ),
przy czy dodawanie wykonujemy modulo liczba liter w alfabecie.
Stosuj¡c uto»samienie liter alfabetu z liczbami modulo 26 mo»emy uto»sami¢ ci¡g kluczy i sªowo. Na przykªad zaszyfrujmy
BETYCZNA stosuj¡c klucz anulka.
FUNKCJA POLIALFA-
W tym celu uªó»my tabel¦ przesuni¦¢:
23
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
a b c d e f g h i j k l m n o p q r
s
n o p q r s t u v w x y z a b c d e
f g h i
u v w x y z a b c d e f
g h i
t u v w x y z
j
j k l m n o p q
k l m
r s
l m n o p q r s t u v w x y z a b c d e f g h
k
l m n o p q r s t u v w x y z a b c d e f
a b c d e f g h i j k l m n o p q r
s
i
t
j k
g h i
j
t u v w x y z
Pierwszy wiersz powy»szej tabeli to alfabet, a ka»dy nast¦pny wiersz, to
alfabet pisany pocz¡wszy od odpowiedniej litery sªowaklucza.
Nast¦pnie nasz tekst dzielimy na bloki dªugo±ci sªowa ,,anulka i szyfrujemy pierwsz¡ liter¦ ka»dego bloku wedªug pierwszego szyfru, drug¡ wedªug
drugiego itd.
F U N K C J
a n u l k a
f h h v m j
A P O L I A
a n u l k a
a c i w s a
L F A B E T
a n u l k a
l s u m o t
Y C Z N A
a n u l k
y p t y k
Otrzymali±my zatem kryptogram
fhhvm jaciw salsu motyp tyk.
Deszyfro-
wanie odbywa si¦ na podobnej zasadzie, tj.
Dk0 k1 ...kr−1 (m0 m1 . . . mn ) = (m0 − k0 )(m1 − k1 ) . . . (mn − kn mod r ),
gdzie odejmowanie jest wykonywane modulo liczba liter w alfabecie.
Aby
uªatwi¢ szyfrowanie i odszyfrowywanie, J.H. von Trittenheim zaproponowaª
poni»sz¡ tabel¦ przesuni¦¢ alfabetu. Nazywa si¦ ona
tabula recta.
24
tablic¡ Tryteniusza
lub
a b c d e
f
b c d e
f
g h
g h
c d e
f
d e
f
g h
e
f
g h
f
g h
g h
g h
i
j
k
i
j
k
l m n o p q r
l m n o p q r
l m n o p q r
i
j
k
i
j
k
l m n o p q r
i
j
k
l m n o p q r
l m n o p q r
i
j
k
i
j
k
l m n o p q r
l m n o p q r
h
i
j
k
i
j
k
l m n o p q r
j
k
l m n o p q r
k
l m n o p q r
l m n o p q r
s
s
s
s
s
s
s
s
s
s
s
t u v w x y z
t u v w x y z a
t u v w x y z a b
t u v w x y z a b c
t u v w x y z a b c d
t u v w x y z a b c d e
t u v w x y z a b c d e
t u v w x y z a b c d e
t u v w x y z a b c d e
t u v w x y z a b c d e
t u v w x y z a b c d e
t u v w x y z a b c d e
m n o p q r
s
n o p q r
s
t u v w x y z a b c d e
o p q r
s
t u v w x y z a b c d e
p q r
s
t u v w x y z a b c d e
q r
s
t u v w x y z a b c d e
r
s
t u v w x y z a b c d e
t u v w x y z a b c d e
s
t u v w x y z a b c d e
u v w x y z a b c d e
f
g h
v w x y z a b c d e
f
w x y z a b c d e
f
g h
x y z a b c d e
f
g h
y z a b c d e
f
g h
z a b c d e
g h
f
s
i
f
g h
f
f
f
f
g h
f
f
g
g h
g h
g h
i
i
j
i
j
k
i
j
k
l
l m
g h
f g h
f g h
i
j
k
g h i
j
k
l m n
k
l m n o
g h i
g h
f
f
f
f
i
j
j k
l m n o p
i
j k l m n o p q
k l m n o p q r
g h
i
j
i
j
k
l m n o p q r
l m n o p q r
i
j
k
i
j
k
l m n o p q r
i
j
k
l m n o p q r
i
j
k
l m n o p q r
j
k
l m n o p q r
s
s
s
s
s
s
t
t u
t u v
t u v w
t u v w x
t u v w x y
Šamanie szyfrów Vigenére'a polega na dopasowaniu odpowiedniego alfabetu do pozycji danej litery. Gªównym problemem jest tutaj jednak znalezienie okresu
r.
I to jest zapewne gªówna przyczyna, dla której szyfr Viginére'a
byª ,,nieªamalny przez prawie trzysta lat! Dopiero w 1863 roku, ocer armii pruskiej, F. W. Kasiski wynalazª metod¦
wypadkowej przypadkowo±ci1 ,
której nie opiszemy z uwagi na zbyt skomplikowany aparat statystyczny.
Wykorzystuj¡c ci¡g kluczy
k0 k1 · · · kr−1
do monoalfabetycznych szyfrów
Beauforta tworzymy szyfr Beauforta, w którym przeksztaªcenia szyfruj¡ce i
deszyfruj¡ce pokrywaj¡ si¦.
Ek0 k1 ...kr−1 (m0 m1 . . . mn ) = (−m0 + k0 )(−m1 + k1 ) . . . (−mn + kn mod r ),
1 ang.
the incidence of coincidences
25
Dodawanie i odejmowanie, odbywa si¦ na zasadach arytmetyki modularnej z
moduªem, którym jest liczba liter w alfabecie.
Stosuj¡c uto»samienie liter alfabetu z liczbami modulo 26 mo»emy uto»sami¢ ci¡g kluczy i pewien wyraz hasªo. Dla przykªadu zaszyfrujmy
CJA POLIALFABETYCZNA
stosuj¡c klucz
anulka.
FUNK-
W tym celu uªó»my
tabel¦ alfabetów szyfruj¡cych:
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
a z y x w v u t
s r q p o n m l k j i h g f
n m l k j
f e d c b a z y x w v u t s
u t
l
i h g
s r q p o n m l k j
k j
k j
i h g f
i
h g f e d c b a z
e
d c b
r
q p o
y x w v
e d c b a z y x w v u t s r q p o n m
i h g f e d c b a z y x w v u t s r q p o n m l
a z y x w v u t
s r q p o n m l k j i h g f
Nast¦pnie nasz tekst dzielimy na bloki dªugo±ci sªowa
e
d c b
anulka
i szyfru-
jemy pierwsz¡ liter¦ ka»dego bloku wedªug pierwszego szyfru, drug¡ wedªug
drugiego itd.
F U N K C J
a n u l k a
v t h b i r
A P O L I A
a n u l k a
a y g a c a
L F A B E T
a n u l k a
p i u k g h
Y C Z N A
a n u l k
c l v y k
Otrzymali±my zatem kryptogram
vthbi rayga capiu kghcl vyk.
Podobnie jak
dla szyfru Vigenére'a i w tym przypadku mo»emy utworzy¢ odpowiedni¡
tabel¦ przesuni¦¢ alfabetu.
Uogólnieniem dwóch powy»szych systemów jest
Vigenére'a.
kluczy
wariant aniczny szyfru
Do konstrukcji przeksztaªcenia szyfruj¡cego u»ywamy tu ci¡gu
(n0 , k0 ), (n1 , k1 ) . . . , (nr−1 , kr−1 )
do szyfrów anicznych. Sama kon-
strukcja odbywa si¦ na podobnej zasadzie jak w poprzednich przypadkach:
E(m0 m1 . . . mp ) = (n0 m0 + k0 )(n1 m1 + k1 ) . . . (np mod r mp + kp mod r ).
Wedªug F. Bauera, oryginalny szyfr Vigenére'a skªadaª si¦ z serii przesuni¦tych alfabetów ustawionych bez okre±lonych reguª arytmetycznych:
26
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
s z y f
z y f
r o w a n i e b c d g h
j
k
l m p q
l m p q t
t
u v x
r o w a n i e b c d g h
j
k
y f r o w a n i e b c d g h j
k
l m p q t u v x s z
f
l m p q t u v x
r o w a n i
r o w a n i
e b c d g h
e b c d g h j
o w a n i e b c d g h j k
Generalnie, je±li mamy ci¡g
rowany przez ten ci¡g
j k
k
u v x s
s z y
l m p q t u v x
s
z y f
l m p q t u v x s
z
y f r
E0 , E1 , . . . , Er−1
szyfr polialfabetyczny
bijekcji alfabetu, to gene-
jest dany przez przeksztaªcenie
E(m0 m1 . . . mp ) = E0 (m0 )E1 (m1 ) . . . Ep mod r (mp ),
m = m0 m1 . . . mp jest wiadomo±ci¡ jawn¡. Dla przykªadu, szyfr
szyfr oryginalny w powy»szym systemie, to lssnq muogk ubusc.
gdzie
frazy
W latach czterdziestych XX wieku C.E. Shannon stworzyª teori¦ entropii,
która zajmuje si¦ badaniem informacji zawartej w tek±cie.
Mi¦dzy innymi
zdeniowaª on zasad¦
bezwarunkowego bezpiecze«stwa,
liwego do zªamania.
Szyfr polialfabetyczny jest takim, je±li speªnione s¡
czyli szyfru niemo»-
nast¦puj¡ce warunki
•
Klucz u»yty do szyfrowania wiadomo±ci jest dªu»szy lub równy szyfrowanej wiadomo±ci.
•
Klucz musi by¢ wygenerowany w sposób caªkowicie losowy (nie mo»e
istnie¢ sposób na odtworzenie klucza na podstawie znajomo±ci dziaªania
generatorów liczb pseudolosowych).
•
Klucz nie mo»e by¢ u»yty do zaszyfrowania wi¦cej ni» jednej wiadomo±ci.
Opublikowany w 1917 roku szyfr G.S. Vernama speªnia te warunki. Kryptosystem ten jest u»ywany do dzi± w poª¡czeniu
gor¡cej linii
mi¦dzy Waszyng-
tonem a Moskw¡. Idea tego szyfru polega na tym, »e klucz jest generowany
pseudoprzypadkowo i ten sam generator strumienia pseudoprzypadkowego
zamontowany jest na obu ko«cach linii przesyªowej. Klucz szyfruj¡cy i deszyfruj¡cy jest ten sam. Wiadomo±¢ jest najpierw kodowana na strumie« zer
i jedynek a nast¦pnie dodawany jest do niej modulo dwa pseudoprzypadkowy
strumie« klucza. Dekodowanie odbywa si¦ w oparciu o t¦ sam¡ zasad¦.
27
Zdecydowanie nie jest bezwarunkowo bezpieczny system
autoklucz, gdzie
sama szyfrowana wiadomo±¢ jest kluczem (drugi warunek nie jest speªniony).
System autoklucza polega na zastosowaniu pewnego systemu, gdzie litery
alfabetu mo»na uto»sami¢ z kluczem. W ten sposób pami¦tamy jeden klucz
(starter), wedªug którego szyfrujemy pierwsz¡ liter¦ tekstu. Druga litera jest
szyfrowana wg klucza, którym jest pierwsza litera itd.
gdzie starterem jest
k,
Dla szyfru Cezara,
mamy
E(m0 m1 m2 . . . mp ) = (m0 + k)(m1 + m0 )(m2 + m1 ) . . . (mp + mp−1 ).
2.13 Ša«cuch szyfrów i DES
Do±¢ istotn¡ wad¡ schematu opisanego w poprzednim paragrae, jest fakt, »e
ten sam tekst szyfruje si¦ tak samo, je±li u»yty jest ten sam klucz. Chodzi o
to, »e potencjalny intruz wcale nie musi zna¢ tekstu jawnego, by wymusi¢ na
odbiorcy szyfru okre±lone dziaªanie wystarczy, »e prze±le mu przechwycony
wcze±niej (zaszyfrowany) tekst. Poniewa» intruz wie jaka reakcja byªa wcze±niej, podejrzewa, »e taka sama b¦dzie i tym razem. Jednym ze sposobów
omini¦cia tej niedogodno±ci jest zastosowanie
Ša«cuch szyfrów 1 .
Pomysª jest
nast¦puj¡cy:
Dzielimy tekst jawny (zakodowany w strumie« bitów) na bloki
bitów. Potrzebny jest inicjuj¡cy wektor zero-jedynkowy
C0
o
n
Mi
po
n
bitach oraz
klucz K tej samej dªugo±ci. Pierwszy blok tekstu jawnego szyfrujemy jako
C1 = M1 ⊕ C0 ⊕ K , drugi jako C2 = M2 ⊕ C1 ⊕ K , i tak dalej. Ogólnie,
Cj = Mj ⊕ Cj−1 ⊕ K . W celu rozszyfrowania, dzielimy tekst zaszyfrowany
na n-bitowe kawaªki Ci i otrzymujemy kolejno M1 = C1 ⊕ C0 ⊕ K , nast¦pnie,
M2 = C2 ⊕ C1 ⊕ K itd. Je±li który± z Ci jest bª¦dny, to otrzymujemy bª¡d
w co najwy»ej dwóch kawaªkach tekstu jawnego, mianowicie Mi oraz Mi+1 .
Wektor C0 musi by¢ przesªany innym kanaªem ni» wiadomo±¢ jawna i klucz.
Przy odpowiednio du»ym n istnieje bardzo maªa szansa, »e wiadomo±¢, klucz
i wektor inicjuj¡cy powtórz¡ si¦.
1
Ša«cuch szyfrów jest wykorzystany w systemie DES , który byª u»ywany
od 1977 roku do ko«ca lat osiemdzisi¡tych. W 1974 roku, National Bureau of
Standards zobowiazaªo rmy ameryka«skie do napisania programu szyfruj¡cego, który b¦dzie standardem w kodowaniu wiadomo±ci rz¡dowych. Miaª on
1 ang.
1 Data
cipherblock chaining
Encryption Standard
28
zastapi¢ niewygodne w u»yciu ksi¡»ki kodowe. Odpowiedzi¡ rmy IBM byª
system LUCIFER, który po uproszczeniu i modykacji staª si¦ standardem.
Program szyfruj¡cy zostaª rozpowszechniony w postaci ko±ci, któr¡ ka»dy
zainteresowany mógª wmontowa¢ w swój komputer. Rozszyfrowywanie polegaªo na u»yciu tej samej ko±ci.
Opiszemy teraz zasad¦ dziaªania algorytmu DES. Wej±ciowe 64 bity s¡
najpierw pomieszane przez pocz¡tkow¡ permutacj¦
tworz¡ wektor
L0 ,
a nast¦pne 32 tworz¡
R0 .
IP .
Pierwsze 32 bity
Po szesnastu rundach manipu-
lacji, wektory lewy i prawy ª¡cz¡ si¦ w caªo±¢ i przechodz¡ przez permutacj¦
IP −1 generuj¡c ostateczn¡ wersj¦ szyfru.
Podczas 16 rund szyfrowania tworz¡ si¦ kolejno wektory
oraz
R1 , R2 , . . . , R16 .
Dla
1 ≤ i ≤ 16,
Ki
f (Ri−1 , Ki )
mamy
Ri = Li−1 ⊕ f (Ri−1 , Ki ),
Li = Ri−1 ,
gdzie
L1 , L2 , . . . , L16
jest wektorem dwójkowym o 32 wspóªrz¦dnych, a wektory
s¡ 48-bitowymi wektorami generowanymi przez klucz
K
wedªug proce-
dury, któr¡ opiszemy pó¹niej.
Dekodowanie odbywa si¦ w odwrotn¡ stron¦, tj. najpierw zaszyfrowany
−1
tekst jest poddawany permutacji IP
, tworz¡ si¦ L16 i R16 , a nast¦pnie
obliczane s¡ kolejno
R15 = L16 , L15 = R16 ⊕ f (R15 , K16 ) . . . , R0 = L1 , L0 = R1 ⊕ f (R0 , K1 ).
Poª¡czony wektor
L0 R0
jest poddany permutacji
IP
i powstaje ci¡g 64 bitów
wiadomo±ci jawnej.
Warto±ci¡ funkcji
f
jest 32-bitowy ci¡g. Procedura jego powstawania wy-
Ki ma 48 bitów, a Ri−1 - 32 bity.
rozszerzy¢ Ri−1 do 48 bitów. Rozszerzenie
gl¡da nast¦puj¡co. Jak ju» wspominali±my,
Aby te wektory doda¢, musimy
Ri−1
odbywa si¦ wedªug Tabeli selekcji bitów. Powstaªy 48-bitowy strumie«
jest podzielony na 8 wektorow 6-bitowych, które s¡ przepuszczone przez
S -boksów, rozwa»my wektor sze±ciobitowy a1 a2 a3 a4 a5 a6 , na przykªad 010011, który traa
na S4 . Bity a1 a6 to numer wiersza (i), a a2 a3 a4 a5 to numer kolumny (j ) zapiboksy (Tabela
S -boksów).
S-
Aby przybli»y¢ metod¦ dziaªania
sane w ukªadzie dwójkowym. Strumie« wyj±ciowy (w ukªadzie dziesi¦tnym)
jest na pozycji
i w
S4
(i, j) S -boksa.
znajduje si¦ na pozycji
wyj±ciowym jest
012 = 1 oraz 10012 = 9
7 = 01112 . Zatem strumieniem
W naszym przypadku,
(1, 9)
liczba
0111.
29
32
1
2
3
4
5
4
5
6
7
8
9
8
9
10
11
12
13
12
13
14
15
16
17
16
17
18
19
20
21
20
21
22
23
24
25
24
25
26
27
28
29
28
29
30
31
32
1
Rysunek 2.2: Tabela selekcji bitów
Po wyj±ciu z
S -boksów,
strumienie 4-bitowe ª¡cz¡ si¦ tworz¡c 32-bitowy
wektor, który dodatkowo przechodzi przez permutacj¦
Klucz
K
P.
ma 64 bity podzielone na 8-bitowe cz¦±ci, z których ka»da ma
7 efektywnych bitów, a ósmy bit sprawdza parzysto±¢.
Dokªadnie, jest on
ustalony tak, by w caªej ósemce liczba jedynek byªa parzysta. W przypadku,
gdyby wyst¡piª bª¡d w transmisji klucza, zostaje on wykryty z dokªadnym
wskazaniem ósemki, w której wyst¡piª. Z 64 bitów klucza, po sprawdzeniu
poprawno±ci, 8 bitów sprawdzaj¡cych jest odrzuconych, a pozostaªe 56 bitów
przechodzi przez permutacj¦ pocz¡tkow¡
P C1.
Spermutowany strumie« 56
bitów jest podzielony na póª. Pierwsze 28 bitów tworzy wektor
C0 ,
a nast¦-
pne D0 . Wektory C1 i D1 powstaj¡ przez (cykliczne) przesuni¦cie zawarto±ci
C0 , odpowiednio, D0 o LS1 = 1 pozycji w lewo. Ogólnie, Ci oraz Di powstaj¡
przez przesuni¦cie zawarto±ci, odpowiednio, Ci−1 , Di−1 o LSi pozycji w lewo.
Wektory Ci oraz Di s¡ nast¦pnie ª¡czone i po przej±ciu selekcji P C2 tworz¡
48-bitowy strumie« Ki .
Gªówne zarzuty wobec DES, to, po pierwsze, zbyt krótki klucz, co powoduje, »e mo»e on by¢ znaleziony w miar¦ szybko metod¡ sprawdzenia wszyst56
kich 2
mo»liwo±ci. Po drugie, nie wiadomo, jakie kryteria kierowaªy konstruktorami
S -boksów.
Testy statystyczne pokazuj¡, »e liczby w
S -boksach
nie s¡ przypadkowe. Niewykluczone, »e kryje si¦ tu pewna furtka pozwalaj¡ca ªatwo rozszyfrowa¢ zakodowan¡ wiadomo±¢.
Mimo swoich wad DES byª do±¢ dªugo u»ywany, a» w ko«cu ust¡piª on
miejsca kryptosystemom o kluczu publicznym. Rozpowszechnienie szybkich,
ªatwo programowalnych komputerów doprowadziªo do sytuacji, w której ko±¢
szyfruj¡ca okazaªa si¦ zb¦dna:
Po co montowa¢ do komputera dodatkowe
urz¡dzenie, je±li mo»na napoisa¢ program, który powoduje takie samo dziaªanie, a jeszcze dodatkowo mo»na go w ka»dej chwili ulepszy¢.
30
kolumna
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
1
0
15
7
4
14
2
13
1
10
6
12
11
9
5
3
8
wiersz
S1
S2
S3
S4
S5
S6
S7
S8
2
4
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
3
15
12
8
2
4
9
1
7
5
11
3
14
10
0
6
13
0
15
1
8
14
6
11
3
4
9
7
2
13
12
0
5
10
1
3
13
4
7
1
2
8
14
12
0
1
10
6
9
11
5
2
0
14
7
11
10
4
13
1
5
8
12
6
9
3
2
15
3
13
8
10
1
3
15
4
2
11
6
7
12
0
5
14
9
0
10
0
9
14
6
3
15
5
1
13
12
7
11
4
2
8
1
13
7
0
9
3
4
6
10
2
8
5
14
12
11
15
1
2
13
6
4
9
8
15
3
0
11
1
2
12
5
10
14
7
3
1
10
13
0
6
9
8
7
4
15
14
3
11
5
2
12
0
7
13
14
3
0
6
9
10
1
2
8
5
11
12
4
15
1
13
8
11
5
6
15
0
3
4
7
2
12
1
10
14
9
2
10
6
9
0
12
11
7
13
15
1
3
14
5
2
8
4
3
3
15
0
6
10
1
13
8
9
4
5
11
12
7
2
14
0
2
12
4
1
7
10
11
6
8
5
3
15
13
0
14
9
1
14
11
2
12
4
7
13
1
5
0
15
10
3
9
8
6
2
4
2
1
11
10
13
7
8
15
9
12
5
6
3
0
14
3
11
8
12
7
1
14
2
13
6
15
0
9
10
4
5
3
0
12
1
10
15
9
2
6
8
0
13
3
4
14
7
5
11
1
10
15
4
2
7
12
9
5
6
1
13
14
0
11
3
8
2
9
14
15
5
2
8
12
3
7
0
4
10
1
13
11
6
3
4
3
2
12
9
5
15
10
11
14
1
7
6
0
8
13
0
4
11
2
14
15
0
8
13
3
12
9
7
5
10
6
1
1
13
0
11
7
4
9
1
10
14
3
5
12
2
15
8
6
2
1
4
11
13
12
3
7
14
10
15
6
8
0
5
9
2
3
6
11
13
8
1
4
10
7
9
5
0
15
14
2
3
12
0
13
2
8
4
6
15
11
1
10
9
3
14
5
0
12
7
1
1
15
13
8
10
3
7
4
12
5
6
11
0
14
9
2
2
7
11
4
1
9
12
14
2
0
6
10
13
15
3
5
8
3
2
1
14
7
4
10
8
13
15
12
9
0
3
5
6
11
Rysunek 2.3: Tabela
31
S -boksów

Podobne dokumenty