Algorytmy teorii liczb i kryptografii w przykładach
Książka jest przeznaczona dla Czytelników rozpoczynających poznawanie
kryptografii, którzy chcą się przy okazji zapoznać z elementarnymi faktami związanymi
z teorią liczb całkowitych.
W książce przedstawiono – na bazie dokładnie opisanych przykładów –
najbardziej popularne algorytmy kryptograficzne i teorii liczb.
Żeby ułatwić Czytelnikom ich samodzielną analizę i weryfikację autor
zrezygnował ze stosowania do realizacji obliczeń kosztownych narzędzi komercyjnych (jak
Mathematica lub Maple), w ich miejsce zastosował dostępne bezpłatnie pakiety GP/Pari i
Sage.
Dzięki temu duża liczba przykładowych obliczeń teorii liczb i kryptografii zawarta
w tekście książki jest dostępna dla szerokiego grona zainteresowanych.
Przedmowa.
1. Algorytmy podstawowe
1.1. Uwagi wstępne.
1.2. Dzielenie liczb całkowitych
1.3. Algorytm Euklidesa
1.4. Najmniejsza wspólna wielokrotność
1.5. Rozszerzony algorytm Euklidesa
1.6. Elementarne metody faktoryzacji.
1.7. Istnienie rozkładu na czynniki
1.8. Schematalgorytmukolejnychdzieleń
1.9. Algorytm faktoryzacji Fermata.
1.10. PraktycznarealizacjaalgorytmuFermata.
1.11. Jednoznaczność rozkładu
1.12. „Wzór wielomianowy”na liczbę pierwszą
1.13. „Wzór wykładniczy”.Liczby Mersenne’a
1.14. Liczby Fermata.
1.15. Funkcja p#.
1.16. Sito Eratostenesa
2. Wykorzystanie arytmetyki reszt.
2.1. Arytmetyka reszt.
2.2. Relacja równoważności
2.3. Działania na resztach modulo n
2.4. Potęgowanie modulo n.
2.5. Elementy odwracalne i dzielenie modulo n
2.6. Rozwiązywanie kongruencji liniowych
2.7. Twierdzenie Fermata
2.8. Liczby pseudopierwsze
2.9. Test Millera-Rabina.
3. Układy kongruencji
3.1. Układy równań(modn)
3.2. Chińskie twierdzenie o resztach
3.3. Interpretacja geometryczna
3.4. Chińskie twierdzenie o resztach. Przypadek ogólny
3.5. Przypadek wielu kongruencji
3.6. Wykorzystani eCRT
4. Permutacje,symetrie,grupy
4.1. Permutacje
4.2. Rozkład na cykle
4.3. Definicja grupy
4.4. Przykład ygrup
4.5. Grupa Z*n i funkcja Eulera ?(n)
4.6. Własności funkcji Eulera
4.7. Symetrie trójkąta
4.8. Grupas ymetrii kwadratu i pięciokąta foremnego
4.9. Podgrupy
4.10. Grupy cykliczne
4.11. Przykłady podgrup.Wykorzystanie twierdzenia Lagrange’a.
4.12. Dowód twierdzenia Lagrange’a
4.13. Twierdzenie o rzędzie elementu
4.14. Test Lucasa-Lehmera
4.15. Wykorzystanie pierwiastków pierwotnych w dowodach pierwszości
4.16. Zastosowanie pierwiastków pierwotnych do dowodu twierdzenia Korselta.
4.17. Badanie rzędów elementów
4.18. Konstrukcja pierwiastków pierwotnych.
4.19. Algorytm obliczania rzędów elementów Z*p
5. Kongruencje kwadratowe
5.1. Reszty i niereszty kwadratowe
5.2. Symbol Legendre’a.
5.3. Wykorzystanie prawa wzajemności reszt kwadratowych
5.4. Kongruencje kwadratowe z modułem złożonym
6. Wybrane metody szyfrowania stosowane w przeszłości
6.1. Uwagi wstępne
6.2. Szyfr Cezara
6.3. Szyfr Vigenere’a
6.4. Szyfr Hilla
6.5. Szyfr Vernama
7. Kryptografia z kluczem publicznym
7.1. Logarytmy dyskretne
7.2. Uzgadnianie klucza Diffiego-Hellmana
7.3. Generowanie kluczy w systemie ElGamal
7.4. Szyfrowanie w systemie ElGamal
7.5. Podpis elektroniczny w systemie ElGamal
7.6. System ElGamal w bibliotece Cryptojęzyka Python
7.7. Schema tpodpisu DSA
7.8. System DSA w bibliotece CryptojęzykaPython
7.9. System RSA (Rivest,Shamir,Adleman)
7.10. Podpis RSA
7.11. System RSA w bibliotece Cryptojęzyka Python
7.12. Uzasadnienie poprawności systemu RSA
7.13. Uwagi o bezpieczeństwie systemu RSA
7.14. Praktycznie stosowane systemy kryptograficzne
8. Kryptografia z kluczem symetrycznym
8.1. S-DES
8.1.1. Bloki tekstu i kluczS-DES
8.1.2. Schemat systemu S-DES
8.1.3. Permutacja wstępna w S-DES
8.1.4. Funkcja rozszerzająca EP i inne funkcje pomocnicze S-DES
8.1.5. Generowanie kluczy dla rundS-DES
8.1.6. Operacja xorwS-DES.
8.1.7. S-boksy w S-DES
8.1.8. Wykorzystanie S-boksów w S-DES.
8.1.9. Realizacja całości algorytmu S-DES
8.2. DES
8.2.1. Bloki tekstu i klucz
8.2.2. Schemat systemu DES
8.2.3. Permutacja wstępna
8.2.4. Funkcja rozszerzająca
8.2.5. Generowanie kluczy dla rund
8.2.6. Operacja xor
8.2.7. S-boksy1
8.2.8. Permutacja P.
8.2.9. Czynności końcowe
8.2.10. Realizacja całości algorytmu DES w Sage
8.3. System DES w bibliotece Cryptojęzyka Python
8.4. Mini-AES.181
8.4.1. Schemat systemu Mini-AES
8.4.2. S-boksy w Mini-AES
8.4.3. Generowanie kluczy dla rund
8.4.4. Wykorzystanie S-boksów w szyfrowaniu Mini-AES
8.4.5. Operacje shift.row i mix.column
8.4.6. Realizacja całości algorytmu Mini-AES
8.5. AES.188
8.5.1. Funkcja sub.byte.
8.5.2. Rozszerzanie klucza
8.5.3. Schemat algorytmu AES
8.5.4. Funkcja AddRoundKey(P,K).
8.5.5. FunkcjaSubBytes
8.5.6. Funkcja ShiftRows
8.5.7. Funkcja MixColumns
8.5.8. Funkcja KeyExpansion
8.5.9. Wykonanie całości procedury
8.6. System AES w bibliotece Cryptojęzyka Python
9. Funkcje skrótu
9.1. SHA-1.200
9.2. Wykonanie całości procedury
9.3. Funkcje skrótu w bibliotece Cryptojęzyka Python
10.Ułamki łańcuchowe
10.1. Skończone ułamki łańcuchowe
10.2. Redukty ułamków łańcuchowych.
10.3. Nieskończone ułamki łańcuchowe
10.4. Rozwijanie liczb niewymiernych w ułamki łańcuchowe
10.5. Nierówności pomocnicze
11.Pierścienie,ciała,wielomiany
11.1. Pierścienie i ciała
11.2. Ciała skończone
11.3. Wielomiany nierozkładalne
11.4. Konstrukcja ciał skończonych
12.Faktoryzacja
12.1. Metoda p - 1 Pollarda.
12.2. Metoda p Pollarda
12.3. Wykorzystanie kongruencji x2=y2(modn)
12.4. Bazy rozkładu
12.5. Wykorzystanie ułamków łańcuchowych w faktoryzacji
12.6. Metoda sita kwadratowego w ujęciu Koblitza.
12.7. Uproszczona wersja sita kwadratowego w ujęciu Pomerance’a.
13. Logarytmy dyskretne
13.1. Metoda przeliczania
13.2. Algorytm małych i wielkich kroków
13.3. Algorytm p Pollarda wyznaczania logarytmu.
13.4. Algorytm Pohlinga-Hellmana znajdowania logarytmu
13.5. Wykorzystanie baz rozkładu
13.6. Logarytmy bazy rozkładu.
14.Krzywe eliptyczne
14.1. Definicja krzywej eliptycznej
14.2. Płaszczyzna rzutowa.Podejście algebraiczne
14.3. Płaszczyzna rzutowa.Podejście geometryczne
14.4. Związek podejścia algebraicznego i geometrycznego
14.5. Krzywe eliptyczne na płaszczyźnie rzutowej
14.6. Krzywa eliptyczna jako grupa
14.7. Geometryczne dodawanie punktów
14.8. Dodawanie punktów. Podejście analityczne
14.9. Dodawanie punktów krzywej eliptycznej w Sage
14.10. Metoda Lenstry faktoryzacji
14.11. System ElGamal na krzywej eliptycznej
14.12. ECDSA
A. Szyfrowanie z GnuPG
A.1. Przygotowanie doszyfrowania3
A.2. Szyfrowanie i odszyfrowywanie
A.2.1. Szyfrowanie.
A.2.2. Odszyfrowywanie.
A.3. Szyfrowanie w gpg z linii poleceń
A.3.1. Generowanie pary kluczy
A.3.2. Export klucza publicznego
A.3.3. Generowanie certyfikatu odwołania klucza
A.3.4. Import klucza innego użytkownika gpg.
A.3.5. Wyświetlanie kluczy
A.3.6. Podpisanie zaimportowanego klucza
A.3.7. Szyfrowanie
A.3.8. Odszyfrowanie i weryfikacja podpisu
A.3.9. Usuwanie klucza ze zbioru kluczy
A.3.10. Szyfrowanie symetryczne
Skorowidz.315
Bibliografia.
328 stron, Format: 17.0x25.0cm, oprawa twarda