Professional Documents
Culture Documents
Oficyna Wydawnicza Read Me, 00-987 Warszawa 4, skr. poczt. 144 e-mail:
readme@rm.com.pl WWW: http://www.rm.com.pl
śadna część tej pracy nie moŜe być powielana i rozpowszechniana w jakiejkol' formie i
w jakikolwiek sposób (elektroniczny, mechaniczny) włącznie z fotokc waniem,
nagrywaniem na taśmy lub przy uŜyciu innych systemów bez wcześ szej pisemnej
zgody wydawcy.
Wszystkie nazwy handlowe i towarów, występujące w niniejszej publikacji, są kami
towarowymi zastrzeŜonymi lub nazwami zastrzeŜonymi odpowiednich odnośnych
właścicieli.
Printed in Poland.
Oficyna Wydawnicza Read Me dołoŜyła wszelkich starań, aby zapewnić najwy jakość
tej ksiąŜce. JednakŜe nikomu nie udziela Ŝadnej rękojmi ani gwarancji. O na
Wydawnicza Read Me nie jest w Ŝadnym wypadku odpowiedzialna za jakie wiek
szkody łącznie ze szkodami z tytułu utraty zysków związan z prowadzeniem
przedsiębiorstwa, przerw w działalności przedsiębiorstwa utraty informacji
gospodarczej, będące następstwem korzystania z informacji za\ tych w niniejszej
publikacji Read Me, nawet jeŜeli Read Me została zawiadomi o moŜliwości wystąpienia
szkód.
ISBN 83-7147-087-8
Wydanie I
10 9 8 7 6 5 4 3 2 1
Przedmowa XIII
Wstęp XIX
Algorytmy symetryczne 27
3.1. DES - Data Encryption Standard .............................................. 29
3.1.1. Szyfrowanie DES-em................................................... 30
3.1.2. Deszyfrowanie DES-em............................................... 32
3.2. Rozszerzenia algorytmu DES ................................................... 34
3.2.1. DESX............................................................................ 34
3.2.2. Trzykrotny DES ........................................................... 34
3.2.3. S-boksy zaleŜne od klucza ........................................... 36
3.3. Szyfrowanie dowolnych tekstów .............................................. 36
3.3.1. Elektroniczna ksiąŜka kodowa...................................... 36
V
M. Kutyłowski, W.-B. Strothmann
Algorytmy asymetryczne 49
4.1. Podstawy teoretyczne ............................................................ 51
4.1.1. Teoria złoŜoności obliczeniowej.................................. 51
4.1.2. Szyfry plecakowe......................................................... 53
4.2. RSA........................................................................................... 56
4.2.1. Algorytm RSA .......................................................... 58
4.2.2. Testy pierwszości......................................................... 61
4.2.3. Aspekty bezpieczeństwa RSA ..................................... 64
4.2.4. Trudne bity kryptogramów RSA.................................. 68
4.3. Algorytm EIGamala.................................................................. 70
Funkcje jednokierunkowe 73
5.0.1. Hard-corebit .................................................................. 76
5.0.2. Zastosowania funkcji jednokierunkowych .... 77
5.0.3. Kandydaci na funkcje jednokierunkowe....................... 77
VI
Kryptografia
Ciągi pseudolosowe 99
7.1. Konstrukcja ciągów pseudolosowych ........................... 101
7.1.1. Własności ciągów pseudolosowych...................... 102
7.1.2. Generatory ciągów pseudolosowych ..................... 104
7.1.3. Pseudolosowość generatora BBS ........................... 107
7.2. Zastosowania ..................................................................... 108
7.2.1. Szyfrowanie strumieniowe .................................... 108
7.2.2. RC4 ........................................................................ 109
7.2.3. Szyfrowanie probabilistyczne................................ 110
Uwierzytelnianie 129
9.0.4. Protokół challenge and response ........................... 131
9.0.5. Dowody interakcyjne ......................................... 132
9.0.6. Dowody z wiedzą zerową ..................................... 135
9.0.7. Protokół Fiata-Shamira.......................................... 138
9.0.8. Protokół Schnorra ............................................... 140
9.0.9. Protokół Guillou-Quisquartera.............................. 143
9.0.10. Podpisy cyfrowe poprzez uwierzytelnianie .... 144
Kryptoanaliza 179
12.1. Podstawowe moŜliwości ataku.................................................. 181
12.2. Algorytmy kryptoanalizy .......................................................... 183
12.2.1. Kryptoanaliza róŜnicowa.............................................. 183
12.2.2. Kryptoanaliza liniowa .................................................. 188
12.2.3. RóŜnicowa kryptoanaliza błędów................................. 190
VIII
Kryptografia
Indeks 253
Literatura 263
IX
M. Kutyłowski, W.-B. Strothmann
X
PRZEDMOWA
M. Kutyłowski, W.-B. Strothmann
XII
Do niedawna kryptografia była obiektem zainteresowania w większym
stopniu słuŜb wywiadowczych i wojska niŜ przedmiotów gospodarczych i
prywatnych osób. Postęp w dziedzinie elektroniki, a zwłaszcza gwałtowny
rozwój sieci komputerowych, sytuację tę zmieniły w radykalny sposób.
Dawniej, gdy prywatny uŜytkownik dysponował jedynie komputerem PC nie
włączonym do sieci, ochrona danych była stosunkowo prosta i zapewniona
przez fizyczny dostęp do komputera. Na tej samej zasadzie chronione były
dane przechowywane w postaci elektronicznej przez małe firmy, działy firm,
organizacje polityczne. Nie skomplikowane protokoły kryptograficzne, ale
klucz do pomieszczenia z komputerem czy koperta, w której przesyłana była
dyskietka, stanowiły ochronę przed niepowołanym dostępem. Oczywiście,
zdarzały się kradzieŜe dyskietek, komputerów, włamania do siedzib partii
politycznych ... Większość uŜytkowników nie czuło jednak potrzeby skutecz-
niejszej ochrony swych danych.
Sytuacja zaczęła się radykalnie zmieniać z chwilą gwałtownego rozrostu
sieci komputerowych. Dotyczyło to nie tylko sieci obejmujących wiele
działów pojedynczych firm, ale i sieci globalne, takie jak Internet (w tym
zwłaszcza World Wide Web). Zapewnienie bezpieczeństwa w tych sieciach
stało się jednym z pierwszoplanowych zadań decydujących o ich dalszym
rozwoju. Nowe techniki telekomunikacyjne, takie jak telefonia komórkowa,
telewizja cyfrowa, telebanking itp., nie mogłyby znaleźć swego miejsca w
codziennej praktyce, gdyby nie stosowanie technik kryptograficznych dla
ochrony dostępu.
Najpierw rewolucja objęła komunikację w środowisku naukowym. Po-
jawienie się poczty elektronicznej umoŜliwiło błyskawiczne kontaktowanie
się naukowców z najdalszych krajów. Pozwoliło to na olbrzymi wzrost
wydajności w wielu dziedzinach badań. MoŜna by się spodziewać, Ŝe
konkurencja i ostra walka o przodownictwo doprowadzą w środowisku
naukowym do wielu naduŜyć poczty elektronicznej. Tym
XIII
M. Kutyłowski, W.-B. Strothmann
bardziej Ŝe nie jest trudno, na przykład, przesłać list podszywając się pod
inną osobę. MoŜliwe jest równieŜ przechwytywanie obcej korespondencji.
Zjawiska te stanowiły jednak dotychczas w całym środowisku naukowym
bardzo wąski margines. Powodem było zapewne to, iŜ komunikowały się
osoby, które i tak obdarzały się pełnym zaufaniem. Tak więc metody, które
pozwalałyby na zabezpieczenie przed odczytem, modyfikacją czy teŜ
preparowaniem listów elektronicznych przez osoby trzecie, nie były
stosowane.
Te czasy minęły. Wraz z pojawieniem się World Wide Web Internet stał się
atrakcyjny dla „szarego uŜytkownika". W Internecie pojawiły się
interesujące zasoby informacyjne, dzięki czemu liczba uŜytkowników
zaczęła gwałtownie rosnąć. Co więcej, Internet coraz częściej jest uŜywany
nie jako narzędzie zabawy czy rozwijania zainteresowań, ale do celów
komercyjnych. JuŜ dziś bilety lotnicze kupuję przez Internet, literaturę
naukową wybieram przez World Wide Web, a zamiast kupować gazetę z
lokalnymi ogłoszeniami, sięgam do jej elektronicznego odpowiednika. W
takiej sytuacji będzie coraz więcej osób: hardware tanieje, software staje się
coraz łatwiejszy do obsługi przez laika, w wielu krajach połączenia
telefoniczne wskutek konkurencji na rynku telekomunikacyjnym stają się
tańsze i wyŜszej jakości. Coraz łatwiejsze będzie zatem stanie się kolejnym
uŜytkownikiem Internetu. Za parę lat będziemy mieć zapewne do czynienia z
sytuacją, gdy Internet będzie największym supermarketem, najobszerniejszą
gazetą, największym Hyde Parkiem itp. - przynajmniej w krajach, gdzie
usługi telekomunikacyjne będą wystarczająco tanie.
Jak kaŜdy wynalazek, rozwój globalnych sieci komputerowych przynosi
korzyści, ale i niebezpieczeństwa. Wiele dyskutuje się, na przykład, na temat
moŜliwości wykorzystywania Internetu przez organizacje przestępcze.
Sytuacja przypomina nieco spory po wynalezieniu samochodu. Nie sposób
częściowo nie przyznać racji przeciwnikom automobili, mając przed oczyma
tragiczne statystyki o tysiącach ludzi zabitych na drogach. Nie cofnęło to
jednak rozwoju motoryzacji, tak jak nie do odwrócenia jest juŜ rozwój
globalnej sieci komputerowej na świecie.
PoniewaŜ poprzez Internet będą się komunikować nie dobrzy i ufający sobie
znajomi, lecz często anonimowi czy wrodzy sobie uŜytkownicy, mijają
czasy, gdy niezbyt wiele myślano o bezpieczeństwie danych i komunikacji. Z
jednej strony, podłączenie do sieci komputerowych będzie
XIV
Kryptografia
XV
M. Kutytowski, W.-B. Strothmann
XVI
WSTĘP
M. Kutyłowski, W.-B. Strothmann
XVIII
Niniejsza ksiąŜka ma za zadanie w bardzo zwięzły sposób przedstawić
podstawowe metody kryptograficzne z punktu widzenia zastosowań
praktycznych. Wiele interesujących technik zostało w niej pominiętych.
Nacisk został połoŜony na te aspekty, które mają bądź mogą mieć praktyczne
zastosowanie. Wskutek tego wiele teoretycznie ciekawych zagadnień
świadomie nie jest omówionych w tej ksiąŜce. Z drugiej strony, naszym
zamysłem było, na tyle, na ile to jest moŜliwe w tak zwięzłej pozycji,
umoŜliwić czytelnikowi zrozumienie matematycznych mechanizmów
tkwiących w kryptografii. Bardziej szczegółowe informacje moŜe Czytelnik
znaleźć na przykład w pozycji [6] mającej charakter encyklopedii
kryptografii.
XIX
M. Kutyłowski, W.-B. Strothmann
XX
ROZDZIAL 1
Pierwszy
rzut oka
na kryptografię
M. Kutyłowski, W.-B. Strothmann
2
1.0.1. Szyfrowanie danych
NajwaŜniejsze pole zainteresowań kryptografii (ale obecnie juŜ nie je-
dyne) to szyfrowanie dokumentów. Z oryginalnego dokumentu (moŜe
to być tekst, zakodowany cyfrowo obraz czy sygnał dźwiękowy) zwa-
nego tekstem jawnym moŜna utworzyć zaszyfrowaną wersję, którą na-
zywamy kryptogramem. Do zaszyfrowania i deszyfrowania potrzebny
jest dodatkowo klucz lub klucze. Tekst jawny P zaszyfrowany za po-
mocą klucza K oznaczać będziemy EK(P), tekst jawny uzyskany z kryp-
togramu C za pomocą klucza K' oznaczać będziemy DK,(C). Notacja ta
zakłada, Ŝe wiemy, jaką metodę szyfrowania lub deszyfrowania mamy
na myśli.
Ze względu na własności kluczy rozróŜniamy następujące metody szy-
frowania:
Algorytmy symetryczne: klucz do szyfrowania oraz do deszyfrowania
jest ten sam (lub jeden jest łatwo wyprowadzamy z drugiego).
szyfrowanie kluczem K
deszyfrowanie kluczem K
>■ Zapis danych na nośnikach (dyski itp.), które nie dają ochrony przed
odczytem przez niepowołane osoby: Dane te zapisywane są jedynie w
postaci kryptogramu; tylko posiadacz odpowie d-niego klucza moŜe z
kryptogramu odtworzyć oryginalny tekst
>■ Zabezpieczenie komunikacji poprzez linie naraŜone na podsłuch: tego
rodzaju zabezpieczenie niezbędne jest, na przykład, w przypadku
elektronicznego dokonywania operacji giełdowych. Istotnie, podsłuch
dokonywanych zamówień dostarczałby informacji pozwalających na
efektywną spekulację giełdową. DuŜo groźniejsze niebezpieczeństwa
mogą się wiązać z moŜliwościami dokonywania zmian w przesyłanych
informacjach, na przykład dla elek-
4
Kryptografia
5
M. Kutyłowski, W.-B. Strothmann
Szyfrowanie
Deszyfrowanie
kluczem
kluczem
prywatnym
publicznym
K
K’
Alice
Tekst oryginalny
Bob
stwami. Ktoś mający kontrolę nad węzłem Internetu, przez który przesyłany jest list, moŜe list ten zniszczyć,
zmodyfikować albo wreszcie przekazać komuś innemu. Aby zapobiec dwóm ostatnim wspomnianym atakom,
moŜna uŜyć scenariusza opisanego poniŜej. Przed niszczeniem listów kryptografia nie jest nas w stanie
uchronić.
ZałóŜmy, iŜ Alice chce bezpiecznie otrzymywać korespondencję. W tym celu Alice musi dysponować parą
pasujących kluczy dla asymetrycznego algorytmu szyfrującego. Klucz do szyfrowania zostaje przez Alice
opublikowany, na przykład poprzez World Wide Web. Gdy Bob pragnie wysłać list do Alice, wtedy
realizowany jest następujący protokół (patrz rysunek 1.3):
>- Bob wysyła zaszyfrowany list pocztą elektroniczną do Alice (w zaleŜności od stosowanego systemu,
konieczna moŜe być konwersja pliku zawierającego kryptogram z postaci binarnej na tekstową, by
uniknąć zmian wprowadzanych w trakcie transmisji).
6
Kryptografia
Listl szyfrowanie
Kryptogram 1
kluczem
Bob publicznym K deszyfrowanie
prywatnym
J kluczem K'
Listl
szyfrowanie <
List 2
Kryptogram 2
kluczem
Mikę
publicznym K
:zx:
List 2
\^ Alice, posiadaczka K1 y
8
Kryptografia
9
M. Kutyłowski, W.-B. Strothmann
10
Kryptografia
li
M. Kutyłowski, W.-B. Strothmann
12
Kryptografia
>- Jako względnie bezpieczne mogą być uznane jedynie programy czy teŜ
specjalny hardware oferowany poprzez znane firmy o niezaprzeczalnej
reputacji. Najlepiej, gdy produkty te posiadają certyfikaty
odpowiednich państwowych urzędów kontrolnych (jak na przykład
NIST w USA).
13
M. Kutyłowski, W.-B. Strothmann
14
Rozdział 2
Podstawowe
techniki
szyfrowania
M- Kutyłowski, W.-B. Strothmann
16
W niniejszym rozdziale przedstawiamy kilka klasycznych technik szy-
frowania. Techniki te bywają składnikami wielu bardziej zaawansowanych
algorytmów, dlatego poświęcimy im chwilę uwagi.
2.0.6. Podstawienie
Niech 7r : Z —)■ Z będzie permutacją, Z zaś zbiorem uŜywanych liter.
Tekst jawny aia2. ■ ■ an (gdzie «, 6 Z) jest szyfrowany jako ciąg
7r(fl1)7r(a2) • • • n(an). Kryptogrambi.. .bn deszyfrowywany jest
jako 7r_1(Ł>i).. . 7r_1(frn).
szyfrowanie:
K
p OS ZL OH - rogi prostokąta K; OH zastępowany
A M IW jest poprzez litery znajdujące się w
N CY B E pozostałych rogach prostokąta K, tj. przez
SG
F GH KQ
RTUVX
szyfrowanie tekstu jawnego KR|OW|A
I| WE|SZ
19
M. Kutyłowski, W.-B. Strothmann
wać, leŜy w jednej kolumnie lub jednym wierszu (i wobec tego nie definiuje
prostokąta), to litery te zastępujemy parą liter leŜącą na prawo od nich, na
przykład SY zastępujemy przez ZB, parę WE zaś przez AN (litery leŜące w
pierwszej kolumnie z prawej strony zastępujemy literami z ostatniej
kolumny).
Ogólnie rzecz biorąc, podstawienie nie oparte o długie bloki lub o prostych
zasadach generowania permutacji z klucza moŜe być podatne na analizę
częstotliwości. Z tego względu podstawienie naleŜy traktować raczej jako
technikę wykorzystywaną jako element pomocniczy bardziej złoŜonych
metod.
Stąd
Ci XOR ki = (a,- XOR ki) XOR k{ = at XOR (ki XOR k{) = a; XOR 0 = a,-.
20
Kryptografia
21
M. Kutyłowski, W.-B. Strothmann
22
Kryptografia
2.0.8. S-boksy
S-boksy są nadzwyczaj istotnymi składnikami algorytmu DES (Data
Encryption Standard) najwaŜniejszego w praktyce algorytmu szyfrują-
cego w momencie powstawania tej ksiąŜki. KaŜdy S-boks jest zdefinio-
wany poprzez macierz rozmiaru 4 x 1 6 zawierającą liczby z przedziału
od 0 do 15 (patrz rysunek 2.3).
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 9 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
wiersz 2, kolumna 13
argument = 111010, wynik = 1010 = 10102
które wzięto pod uwagę. Nie jest znana Ŝadna prosta i elegancka analiza
matematyczna, która prowadziłaby do wyboru takich a nie innych S-boksów.
W praktyce stosowane są S-boksy o nazwach SI, S2,..., S8.
24
___________ Kryptografia
Bardzo wskazany jest równieŜ taki wybór wartości w tablicy S-boksu, by jak
najbardziej utrudnione były znane techniki kryptoanalizy, takie jak
kryptoanaliza róŜnicowa i liniowa (patrz rozdział 12). Pierwsze z tych
kryteriów brano pod uwagę podczas konstrukcji S-boksów SI,...,
S8.
25
M. Kutyłowski, W.-B. Strothmann
26
Rozdział 3
I Algorytmy
symetryczne
M. Kutyłozuski, W.-B. Strothmann
28
3.1. DES - Data Encryption Standard
Zanim przejdziemy do technicznego opisu algorytmu DES, podamy
kilka ogólnych uwag na jego temat:
30
Kryptografia
31
M. Kutyłowski, W.-B. Strothmann
numery bitów
1234 5678 9 1011 32 nawejściu
połączenia realizujące
permutację z
rozszerzeniem
numery bitów na
wyjściu
Rysunek 3.1. Permutacja z rozszerzeniem
1 Rj 1
(permut. z rozszerz?)
1
I1 Kj.
( XOR " )
Vi = Li
L,-_i = Ri XOR f(Ri_u Ki) = RtXORf(Lu K{)
Jeśli więc znamy L„ R; oraz podklucz K,, to na podstawie powyŜszych
równości moŜemy obliczyć L,_! i £,_}. Tak więc nie musimy wcale ob-
liczać funkcji odwrotnej do funkcji obliczanych przez S-boksy.
Łatwo widać, Ŝe podczas deszyfrowania dokonywane są te same ope-
racje, jak podczas szyfrowania (tylko podklucze występują w odwrot-
nej kolejności). Z tego względu ten sam hardware moŜe być uŜyty do
szyfrowania i deszyfrowania.
ZauwaŜyliśmy, Ŝe wzory (3.1) stwarzają dogodne moŜliwości deszyfro-
wania. Interesujące jest, Ŝe szyfrowanie według schematu danego tymi
wzorami zdaje się mieć solidne podstawy teoretyczne (por. [7]).
33
M. Kutyłoiuski, W.-B. Strothmann
3.2.1. DESX
Prostą metodą utrudniającą atak poprzez systematyczne przeszukiwa-
nie jest zastosowanie metody zwanej Whitening. Dla zaszyfrowania
bloku P złoŜonego z 64 bitów uŜywamy trzech kluczy Kext, Kini, KDES-
Kryptogram dla P jest równy
Kext XOR DESKDES(PXOR Kint)
ZauwaŜmy, iŜ w tym przypadku nawet gdy znamy tekst jawny i kryp-
togram, nie wiemy, jaki ciąg jest szyfrowany DES-em ani jaki jest wynik
tego szyfrowania. Wydaje się to skutecznie utrudniać poprzez systema-
tyczne przeszukiwanie, bo rozwaŜać musimy aŜ 3 klucze jednocześnie!
Stosując jednak ideę kryptoanalizy róŜnicowej (patrz rozdział 12.2.1),
moŜna łatwo ograniczyć ilość prób do około 2120.
DESK2(DESKl(P)).
C = DESK,(DESK(P)).
35
M. Kutyłozuski, W.-B. Strothmann
36
Kryptografia
kryptogram
37
M. Kutyłowski, W.-B. Strothmann
Q = E^Pj xORJ), Q =
EK(P,-XORQ_.1).
Px = DK(Ci)XORJ,
Pi = DK(d) XORQ_i. (3.2)
38
Kryptografia
39
M. Kutyłowski, W.-B. Strothmann
rejestr przesuwający
klucz K
kryptogram
8 bi ów
następna litera f
P XOR>
wyjście
3.4. IDEA
Wiele prób podejmowanych było nad zaprojektowaniem algorytmu, który
zastąpiłby DES. Jedną z przyczyn było przekonanie, Ŝe wielkość kluczy
DES-a jest za mała. Inna waŜna przyczyna to regulacje prawne w USA
uznające DES za produkt o znaczeniu militarnym i eksportowanie go poza
granice USA bez stosownych licencji za czyn przestępczy. PoniewaŜ
utrudnia to stosowanie kryptografii w kontaktach z USA,
40
Kryptografia
rejestr przesuwający
klucz K
kryptogram
następna litera t8
bitów
tekstu jawnego
ł
-XOR-
wejście Rysunek
Własności IDEA:
41
M. Kutytozuski, W.-B. Strothmann
>- Szyfrowanie składa się z 8 rund. Dane wejściowe dla rundy i składają
się z 4 bloków po 16 bitów oznaczonych Xi,... , X4. Rezultat składa
się z bloków 16-bitowych oznaczonych Vi,... , YĄ. Pojedynczą rundę
schematycznie przedstawia rysunek 3.6. Po ostatniej rundzie
dokonywane jest jeszcze przekształcenie końcowe (patrz rysunek 3.9).
Jego znaczenie stanie się jasne, gdy będziemy omawiać
deszyfrowanie.
>■ KaŜda runda wykonuje operacje na 16-bitowych blokach. Trzy typy
operacji występują w algorytmie:
- XOR dokonywany na odpowiadających sobie bitach dwóch
ciągów,
- dodawanie modulo 216 oznaczane dalej symbolem +,
- mnoŜenie modulo (216 + 1) oznaczane dalej symbolem ■ (ciąg
zer jest interpretowany jako 216).
> Klucz zawiera 128 bitów. Z niego generowanych jest wiele pod-kluczy.
W trakcie rundy i uŜywane są podklucze Zj ,... Z^ .
>- W odróŜnieniu do kluczy, tekst jawny zawiera 64 bitów.
42
Kryptografia
O mnoŜenie ©
dodawanie ®
XOR
Zj(Ŝ), Z2(Ŝ), ••• - podkłucze rundy i
43
M. Kutyłoiuski, W.-B. Strothmann
Tak jak w przypadku DES-a potrzebna jest jakaś sprytna metoda, albowiem
byłoby trudno bezpośrednio wyliczyć dane wejściowe dla rundy na
podstawie danych wyjściowych dla rundy (porównaj rysunek 3.6).
Niech
44
Kryptografia
45
M. Kutyłowski, W.-B. Strothmann
3.5. RC5
RC5 to stosunkowo nowy algorytm. Został on zaproponowany w 1994
roku przez R. Rivesta. Zgłoszono na niego patent, ale ponoć są zamiary,
by opłaty licencyjne za uŜywanie RC5 były niskie. W pewnym sensie
RC5 jest spokrewniony zarówno z DES-em, jak i algorytmem IDEA.
Inaczej jednak niŜ dla poprzednich algorytmów, moŜliwe jest wybiera-
nie liczby wykonywanych rund (parametr r), wielkości szyfrowanych
bloków (parametr 2w), jak i długości klucza w bajtach (parametr b).
Standardowymi wielkościami są w = 32, r = 12, h = 16. Trzy opera-
cje stanowią podstawę zarówno szyfrowania, jak i deszyfrowania: do-
dawanie modulo 2W, xOR ciągów długości w, wreszcie przesunięcie
47
M. Kutytowski, W.-B. Strothmann
48
Rozdział 7
Ciągi
pseudolosowe
M. Kutyłowski, W.-B. Strothmann
100
7.1. Konstrukcja ciągów pseudolosowych
Poprzez losowy ciąg moŜemy, na przykład, uwaŜać ciąg bitów gene-
rowanych poprzez rzucanie monetą: wyrzucenie reszki daje 1, orła zaś zero.
Pojedynczy rzut monetą jest niezaleŜny od wyników pozostałych rzutów.
Zakładamy teŜ, Ŝe moneta jest dobrze wywaŜona: otrzymanie orła w jednym
rzucie ma prawdopodobieństwo 0.5.
Losowe ciągi są niezbędnym elementem wielu algorytmów w kryptografii.
Oto niektóre przykłady:
101
M. Kutyłowski, W.-B. Strothmann
102
Kryptografia
EA(pi)= I Pi(x)-Fr(A(x) = l)
x£{0,l}'
103
M. Kutyłowski, W.-B. Strothmann
104
Kryptografia
s~^ ----- —^s pomiędzy niektórymi reje-
\ __XOR __ ) strami i bramką XOR nie
rejestr przesuwający
generowane bity
ma połączenia
>- Podczas jednego taktu pracy wyliczana jest wartość XOR i obliczony
bit jest przesyłany do rejestru przesuwającego na miejsce pierwsze z
lewej. Aby dla tego bitu zrobić miejsce, wszystkie pozostałe bity są
przesuwane o jedno miejsce na prawo. Bit, który znajdował się
dotychczas na pierwszej z prawej pozycji jest usuwany z rejestru
przesuwającego i staje się kolejnym bitem ciągu generowanego przez
LSFR.
Lemat 16. Niech układ LFSR zawiera k rejestróiu. Wtedy znajomość 2k kolej-
nych wartości ciągu generowanego przez LSFR pozwala na zrekonstruowanie
ciągu wartości generowanych od tego miejsca.
dla t > k. Znając wartości Sj,... ,s;+2Jt moŜna zapisać równość (7.1) dla t = j +
k,... ,j + 2k — l. Daje to k równań z niewiadomymi a\, ■ ■ ■ , a*.. O ile
równania te są niezaleŜne, to wyliczamy z nich wartości a\,... ,a^.
105
M. Kutyłowski, W.-B. Strothmann
Przykład: Shrinking LSFR. Na układ ten składają się dwa zwykłe układy
LSFR. Niech «i,fl2,•• • i b\, bi, ■ ■ ■ będą ciągami generowanymi przez te
układy. Wtedy i-ty bit generowany przez cały układ jest równy aj., gdzie ]\
oznacza pozycję i-tej jedynki w ciągu b\, &2> • • • • Algorytm ten jest
bardzo szybki, generowane ciągi wydają się mieć dobre własności,
jakkolwiek nie ma teoretycznych wyników potwierdzających to.
106
Kryptografia
się, Ŝe jeśli n jest liczbą pierwszą, to istnieje prosty test na sprawdzenie, czy
m jest resztą kwadratową modulo n. Co więcej, pierwiastki kwadratowe
moŜna łatwo obliczyć (patrz dodatek A, str. 240). Jeśli jednak n jest liczbą
taką jak dla generatora BBS, ale jej czynniki pierwsze nie są znane, to
sytuacja jest krańcowo róŜna: Powszechne jest mniemanie, Ŝe odróŜnienie
reszt kwadratowych w tym przypadku jest praktycznie niewykonalne dla
odpowiedniej wielkości liczb n. Jest to sytuacja analogiczna, jak w
przypadku problemu rozkładu n na czynniki pierwsze. MoŜna pokazać
następującą zaleŜność:
7.2. Zastosowania
W rozdziale tym omówimy kilka przykładowych zastosowań ciągów
pseudolosowych. Znaczenie takich ciągów jest jednak daleko szersze, niŜ
wynikałoby z tych przykładów. Szczególnie często korzystamy z
pseudolosowych ciągów w trakcie praktycznej realizacji protokołów, w
trakcie których wybieramy „losowe" elementy.
108
Kryptografia
7.2.2. RC4
RC4 jest przykładem szyfrowania strumieniowego szeroko stosowanego w
praktyce. Był on przedstawiony w 1987 roku i od tego czasu uŜywany w
wielu komercjalnych produktach. Poza nazwą i osobą, od której pochodzi
idea algorytmu (R. Rivest), nie ma on nic wspólnego z RC5. W odróŜnieniu
do DES-a, algorytm, na jakim oparty jest RC4, nie był podany do publicznej
wiadomości. Nie był on znany dopóty, dopóki na liście dyskusyjnej sci.crypt
nie pojawił się program w C dający dokładnie takie same rezultaty jak RC4.
Zakończyło to erę utajnienia budowy RC4. Program realizujący szyfrowanie
RC4 zamieszczony był anonimowo, z pewnością ze względu na obawy przed
odwetem właściciela patentu.
Przedstawiony algorytm jest zaskakująco prosty i dobrze nadaje się do
implementacji software'owej. Ciąg pseudolosowy uŜywany do szyfrowania i
deszyfrowania generowany jest jako ciąg bajtów. Opiszmy pokrótce jego
konstruowanie:
>■ W kaŜdej fazie algorytmu generowany jest jeden bajt ciągu pseu-
dolosowego, jednocześnie uaktualniane są parametry i,j < 256 oraz
permutacja n na zbiorze liczb {1,... , 256}. Parametry są nazywane
wewnętrznymi kluczami.
109
M. Kutytowski, W.-B. Strothmann
i := i + 1 mod 256
j '•= j + 7r(z) mod 256
zamień wartości TT dla argumentów i oraz j
k := 7r(7r(0 + 7r(;'))
Liczba k jest kolejnym bajtem ciągu pseudolosowego generowanym w
'tej razie.
>- Wewnetrzne klucze i, j, TT są inicjalizowane za pomocą ciągu bajtów SQS\
... sm-\. Najpierw wewnętrzne klucze inicjalizowane są w jiastępujący
sposób:
i := 0,/ := 0 oraz ir(h) := h dla h < 256.
Następnie 256 razy wykonywane są następujące operacje:
;':=;' + ir(i) + s,- mod 256
zamień wartości TT dla argumentów i oraz j
i := / + 1 mod m
110
Kryptografia
Problem 18. Dane: z będące resztą kwadratową modulo n, oraz liczby pierw-
sze p, q, takie Ŝen = p ■ q oraz p — q = 3 mod 4. Szukane: y takie, Ŝe y2 = z
mod n oraz y jest resztą kwadratową modulo n.
PokaŜemy teraz, jak rozwiązać Problem 18. PoniewaŜ p\n, kaŜda równość
zachodząca modulo n zachodzi teŜ modulo p. Stąd y jest pierwiastkiem
kwadratowym z x modulo p i resztą kwadratową modulo p. Na mocy lematu
32 z Dodatku A jesteśmy w stanie jednoznacznie wyznaczyć y mod p
obliczając x'p+1^4 mod p. Podobnie y = x^+1V4 mod q. Reszty z y modulo p i
q pozwalają na jednoznaczne zrekonstruowanie y na mocy chińskiego
twierdzenia o resztach.
111
M. Kutyłowski, W.-B. Sirothmann
112
Rozdział 8
I Podpisy
cyfrowe
M. Kutyłowski, W.-B. Strothmann
114
8.1. Realizacja podpisów cyfrowych
Podpis cyfrowy jest odpowiednikiem tradycyjnego podpisu, jaki skła-
damy na dokumentach. NajwaŜniejsze własności podpisów są nastę-
pujące:
116
Kryptografia
b = t ■ (M — xa) mod p — l.
117
M. Kutyłowski, W.-B. Strothmann
8.1.2. DSA
DSA, czyli Digital Signature Algorithm, jest amerykańskim standardem
podpisów cyfrowych. UŜywany jest takŜe skrót DSS, od Digital Signature
Standard. Przyjęcie DSA jako standardu wywołało w USA kontrowersje;
wiele firm i uŜytkowników w tej roli chętniej widziałoby protokół oparty na
RSA. Tak jak w przypadku DES-a, pojawiały się głosy, iŜ DSA moŜe
zawierać ukryte drzwi znane amerykańskim słuŜbom bezpieczeństwa.
DSA jest algorytmem, który moŜe być uŜywany jedynie do tworzenia
podpisów cyfrowych. W jego strukturze moŜna wyraźnie dostrzec elementy
algorytmu EIGamala. Tak jak w przypadku ostatniego algorytmu,
bezpieczeństwo DSA opiera się na trudności obliczenia dyskretnych
logarytmów. lak więc bezpieczeństwo stosowanych podpisów stoi w ścisłej
zaleŜności z wielkością liczb, dla których obecnie potrafimy obliczać
dyskretne logarytmy.
DSA podpisuje nie dokument, ale jego wartość poprzez funkcję hashu-jącą.
Tym samym autor nie musi od razu zdradzić (przede wszystkim nie
wszystkim), co podpisał. DSA uŜywa jako podprocedurę funkcję hashującą
SHA, która równieŜ jest standardem w USA.
118
Kryptografia
1. w := s_1 mod q,
2. ui :— SHA(M) ■ w mod q,
3. U2 := r • w mod g,
4. v := ((gUl ■ y"2) mod p) mod </,
5. jeśli v = r, wtedy podpis jest prawidłowy.
Tak więc:
C?"1 ■ y"2 m°d p) mod q — (gk mod p) mod 17 = r.
119
M. Kutyłowski, W.-B. Strołhmann
120
Kryptografia
121
M. Kutyłowski, W.-B. Strothmann
M' = x • A + M • B mod p - 1.
122
Kryptografia
123
M. Kutyłowski, W.-B. Strothmann
Lemat 19. ZałóŜmy, Ŝe Bob pragnie przekonać Alice, Ŝe y jest podpisem dla
m, mimo, Ŝe mx ^ y mod p. Wtedy w trakcie protokołu weryfikacji oszustwo
Boba będzie wykryte z prawdopodobieństwem 1 — |.
Dowód. Po pierwsze zauwaŜmy, Ŝe jeśli Bob zna c, to istnieje q par (e\, e2),
takich Ŝe c — yCx • (3ei mod p. Istotnie, gdy e\ jest ustalone, to (3ei jest
jednoznacznie wyznaczone jako c/yei mod p. PoniewaŜ (5 jest generatorem
G, więc liczba e2 < q jest wyznaczona jednoznacznie. Zatem na podstawie
znajomości c Bob nie jest w stanie wywnioskować, którą z q moŜliwych
wartości dla (e\, ei) uŜyła Alice.
PokaŜemy teraz, Ŝe jeśli. Bob zdecyduje się na konkretną wartość d, to
równość d = mex ■ a6-- zachodzi dla dokładnie jednej z par (e\, eo)
spełniających c = yei ■ f3''2 mod p. Istotnie, załóŜmy, Ŝe c = au mod p, y = av
mod p, d = aw mod p, m = a1 mod p. Wtedy wspomniane warunki na c i d
moŜna przeformułować na
u — v ■ e\ + x ■ ei w
= t ■ ex + e2
124
Kryptografia
Lemat 20. O ile y nie jest prawidłowym podpisem Boba dla m oraz Bob po-
stępuje zgodnie z protokołem, to z prawdopodobieństwem co najmniej 1 — 2/ą
Alice stwierdzi, Ŝe y nie jest prawidłowym podpisem dla m.
125
M. Kutyłowski, W.-B. Strothmann
= yei,I"1'/"ncdłmodp
Lemat 21. Jeśli y jest prawidłowym podpisem Boba dla m, wtedy Bob moŜe
przekonać Alice, Ŝe y nie jest prawidłowym podpisem Boba dla m z prawdopo-
dobieństwem co najwyŜej \/ą.
RównowaŜnie:
126
Kryptografia
jest
127
M. Kutytowski, W.-B. Strothmann
128
Rozdział 9
I Uwierzytelnianie
M. Kutyłowski, W.-B. Strothmann
130
Uwierzytelnianie jest jednym z kluczowych zadań w zakresie zapewnienia
bezpieczeństwa w systemach komputerowych. Chodzi o to, by system
komputerowy mógł sprawdzić, czy osoba podająca się za określonego
uŜytkownika jest nim w istocie. Niekiedy to uŜytkownik chce sprawdzić, czy
znalazł się we właściwym systemie. Postać komunikatów podawanych przez
system jeszcze o niczym nie świadczy - mogą pochodzić od programu
zainstalowanego przez przeciwnika w celu zdobycia tajnych informacji.
Najbardziej rozpowszechnionym sposobem uwierzytelniania jest podanie
tajnego hasła. Metoda ta nie jest jednak jedyna i posiada pewne wady.
131
M. Kutyłowski, W.-B. Strothmann
132
Kryptografia
133
M. Kutyłowski, W.-B. Strothmann
Artur moŜe przecieŜ rzucać monetą. Z drugiej strony, Merlin moŜe uŜywać
całej swej magicznej mocy, aby móc odpowiedzieć na pytania Artura.
134
Kryptografia
wrota do labiryntu
136
Kryptografia
137
M. Kutyłozuski, W.-B. Strothmann
_ J r, jeśli bj = 0,
V' ~ \ r, - rj jeśli bt = 1.
y, _ / hj mod p jeśli bj = 0, ~ \
hj/hj mod p jeśli bx — 1.
7. Bob sprawdza, czv az> = b/hj mod p dla tych liczb i, dla których
bi = 1.
138
Kryptografia
_ J r • s mod n jeśli b = 1,
y
~\r jeśli b = 0.
Oczywiście, jeśli Mallet grający rolę Alice zna s, to moŜe on podać od-
powiednią wartość y i jego toŜsamość jako Alice zostaje potwierdzona. Jeśli
jednak Mallet nie zna s i próbuje podać się za Alice, to dla b = 1 nie moŜe
obliczyć r ■ s mod n w bezpośredni sposób. Liczba ta jest pierwiastkiem z x
■ v. PoniewaŜ obliczenie pierwiastków kwadratowych modulo n jest
praktycznie niewykonalne, r ■ s mod n nie moŜe być znalezione poprzez
pierwiastkowanie. Jednocześnie w ostatnim punkcie protokołu zostaje
sprawdzone, czy liczba y podana w trakcie protokołu przez Malleta jest
istotnie pierwiastkiem z x ■ v mod n. Mallet moŜe jednak podstępnie podać x
korzystając z równości x = y2/v mod n dla wcześniej wybranej wartości y.
Dla b = 1 Mallet podaje y w przedostatnim punkcie protokołu i Bob nie
wykrywa oszustwa w ostatnim kroku. Oszustwo zostaje jednak odkryte dla b
= 0: wtedy Mallet jest zmuszony do podania pierwiastka kwadratowego z x
modulo n, co nie jest praktycznie wykonalne. Tak czy inaczej, jeśli Mallet
nie zna s, to w trakcie powyŜszego testu Alice wykrywa to z
prawdopodobieństwem \. Wystarczy więc ten test powtórzyć powiedzmy 20
razy, by praktycznie zawsze móc odkryć oszustwo.
140
Kryptografia
141
M. Kutyłowski, W.-B. Strothmann
D
Lemat 22 moŜna zinterpretować następująco: gdy Mallet potrafi oszukać
Boba co najmniej dla 2 wartości podawanych przez Boba spośród 2'
moŜliwych dla danego 7, to Mallet potrafi obliczyć dyskretny logarytm z v,
co, jak sądzimy, nie jest moŜliwe.
Lemat 22 wskazuje, dlaczego Alice powinna wybierać liczbę 7 losowo. O ile
q jest wystarczająco duŜe gwarantuje to, Ŝe prawdopodobieństwo
powtórzenia tego samego 7 jest praktycznie równe 0. Jest to niezbędne, gdyŜ
powtórzenie tego samego 7 w dwóch róŜnych sytuacjach pozwoliłoby
wyliczyć x osobie znającej przebieg protokołu w obu przypadkach.
Atak na protokół Schnorra moŜe mieć jeszcze inny przebieg. Bob Ŝąda
wielokrotnie zidentyfikowania się Alice i zachowuje informacje o przebiegu
protokołu w kaŜdym przypadku. Na podstawie tych informacji stara się
następnie zidentyfikować tajną liczbę x. Dotychczas nie jest znana taka
metoda, ani nie pokazano, Ŝe tego typu atak nie jest praktycznie moŜliwy.
142
Kryptografia
143
M. Kutyłowski, W.-B. Strothmann
144
Rozdział 10
IAdministracja
kluczami
M. Kutyłowski, W.-B. Strothmann
146
Administracja kluczami jest jednym z kluczowych zagadnień krypto-
grafii stosowanej w praktyce. Problemy, przed jakimi stoimy, to przede
wszystkim:
Ethernet
S ------------v
! <
1
► •~- -------- -^
V_y
urządzenie klawiatura
kryptograficzne
148
Kryptografia
>• i-ty generowany klucz jest otrzymywany jako ostatnie bity kryp-
togramu utworzonego, na przykład, za pomocą DES-a z tekstu
zawierającego, na przykład, takie informacje, jak tajny klucz uŜyt-
kownika, i, aktualny czas i opis przeznaczenia klucza. Wskazane jest,
by klucz szyfrujący był w przypadku kaŜdego i inny. Utrudnia to
ewentualną kryptoanalizę.
>■ MoŜemy postępować jak powyŜej, jednak zamiast szyfrowania uŜyć
jednokierunkowej funkcji hashującej.
149
M. Kutyłowski, W.-B. Strothmann
150
Kryptografia
152
Kryptografia
153
M. Kutylowski, W.-B. Strothmann
Protokół 2:
1. Bob wysyła Alice ciąg N. Ciąg ten nie mógł być wcześniej uŜyty do
tego celu. N nie musi być zaszyfrowany.
Protokół 3:
154
Kryptografia
(Jfc,ID(Alice)),
155
M. Kutyłowski, W.-B. Strothmann
Protokół z podpisem:
1. Alice ustala klucz k i szyfruje za pomocą publicznego klucza Boba
wiadomość
(M,sigAlice(ID(Alice),U)),
gdzie t jest aktualnym czasem, ID(Alice) oznacza identyfikator Alice,
sig jest podpisem cyfrowym.
2. Bob deszyfruje wiadomość od Alice, sprawdza podpis i o ile wia
domość ma postać taką, jaka wynika z protokołu, to akceptuje k
jako klucz.
W powyŜszym protokole dodaliśmy informacje o momencie wysłania
klucza, dla zapewnienia jego „świeŜości". Podpis cyfrowy Alice pod
informacjami o k i t gwarantuje, Ŝe wiadomość istotnie pochodzi od Alice.
Ostatni protokół moŜna zmodyfikować w ten sposób, Ŝe podpis cyfrowy nie
jest szyfrowany wraz z kluczem k. Jest to, oczywiście, tylko wtedy moŜliwe,
gdy podpis nie zdradza treści podpisywanego tekstu.
156
Kryptografia
157
M. Kutyłowski, W.-B. Strothmann
158
Kryptografia
159
M. Kutyłowski, W.-B. Strothmann
160
Rozdział 11
Protokoły
kryptograficzne
M. Kutyłowski, W.-B. Strothmann
162
Jedna z fundamentalnych zasad dotyczących stosowania kryptografii mówi,
Ŝe dobre algorytmy szyfrujące nie zawsze wystarczają do zapewnienia
bezpieczeństwa. Konieczne jest ich wbudowanie w specjalnie
zaprojektowane protokoły, gdzie kaŜdy krok uŜytkownika jest ściśle
określony (a odstępstwa od protokołu mogą mieć powaŜne konsekwencje dla
bezpieczeństwa).
Pośrednio z protokołami mieliśmy do czynienia w ostatnich trzech roz-
działach. Teraz omówimy kilka protokołów wybranych ze względu na
znaczenie praktyczne zagadnień, jakie one rozwiązują.
163
M. Kutyłowski, W.-B. Strothmann
164
Kryptografia
Protokół:
165
M. Kutyłowski, W.-B. Strothmann
Inne schematy dla dzielenia tajemnic: niech S\,... ,St C {1,...m}. MoŜna
zaŜądać, by rekonstrukcja sekretu M była moŜliwa przez grupę osób S wtedy
i tylko wtedy, gdy istnieje i < t, takie Ŝe S, C S. Znana jest ogólna
konstrukcja umoŜliwiająca tego typu dzielenie tajemnic dla dowolnej
rodziny zbiorów S\,... , S t . Opis takiej konstrukcji znajduje się między
innymi w ksiąŜce [15].
167
M. Kutyłowski, W.-B. Strothmann
Wybór bitu:
1. Bob generuje losowy ciąg bitów R i przesyła go Alice.
2. Alice wybiera bit b i losowy klucz K. Następnie szyfruje R i b za
pomocą klucza K i przesyła zaszyfrowaną wiadomość Ez(R,b)
Bobowi.
168
Kryptografia
Odkrycie bitu:
1. Alice przesyła K Bobowi.
2. Bob wylicza E^(R, b) i sprawdza, czy w ten sposób otrzymuje z
powrotem R. Jednocześnie Bob poznaje wartość b.
Bezpieczeństwo protokołu zaleŜy od tego, czy jest praktycznie moŜliwe
znaleźć taki klucz K', by EK(R, b) = EK,{R, \-b).
Wybór bitu:
1. Bob generuje ciąg losowy R\ i przesyła go Alice.
2. Alice generuje losowo ciąg bitów R2 i pojedynczy bit b.
3. Alice przesyła Bobowi wartość H(R\, R2, b).
Odkrycie bitu:
1. Alice przesyła R2 i b Bobowi.
2. Bob oblicza H(Ri , R 2 , b ) i sprawdza, czy wartość ta jest identyczna z
wartością wcześniej otrzymaną od Alice.
Bezpieczeństwo tej metody opiera się na fakcie, Ŝe dla danych R\ i b nie jest
praktycznie moŜliwe znaleźć ciągi R i R', takie Ŝe H(R\, R,b) = H{RuR',l-b).
169
M. Kutyłowski, W.-B. Strothmann
170
Kryptografia
3. Dla j — l,... , 100, Alice ujawnia zobowiązania bitowe dla Rj, jeśli rj —
0, oraz Lj, jeśli rj = 1.
173
M. Kutyłowski, W.-B. Stroihmann
174
Kryptografia
Protokół wyborczy:
w stanie określić, kto oddał jaki głos, bo nie wie, jaki numer rejestra-
cyjny odpowiada jakiemu głosującemu. Komisja Uwierzytelniająca nie
jest w stanie powiedzieć, kto oddał jaki głos, bo nie zna przyporządko-
wania między numerami rejestracyjnymi a identyfikacyjnymi. Komisja
Skrutacyjna nie jest w stanie dorzucić niepostrzeŜenie własnych gło-
sów, bo zwiększyłoby to ogólną liczbę oddanych głosów (przyjmujemy,
Ŝe kaŜdy wyborca, który się zarejestrował, faktycznie zagłosuje - najle-
piej, by kroki 1 i 2 wykonywał łącznie). ZauwaŜmy jednak, iŜ Komisja
Skrutacyjna moŜe dowolnie zmieniać oddane głosy. Aby temu zapo-
biec, anonimowy kanał, jakim nadchodzą głosy, musi być zaopatrzony
w mechanizm potwierdzania otrzymanych listów.
Oczywiście, w przypadku jednoczesnego włamania do Komisji Uwie-
rzytelniającej i Komisji Skrutacyjnej - obie są realizowane jako procesy
elektroniczne - moŜna wynik wyborów niepostrzeŜenie sfałszować po-
przez dorzucenie głosów lub poznać, kto na kogo głosował. Dlatego
niezbędne jest, by były procesami działającymi na odrębnych maszy-
nach.
177
M. Kutyłowski, W.-B. Strothmann
178
Rozdział 12
I Kryptoanaliza
M. Kutyłowski, W.-B. Strothmann
180
12.1. Podstawowe moŜliwości ataku
12.1.0.1. Klasyfikacja ataków kryptoanalitycznych
Atak typu chosen ciphertext: Atakujący moŜe uzyskać tekst jawny dla
dowolnie wybranego kryptogramu (sytuacja taka zachodzi, gdy
atakujący moŜe deszyfrować za pomocą urządzenia kryptogra-
ficznego).
181
M. Kutyłowski, W.-B. Strothmann
NaleŜy mieć świadomość, Ŝe nawet gdy atak wymaga bardzo duŜo czasu i
mocy obliczeniowej, moŜe on być realizowalny w określonych
okolicznościach:
182
Kryptografia
Tak więc róŜnica między danymi wejściowymi S-boksów jest taka sama, jak
róŜnica między inputami X i Y. Zatem nie znając danych wejściowych dla S-
boksów, jakie pozostają w przypadku X i Y, moŜemy jednak z łatwością obliczyć
ich róŜnicę.
RóŜnica między X XOR K i Y XOR K ulega zazwyczaj zmianie poprzez
zastosowanie S-boksu. Nowa róŜnica jest nie tylko zaleŜna od X XOR Y ale
takŜe od konkretnych wartości X XOR K i Y XOR K. Na tym polega cały
trick: okaŜe się, Ŝe tylko niektóre wartości dla X XOR K i Y XOR K są
moŜliwe, a tym samym tylko niektóre wartości dla K. Dokładniej
prześledzimy to na konkretnym przykładzie.
184
Kryptografia
drugi element tej pary róŜni się od pierwszego o 34*. KaŜda z tych hi-
potetycznych wartości dla X XOR K wyznacza jedną z moŜliwych wartości
wyprowadzaną z równości K = X XOR (X XOR K). Na przykład, jeśli
przyjmiemy, Ŝe danymi wejściowymi dla SI był ciąg 07*, wtedy X XOR K =
07*, a co za tym idzie K = X XOR 07*. W ten sposób jakkolwiek nie
wyznaczyliśmy wartości K jednoznacznie, to potrafimy ograniczyć zbiór
moŜliwych wartości K do ośmiu ciągów.
Podobne postępowanie powtarzamy dla innej pary danych wejściowych X',
Y' rozpatrując róŜnicę X' XOR Y'. W ten sposób otrzymujemy nowy zbiór
moŜliwych kluczy. Prawdziwy klucz naleŜy, oczywiście, do obu
znalezionych zbiorów. W ten sposób moŜna zbiór hipotetycznych kluczy
ograniczyć do przekroju obu zbiorów. Kontynuując powyŜsze postępowanie
moŜna w krótkim czasie ograniczyć zbiór moŜliwych kluczy do zbioru
jednoelementowego.
Kryptoanaliza róŜnicowa dla DES-a jest uogólnieniem powyŜej przed-
stawionego postępowania dla pojedynczej rundy. Bezpośrednie uogólnienie
jest moŜliwe dla DES-a złoŜonego z trzech rund. Dla większej liczby rund
niezbędne jest rozpatrywanie tzw. charakterystyk opisanych poniŜej.
185
M. Kutyłowski, W.-B. Strothmann
(R\ XOR L\) XOR (R\ XOR Lj) = (R\ XOR R\) XOR (L\ XOR LQ.
Problem jest w tym, Ŝe wartość L3 XOR lĄ nie jest znana. Gdybyśmy byli
w stanie ją jakoś wyznaczyć, to tym samym moglibyśmy przeprowa-
dzić kryptoanalizę róŜnicową S-boksów ostatniej rundy, a tym samym
bity klucza wykorzystywane w ostatniej rundzie. Brakujące bity moŜna
szybko znaleźć metodą prób i błędów.
Jakkolwiek róŜnicę L\ XOR L3 nie da się obliczyć bezpośrednio, moŜna
to uczynić z pewnym prawdopodobieństwem. ZałóŜmy, Ŝe Lj XOR L§ =
00808200* oraz R\ XOR R2Q = 60000000*. Wybór takich róŜnic jest po-
dyktowany faktem, Ŝe jeśli róŜnica pomiędzy danymi wejściowymi dla
S-boksów rundy wynosi 60000000*, to z prawdopodobieństem 14/64
róŜnica pomiędzy wynikami wynosi 00808200*. ZałóŜmy na chwilę, Ŝe
róŜnica pomiędzy wynikami S-boksów pierwszej rundy faktycznie wy-
nosi 00808200*. Wtedy
Zatem
Wtedy
187
M. Kutyłowski, W.-B. Strothmann
i będzie to prawdą dla ok. 100% -19% = 81% przypadków (waŜne jest więc,
by udział procentowy przypadków, dla których dana równość zachodzi,
odbiegał jak najbardziej od 50%). W powyŜszej formule moŜna następnie
zastąpić z'4 poprzez XOR odpowiedniego bitu klucza i bitu danych
wejściowych rundy.
Z formuł aproksymujących liniowo pojedyncze S-boksy moŜna zbudować
formuły opisujące związki pomiędzy danymi wejściowymi rundy, bitami
klucza oraz wynikami rundy. Oczywiście, związki te zachodzą tylko
statystycznie dla stosunkowo duŜej lub stosunkowo małej liczby danych
wejściowych. Formuły dla poszczególnych rund moŜna powiązać ze sobą.
gdzie pi oznacza i-ty bit tekstu jawnego, Cj oznacza /-ty bit krypto-gramu, k"
zaś oznacza u-ty bit klucza w-tej rundy. Równość (12.1) zachodzi z
prawdopodobieństwem q dla losowo wybranego tekstu jawnego (q jest
znane, ale nie będziemy q podawać).
189
M. Kutyłowski, W.-B. Strothmann
190
Kryptografia
191
M. R.utyłowski, W.-B. Strothmann
192
Dodatek A
I
Wybrane
aspekty teorii
liczb
M. Kiityłowski, W.-B. Strothmann
236
A.0.2.1. Arytmetyka modularna
Twierdzenie 24. Niech q\,... ,q s będą względnie pierwsze, a\,... ,as będą
dowolnymi liczbami. Wtedy istnieje dokładnie jedna liczba x < q\ • ... • qs,
taka Ŝe dla kaŜdego i < s
x = aj mod qv
Inaczej mówiąc, wybierając dowolne «, < q-{ dla i < s wyznaczamy jed-
noznacznie liczbę x £ Zqy....qs, taką Ŝe x — «, mod q1 dla / < s.
Z chińskiego twierdzenia o resztach wynika natychmiast następujący
wniosek:
Wniosek 25. Niech q\,... ,qs będą względnie pierwsze, q — q\ ■ ... ■ qs oraz x,
y £ Zq . Wtedy x = y, jeśli dla kaŜdego i < s zachodzi x — y mod qj.
237
M. Kutyłowski, W.-B. Strothmann
r0 = a, rx-b
ri = ąi+i ■ ri+i + ri+2, gdzie ri+2 < r,-+1, dla i < m - 2
(to znaczy kolejne r!+2 jest otrzymywane poprzez dzielenie z resztą r, przez
ri+x). Wtedy NWD(a, b), największy wspólny dzielnik a i b, jest równy rm.
W trakcie działania algorytmu Euklidesa moŜna wyznaczyć liczby całkowite
u, v, takie Ŝe
u-a + vb = NWD(a,b).
to = 0, fi = 1,
ti+2 = U ~ tfi+\ ' U+\ dla i < m — 2.
NWD(«, b) — rm = tm ■ b mod a.
238
Kryptografia
xn~l = 1 mod n.
A.0.2.6. Generatory
239
M. Kutyłowski, W.-B. Strothmann
Lemat 28. Niech a będzie liczbą pierwszą. Niech G będzie zbiorem takich ele-
mentów g E Z*p, dla których g? == 1 mod p. Wtedy kaŜdy element G oprócz 1
jest generatorem G.
Dowód. Jeśli i jest parzyste, powiedzmy i = 2/, to g> mod p jest pier-
wiastkiem z x modulo p. Jeśli \ jest nieparzyste, powiedzmy i = 2t + 1,
240
Kryptografia
Lemat 31. Mec/z p bedzze Ziczfr^ pierwszą, p = 3 mod 4 oraz x < p. Wtedy x
albo —x mod p/es£ reszto kwadratową (ale nie obie te liczby).
Lemat 32. Medi p będzie liczbą pierwszą, taką Ŝe p = 3 mod 4. Jeśli x jest
resztą kwadratową modulo p, to x(P+1V4 mod pjest pierwiastkiem z x modulo p
będącym resztą kwadratową modulo p.
Lemat 33. Niech p, ą będą liczbami pierwszymi, n — p-ą oraz x < n. Jeśli x
ma pierwiastek, to istnieją dokładnie 4 pierwiastki z x modulo n.
241
M. Kutyłowski, W.-B. Słrothmann
242
Dodatek
Teoria
algorytmów
M. Kiityłowski, W.-B. Strothmann
244
B.0.2.8. ZłoŜoność obliczeniowa
Aby mówić konkretnie o złoŜoności obliczeniowej algorytmu, naleŜy
ustalić dokładnie załoŜenia o komputerze, na którym dokonywane są
obliczenia. Jedno z wielu moŜliwych podejść to zdefiniowanie maszyny
RAM: składa się ona z procesora i szeregu rejestrów. KaŜdy z rejestrów
moŜe przechowywać liczby całkowite w postaci binarnej o dowolnej
długości (lub inaczej: ciągi bitowe dowolnej długości). Operacje wyko-
nywane przez procesor to: kopiowanie, proste operacje arytmetyczne
(dodawanie, odejmowanie, dzielenie przez 2 itp.) oraz operacja GOTO.
Czas wykonywania operacji jest proporcjonalny do długości liczb za-
wartych w rejestrach, na których dokonywane są operacje. Maszyna
RAM korzysta z programu zapisanego w rejestrach. Pojedynczy krok
polega na wykonaniu operacji wskazanej w bieŜącym rejestrze. Po wy-
konaniu tej operacji wskaźnik do bieŜącego rejestru jest powiększany o
1, z wyjątkiem operacji GOTO, gdy wskaźnik ten jest uaktualniany
zgodnie z podanym argumentem (jest to podana stała lub zawartość
podanego rejestru).
Mówimy, Ŝe algorytm A ma złoŜoność czasową /, jeśli dla dowolnego
n i dowolnego argumentu x składającego się z n bitów łączny czas wy-
konywania A jest co najwyŜej f(n). Jeśli funkcja / jest wielomianem, to
mówimy o czasie wielomianowym.
Niech g będzie funkcją o wartościach 0,1, taką Ŝe pewien algorytm A
oblicza g(x) dla kaŜdego argumentu x oraz A ma wielomianową zło-
Ŝoność czasową. Wtedy mówimy, Ŝe g naleŜy do klasy P. Mówi się, Ŝe
P jest klasą „efektywnie obliczalnych" funkcji o wartościach 0,1 (przy-
najmniej w sensie teoretycznym). Interesujące jest, Ŝe jeśli przyjmiemy
inny rozsądny model obliczeń, na przykład maszynę Turinga, to otrzy-
mamy tę samą klasę P.
Niech \x\ oznacza długość ciągu bitowego x. Klasa NP składa się z ta-
245
M. Kutyłowski, W.-B. Strothmann
247
Słowniczek polsko-angielski
250
M. Kutyłowski, W.-B. Strothmann
252
Indeks
A5, 224 certyfikat, 217
algorytm CFB, 39
deterministyczny, 246 CFS, 226
randomizacyjny, 246 challenge and response, 131
analiza częstotliwości, 17 charakterystyka, 187
asymetryczne szyfrowanie, 4, 51 chińskie twierdzenie o resztach,
atak 237 chosen ciphertext,
chosen ciphertext, 181 atak, 181 chosen plaintext, atak,
chosen plaintext, 181 181 cipher feedback (CFB), 39
ciphertext only, 181 known ciphertext only atak, 181 Clipper,
plaintext, 181 liniowa 11
kryptoanaliza, 188 man in cryptographic file system, 226
the middle, 156 meet in the częstotliwości analiza, 17
middle, 35, 95 przeciw ECB,
37 przez powtórzenie, 153 Data Encryption Standard,
róŜnicowa kryptoanaliza, patrz DES, 29
183 róŜnicowa Daviesa schemat, 96
kryptoanaliza DES, 23, 29-10
błędów, 190 DESX, 34
słownikowy, 86 deszyfrowanie, 32
urodzinowy, 88 funkcja /, 32
permutacja końcowa, 31
bezpieczeństwo doskonałe, 21 permutacja początkowa, 31
Blum-Blum-Shub, generator permutacja z
(BBS), 107 Blum- rozszerzeniem, 32
Micali, generator, 107 podklucze rund, 31
runda, 31
Certificate Authority, 217 S-boks, 23
trzykrotny, 34
253
M. Kutyłowski, W.-B. Strothmann
254
Kryptografia
255
M. Kutyłowski, W.-B. Strothmann
256
Kryptografia
257
M. Kutyłowski, W.-B. Strothmann
szyfrowaniem
asymetrycznym, 155
wektor plecakowy, 54 wektor
superrosnący, 54 Whitening, 34
worm, patrz robak, 182 WWW,
bezpieczeństwo, 216
zarodek ciągu
pseudolosowego, 102
złoŜoność czasowa, 245
złoŜoności obliczeniowej teoria,
51 zobowiązanie bitowe,
167 jednokierunkowa funkcja
hashująca, 169
poprzez szyfrowanie
symetryczne, 168
259
M. Kutyłowski, W.-B. Strothmann
260
Literatura
[1] Certicom, strona WWW firmy z tutorialem na temat krzywych eliptycznych:
http://www.certicom.ca.
[2] D.E.R. Denning, Kryptografia i ochrona danych, Wydawnictwa Naukowo-
Techniczne, Warszawa 1992, ISBN 83-204-1480-6, (oryginał angielski: Cryptography
and Data Security, Addison Wesley, Reading 1983).
[3] O. Goldreich, Foundations of Cryptography (Fragments of a Book), strona WWW:
http://www.eccc.uni-trier.de/eccc-local/ ECCC-
Books/oded_book_readme.html.
[4] N. Koblitz, Wykład z teorii liczb i kryptografii, Wydawnictwa Naukowo-Techniczne,
Warszawa 1995, ISBN 83-204-1836-4, (oryginał angielski: A Course in Number
Theory and Cryptography, Springer-Verlag, Berlin 1987).
[5] E. Kranakis, Primality and Cryptography, Wiley-Teubner, Stuttgart 1986, ISBN 3-
519-02104-8, 0-471-90934-3.
[6] A.J.Menezes, RC van Oorschot, S.A.Vanstone, Handbook of Applied Cryptography,
CRC Press, Boca Raton 1996, ISBN 0-
8493-8523-7, strony WWW: http: / /www. dms. auburn. edu/hac/ oraz
http://www.crcpress.com/PRODS/852 3.HTM.
[7] J. Pieprzyk, B. Sadeghiyan, Design of Hashing Algorithms,
Springer-Verlag, Berlin 1993, ISBN 3-540-57500-6, 0-387-57500-6.
[8] A. Salomaa, Public-key Cryptography, Springer-Verlag, Berlin 1990, ISBN 3-540-
52831-8, 0-387-52831-8.
[9] B. Schneier, Kryptografia dla praktyków, Wydawnictwa Naukowo-Techniczne,
Warszawa 1995, ISBN 204-1867-4 (oryginał angielski: M. Kutyłowski, W.-B.
StrothmannApplied Cryptography, John Wiley & Sons, New York 1994, ISBN 0-
471-59756-2).
[10] B. Schneier, Applied Cryptography, 2nd addition, John Wiley & Sons, New
York 1996, ISBN 0-471-12845-7, 0-471-11709-9.
[11] B. Schneier, Ochrona poczty elektronicznej. Jak chronić prywatność
korespondencji w sieci Internet?, Wydawnictwa Naukowo-Techniczne,
Warszawa 1996, ISBN 83-204-1979-4 (oryginał angielski: E-mail Security,
John Wiley & Sons, New York, 1995, ISBN 0-471-05318-X).
[12] G.J. Simmons (edytor), Contemporary Cryptology, IEEE Computer Society
Press, Los Alamitos, 1992, ISBN 0-87942-277-7.
[13] W. Stallings, Ochrona danych w sieci i intersieci, Wydawnictwa Naukowo-
Techniczne, Warszawa 1997, ISBN 83-204-2184-5 (oryginał angielski:
Network and Internetwork Security, Prentice Hall, Englewood Cliffs, 1995,
ISBN 0-13-180050-7).
[14] W. Stallings, Practical Cryptography for Data Internetworks, IEEE
Computer Society Press, Los Alamitos, 1996, ISBN 0-8186-7140-8.
[15] D.R. Stinson, Cryptography. Theory and Practice, CRC Press, Boca
Raton 1995, ISBN 0-8493-8521-0, strona WWW:
http://bibd.unl.edu/~s tinson/CTAP.html.
Jeśli cenisz swój czas,
wstąp do Klubu KsiąŜki Komputerowej,
a publikacje i akcesoria same trafią do Ciebie
Microsoft ______
li. 2. KaŜdy członek KKK otrzymuje Kartę Klubową (która uprawnia do
zakupów na zasadach określonych przez regulamin) a takŜe swój
indywidualny numer klubowy (prosimy o posługiwanie się nim przy
HŁcel97 składaniu zamówień).
3. Raz na dwa miesiące wszyscy Klubowicze otrzymują bezpłatnie
informator z aktualnymi cenami i podaną datą waŜności (dwa razy w roku
wysyłamy pełny katalog).
4. Przy jednorazowym złoŜeniu zamówienia powyŜej kwoty 29.00 zł -
koszty wysyłki pokrywa KKK. Koszty pobrania pokrywa członek Klubu.
Zamówienia poniŜej tej kwoty realizowane są wyłącznie za zaliczeniem
pocztowym z doliczeniem kosztów wysyłki i pobrania.
5. Przy jednorazowych zamówieniach powyŜej kwoty 29.00 zt moŜna
dokonywać przedpłaty na konto bankowe PKO BP XV O/Warszawa
10201156-194060-270-1-111. Kopię dowodu wpłaty naleŜy dołączyć
do kuponu zamówienia. MoŜecie Państwo w ten sposób uniknąć kosztów
pobrania.
PUMIE 1
WIRUSÓW / 6. KaŜdy zamówiony produkt premiowany jest odpowiednią ilością
I ANTYWIRUSÓW >■'
punktów. Po zsumowaniu punktów uzyskanych w pierwszym zamówieniu
członek KKK otrzyma zniŜkę od wartości zamówionych produktów.
7. MoŜna zamówić dowolną ilość produktów, ale nie mniej niŜ jeden na pół
roku. JeŜeli w ciągu pół roku od złoŜenia ostatniego zamówienia nie
nadejdzie nowe zamówienie uzyskane dotychczas punkty zostaną
wyzerowane i członek KKK utraci uzyskany zakres zniŜki.
8. Przyjmujemy zgłoszenia listowne, telefoniczne, faksem lub pocztą
elektroniczną.
9. KsiąŜki moŜna zwrócić, jeŜeli nie posiadają śladów uŜywania (na własny
koszt) w ciągu siedmiu dni od daty otrzymania razem z rachunkiem. Klub
gwarantuje zwrot równowartości w ciągu czternastu dni od daty otrzymania
przesyłki zwrotnej. Dotyczy to równieŜ pozostałych produktów.
10. Klub nie przyjmuje reklamacji gier i programów wynikających z
niespełnienia oczekiwań zamawiającego co do zawartości merytorycznej.
Więcej informacji na temat działalności
Klubu, regulamin oraz oferta tytułowa w 11. Członkostwo ustaje po pisemnej rezygnacji na miesiąc przed upływem
bezpłatnym katalogu kaŜdego półrocza.
ADDISON WESLEY
ADOBE PRESS
ARTECH HOUSE
BORLAND PRESS
CORIOLIS
NOVELL PRESS
TOMIK
0'RElLLY & ASSOCIATES
OSBORNE
SAMS
SYBEX
readme@rm.com.pl
www.rm.com.pl
IIMC mmmmmam^mg-
DRUKARNIAREADME
______________sanHaiB
* * 92-403 Łódź, ul. Olechowska 83, tel. (0-42) 49-14-88 w.43, kom. 0-601-21-72-53
Gwarantujemy:
• wysoką jakość
• terminowe wykonanie usług
• przystępne ceny
• atrakcyjne warunki płatności