Zwięzłe i przystępne wprowadzenie do współczesnej kryptografii
napisane przez doświadczonego wykładowcę z Politechniki w Darmstadt,
światowy autorytet w tej dziedzinie.
Książka zawiera to, co niezbędne z algebry liniowej, teorii liczb i
teorii prawdopodobieństwa do studiowania tego przedmiotu ? w postaci
twierdzeń, dowodów i przykładów. Przedstawiono w niej systematyczne
wprowadzenie do symetrycznych systemów kryptograficznych, dokładny opis
DES oraz opis niedawno zaprojektowanego szyfru AES. Omówiono w niej
wszystkie główne typy systemów kryptograficznych. Lektura tego
podręcznika umożliwia przyswojenie wiedzy na poziomie bardziej
zaawansowanym. Dla studentów zdających egzamin z kryptografii może
stanowić cenny materiał do szybkiej powtórki.
Książka przeznaczona jest dla studentów informatyki, matematyki,
elektroniki i telekomunikacji na uniwersytetach i politechnikach,
studentów kierunków związanych z informatyką i nowoczesną gospodarką na
różnych uczelniach oraz osób zainteresowanych kryptografią i jej
zastosowaniami.
Z recenzji pierwszego wydania amerykańskiego:
Zdumiewa,
jak wiele Buchmann zdołał zmieścić na niecałych 300 stronach: pełny
wykład potrzebnych treści matematycznych (z dowodami), systematyczny
wstęp do kryptografii systemów symetrycznych, łącznie ze szczegółowym
opisem i dyskusją systemu DES, dobry wykład testowania pierwszości,
faktoryzacji liczb całkowitych i algorytmów obliczania logarytmów
dyskretnych, przejrzyście napisane rozdziały opisujące większość
ważnych typów systemów kryptograficznych... Ta książka jest doskonałym
źródłem informacji i wierzę, że będzie też dobrym podręcznikiem na
studiach matematycznych i informatycznych...
(Neal Koblitz, The American Mathematical Monthly)
Spis treści:
Przedmowa do wydania drugiego
Przedmowa
1. Liczby całkowite
1.1. Pojęcia podstawowe
1.2. Podzielność
1.3. Reprezentacja liczb całkowitych
1.4. Notacja ? i ?
1.5. Koszt dodawania, mnożenia i dzielenia z resztą
1.6. Czas wielomianowy
1.7. Największy wspólny dzielnik
1.8. Algorytm Euklidesa
1.9. Rozszerzony algorytm Euklidesa
1.10. Analiza rozszerzonego algorytmu Euklidesa
1.11. Rozkład na czynniki pierwsze
1.12. Zadania
2. Kongruencje i pierścienie klas reszt
2.1. Kongruencje
2.2. Półgrupy
2.3. Grupy
2.4. Pierścień klas reszt
2.5. Ciała
2.6. Dzielenie w pierścieniu klas reszt
2.7. Analiza złożoności działań w pierścieniu klas reszt
2.8. Grupa multiplikatywna klas reszt modulo m
2.9. Rząd elementu grupy
2.10. Podgrupy
2.11. Małe twierdzenie Fermata
2.12. Szybkie potęgowanie
2.13. Szybkie obliczanie iloczynów potęg
2.14. Obliczanie rzędu elementu
2.15. Chińskie twierdzenie o resztach
2.16. Rozkład pierścienia klas reszt
2.17. Wzór funkcji ? Eulera
2.18. Wielomiany
2.19. Wielomiany nad ciałami
2.20. Konstrukcja ciał skończonych
2.21. Struktura grupy elementów odwracalnych ciała skończonego
2.22. Struktura grupy multiplikatywnej klas reszt modulo liczba pierwsza
2.23. Zadania
3. Szyfrowanie
3.1. Schematy szyfrowania
3.2. Symetryczne i asymetryczne systemy kryptograficzne
3.3. Kryptoanaliza
3.3.1. Typy ataków
3.3.2. Elementy losowości w szyfrowaniu
3.3.3. Matematyczne modele bezpieczeństwa
3.4. Alfabety i słowa
3.5. Permutacje
3.6. Szyfry blokowe
3.7. Wielokrotne szyfrowanie
3.8. Używanie szyfrów blokowych
3.8.1. Tryb ECB
3.8.2. Tryb CBC
3.8.3. Tryb CFB
3.8.4. Tryb OFB
3.8.5. Inne tryby
3.9. Szyfry strumieniowe
3.10. Szyfr afiniczny
3.11. Macierze i przekształcenia liniowe
3.11.1. Macierze nad pierścieniami
3.11.2. Iloczyn macierzy przez wektor
3.11.3. Suma i iloczyn macierzy
3.11.4. Pierścień macierzy
3.11.5. Wyznaczniki
3.11.6. Macierze odwrotne
3.11.7. Przekształcenia afiniczne
3.12. Afiniczne szyfry blokowe
3.13. Szyfry Vigenere'a i Hilla oraz szyfry przestawieniowe
3.14. Kryptoanaliza afinicznych szyfrów blokowych
3.15. Bezpieczne systemy kryptograficzne
3.15.1. Konfuzja i dyfuzja
3.15.2. Przeszukiwanie wyczerpujące przestrzeni kluczy
3.15.3. Kompromis między czasem i pamięcią
3.15.4. Kryptoanaliza różnicowa i liniowa
3.15.5. Kryptoanaliza algebraiczna
3.16. Zadania
4. Prawdopodobieństwo i tajność doskonała
4.1. Prawdopodobieństwo
4.2. Prawdopodobieństwo warunkowe
4.3. Paradoks dnia urodzin
4.4. Tajność doskonała
4.5. Szyfr Vernama z kluczem jednorazowym
4.6. Liczby losowe
4.7. Liczby pseudolosowe
4.8. Zadania
5. DES
5.1. Szyfry Feistela
5.2. Algorytm DES
5.2.1. Przestrzeń tekstów otwartych i kryptogramów
5.2.2. Permutacja wstępna
5.2.3. Wewnętrzny szyfr blokowy
5.2.4. S-boksy
5.2.5. Klucze
5.2.6. Rozszyfrowywanie
5.3. Przykład
5.4. Bezpieczeństwo systemu DES
5.5. Zadania
6. AES
6.1. Oznaczenia
6.2. Cipher
6.2.1. Identyfikacja bajtów z elementami GF(28)
6.2.2. SubBytes
6.2.3. ShiftRows
6.2.4. MixColumns
6.2.5. AddRoundKey
6.3. KeyExpansion
6.4. Przykład
6.5. InvCipher
6.6. Zadania
7. Generowanie liczb pierwszych
7.1. Dzielenie próbne
7.2. Test Fermata
7.3. Liczby Carmichaela
7.4. Test Millera-Rabina
7.5. Losowe liczby pierwsze
7.6. Zadania
8. Szyfrowanie z kluczem publicznym
8.1. Idea
8.2. Bezpieczeństwo
8.2.1. Bezpieczeństwo klucza tajnego
8.2.2. Bezpieczeństwo semantyczne
8.2.3. Bezpieczeństwo wobec ataków z wybranym kryptogramem
8.2.4. Dowody bezpieczeństwa
8.3. System kryptograficzny RSA
8.3.1. Generowanie kluczy
8.3.2. Szyfrowanie
8.3.3. Rozszyfrowywanie
8.3.4. Bezpieczeństwo tajnego klucza
8.3.5. RSA i faktoryzacja
8.3.6. Wybór p i q
8.3.7. Wybór e
8.3.8. Wybór d
8.3.9. Efektywność
8.3.10. Multiplikatywność
8.3.11. Bezpieczny RSA
8.3.12. Uogólnienie
8.4. Szyfr Rabina
8.4.1. Generowanie kluczy
8.4.2. Szyfrowanie
8.4.3. Rozszyfrowywanie
8.4.4. Efektywność
8.4.5. Bezpieczeństwo wobec ataku ze znanym tylko kryptogramem
8.4.6. Atak z wybranym kryptogramem
8.4.7. Bezpieczne szyfrowanie w systemie Rabina
8.5. Wymiana klucza Diffiego-Hellmana
8.5.1. Logarytmy dyskretne
8.5.2. Wymiana klucza
8.5.3. Wybór g
8.5.4. Bezpieczeństwo
8.5.5. Inne grupy
8.6. Szyfr ElGamala
8.6.1. Generowanie klucza
8.6.2. Szyfrowanie
8.6.3. Rozszyfrowywanie
8.6.4. Efektywność
8.6.5. System ElGamala a system Diffiego-Hellmana
8.6.6. Wybór parametrów
8.6.7. Losowe aspekty systemu ElGamala
8.6.8. Uogólnienie
8.7. Zadania
9. Faktoryzacja
9.1. Dzielenie próbne
9.2. Metoda p - 1
9.3. Sito kwadratowe
9.3.1. Pomysł
9.3.2. Wyznaczanie x i y
9.3.3. Wybór właściwych kongruencji
9.3.4. Przesiewanie
9.4. Analiza sita kwadratowego
9.5. Efektywność innych algorytmów faktoryzacji
9.6. Zadania
10. Logarytmy dyskretne
10.1. Problem logarytmu dyskretnego
10.2. Przeliczanie
10.3. Algorytm małych i wielkich kroków Shanksa
10.4. Algorytm ? Pollarda
10.5. Algorytm Pohliga-Hellmana
10.5.1. Redukcja do potęg liczb pierwszych
10.5.2. Redukcja do rzędów będących liczbami pierwszymi
10.5.3. Całkowity algorytm i jego analiza
10.6. Metoda obliczania indeksu
10.6.1. Pomysł
10.6.2. Logarytmy dyskretne elementów bazy rozkładu
10.6.3. Logarytmy innych liczb
10.6.4. Analiza
10.7. Inne algorytmy
10.8. Uogólnienia algorytmu obliczania indeksu
10.9. Zadania
11. Kryptograficzne funkcje skrótu
11.1. Funkcje skrótu i funkcje kompresji
11.2. Atak metodą dnia urodzin
11.3. Otrzymywanie funkcji kompresji z funkcji szyfrujących
11.4. Otrzymywanie funkcji skrótu z funkcji kompresji
11.5. SHA-1
11.6. Inne funkcje skrótu
11.7. Arytmetyczna funkcja kompresji
11.8. Kody uwierzytelniania wiadomości
11.9. Zadania
12. Podpisy cyfrowe
12.1. Pomysł
12.2. Bezpieczeństwo
12.2.1. Bezpieczeństwo klucza prywatnego
12.2.2. Ataki bez znanych wiadomości
12.2.3. Ataki z wybraną wiadomością
12.3. Podpisy RSA
12.3.1. Generowanie klucza
12.3.2. Generowanie podpisu
12.3.3. Weryfikacja
12.3.4. Ataki
12.3.5. Podpis z redundancją
12.3.6. Podpis z funkcjami skrótu
12.3.7. Wybór p i q
12.3.8. Bezpieczne podpisy RSA
12.4. Podpisy otrzymane z systemów z kluczem publicznym
12.5. Schemat podpisu ElGamala
12.5.1. Generowanie klucza
12.5.2. Generowanie podpisu
12.5.3. Weryfikacja
12.5.4. Wybór p
12.5.5. Wybór k
12.5.6. Fałszerstwo egzystencjalne
12.5.7. Efektywność
12.5.8. Bezpieczne podpisy ElGamala
12.5.9. Uogólnienie
12.6. Algorytm podpisu cyfrowego DSA
12.6.1. Generowanie klucza
12.6.2. Generowanie podpisu
12.6.3. Weryfikacja
12.6.4. Efektywność
12.6.5. Bezpieczeństwo
12.7. Podpisy niezaprzeczalne
12.7.1. Specyfikacja
12.7.2. Schemat Chauma-van Antwerpena
12.8. Ślepe podpisy
12.8.1. Specyfikacja
12.8.2. Bezpieczeństwo
12.8.3. Protokół Chauma
12.8.4. Schemat Okamoto-Schnorra
12.9. Zadania
13. Inne systemy
13.1. Ciała skończone
13.1.1. Problem logarytmu dyskretnego
13.2. Krzywe eliptyczne
13.2.1. Definicja
13.2.2. Struktura grupy
13.2.3. Krzywe bezpieczne kryptograficznie
13.2.4. Zalety systemów kryptograficznych opartych na krzywych eliptycznych
13.3. Formy kwadratowe
13.4. Zadania
14. Identyfikacja
14.1. Hasła
14.2. Hasła jednorazowe
14.3. Identyfikacja typu zapytanie-odpowiedź
14.3.1. Systemy symetryczne
14.3.2. Systemy klucza publicznego
14.3.3. Dowody o wiedzy zerowej
14.4. Zadania
15. Podział sekretu
15.1. Zasada działania
15.2. Protokół Shamira podziału sekretu
15.2.1. Zapoczątkowanie
15.2.2. Udziały
15.2.3. Odtwarzanie sekretu
15.2.4. Bezpieczeństwo
15.3. Zadania
16. Infrastruktura systemów z kluczem publicznym
16.1. Środowisko bezpieczeństwa osobistego
16.1.1. Znaczenie
16.1.2. Implementacja
16.1.3. Problem reprezentacji
16.2. Ośrodek certyfikacji
16.2.1. Rejestracja
16.2.2. Generowanie klucza
16.2.3. Certyfikacja
16.2.4. Archiwum
16.2.5. Inicjalizacja PSE
16.2.6. Obsługa katalogu
16.2.7. Aktualizacja klucza
16.2.8. Unieważnienie certyfikatów
16.2.9. Dostęp do przedawnionych kluczy
16.3. Łańcuchy certyfikatów
Rozwiązania zadań
Literatura