Szczegóły ebooka

Podstawy kryptografii. Wydanie III

Podstawy kryptografii. Wydanie III

Marcin Karbowski

Ebook

Przekonaj się, jak fascynująca jest kryptografia!

  • Poznaj historię rozwoju kryptografii
  • Opanuj jej matematyczne podstawy
  • Rozpracuj najważniejsze algorytmy kryptograficzne
  • Dowiedz się, jak zastosować je w praktyce

Kryptografia to dziedzina nauki, której sedno stanowią sposoby bezpiecznego przekazywania informacji. Jest ona niemal tak stara, jak nasza cywilizacja, a dziś rozwija się w sposób niezwykle dynamiczny. Gdy tylko narodziły się pierwsze metody zapisu i komunikowania się, pojawiła się też konieczność zabezpieczenia informacji przed tymi, którzy mogliby wykorzystać je na niekorzyść osób dysponujących tymi informacjami. Od bezpieczeństwa ważnych informacji zależały często losy całych państw i narodów. O rozstrzygnięciach wielkich bitew nierzadko decydowały inteligencja i determinacja pojedynczych osób, które potrafiły odpowiednio skutecznie szyfrować (bądź też deszyfrować) nadawane (lub przechwytywane) komunikaty.

O tej fascynującej dziedzinie wiedzy opowiada książka Podstawy kryptografii. Wydanie III. Wprowadza ona czytelnika w podstawowe zagadnienia kryptografii bez przygniatania nadmiarem teorii i skomplikowaną matematyką. Kusi za to barwnymi opisami i pasjonującymi przykładami "kryptograficznych wojen". Można dzięki niej poznać historię rozwoju technik szyfrowania informacji, matematyczne podstawy kryptografii, stojącą za nią teorię oraz praktyczne zastosowania tej nauki. Niezależnie od tego, czy chcesz poznać kryptografię na własny użytek, czy jest Ci to potrzebne w celach zawodowych, książka ta okaże się doskonałym przewodnikiem po świecie szyfrów, kluczy i algorytmów zabezpieczających dane. Znajdziesz w niej informacje na temat protokołów SSL i SSH, a także szczegółowy opis algorytmu SHA3.

  • Przegląd klasycznych sposobów szyfrowania
  • Matematyczne podstawy kryptografii
  • Praktyczne zastosowanie mechanizmów matematycznych
  • Teoria kryptoanalizy i informacji oraz jej praktyczne wykorzystanie
  • Przegląd protokołów kryptograficznych
  • Klucze publiczne i prywatne
  • Zasady zabezpieczania danych, połączeń i systemów komputerowych
  • Potwierdzanie tożsamości za pomocą podpisów elektronicznych
  • Zabezpieczanie stron internetowych i szyfrowanie baz danych

Naucz się chronić cenne dane!

  • Podziękowania
  • Kilka słów wstępu
    • Jak czytać tę książkę?
  • Rozdział 1. Historia kryptografii
    • 1.1. Prolog Painvin ratuje Francję
    • 1.2. Początek
      • 1.2.1. Steganografia
      • 1.2.2. Kryptografia
      • 1.2.3. Narodziny kryptoanalizy
    • 1.3. Rozwój kryptografii i kryptoanalizy
      • 1.3.1. Szyfry homofoniczne
      • 1.3.2. Szyfry polialfabetyczne
        • 1.3.2.1. Tarcza Albertiego
        • 1.3.2.2. Tabula recta
        • 1.3.2.3. Le chiffre indechiffrable
        • 1.3.2.4. Złamanie szyfru nie do złamania
      • 1.3.3. Szyfry digraficzne
      • 1.3.4. Prawdziwy szyfr nie do złamania
      • 1.3.5. Kamienie milowe kryptografii
    • 1.4. Kryptografia II wojny światowej
      • 1.4.1. Enigma i Colossus
        • 1.4.1.1. Jak działała Enigma?
        • 1.4.1.2. Cyklometr i Bomby
        • 1.4.1.3. Bletchley Park
        • 1.4.1.4. Colossus
    • 1.5. Era komputerów
      • 1.5.1. DES
      • 1.5.2. Narodziny kryptografii asymetrycznej
      • 1.5.3. RSA
      • 1.5.4. PGP
      • 1.5.5. Ujawniona tajemnica
      • 1.5.6. Upowszechnienie kryptografii
  • Rozdział 2. Matematyczne podstawy kryptografii
    • 2.1. Podstawowe pojęcia
      • 2.1.1. Słownik tekstu jawnego
      • 2.1.2. Przestrzeń tekstu
      • 2.1.3. Iloczyn kartezjański
      • 2.1.4. System kryptograficzny
      • 2.1.5. Szyfrowanie monoalfabetyczne
      • 2.1.6. Funkcje jednokierunkowe
      • 2.1.7. Arytmetyka modulo
      • 2.1.8. Dwójkowy system liczbowy
      • 2.1.9. Liczby pierwsze
        • 2.1.9.1. Co to za liczby i ile ich jest?
        • 2.1.9.2. Sito Eratostenesa
        • 2.1.9.3. Sito Sundarama
        • 2.1.9.4. Sito Atkina
        • 2.1.9.5. Liczby pierwsze Mersennea i nie tylko
        • 2.1.9.6. Małe twierdzenie Fermata
        • 2.1.9.7. NWD i NWW
      • 2.1.10. Logarytmy
      • 2.1.11. Grupy, pierścienie i ciała
        • 2.1.11.1. Grupa
        • 2.1.11.2. Pierścień
        • 2.1.11.3. Ciało
      • 2.1.12. Izomorfizmy
        • 2.1.12.1. Funkcja różnowartościowa
        • 2.1.12.2. Surjekcja
        • 2.1.12.3. Przekształcenie izomorficzne
    • 2.2. Wzory w praktyce
      • 2.2.1. Kryptosystem RSA
      • 2.2.2. Problem faktoryzacji dużych liczb
      • 2.2.3. Mocne liczby pierwsze
      • 2.2.4. Generowanie liczb pierwszych
        • 2.2.4.1. Test Lehmana
        • 2.2.4.2. Test Rabina-Millera
        • 2.2.4.3. Test Solovaya-Strassena
        • 2.2.4.4. Test Fermata
      • 2.2.5. Chińskie twierdzenie o resztach
      • 2.2.6. Logarytm dyskretny
      • 2.2.7. XOR i AND
      • 2.2.8. Testy zgodności
        • 2.2.8.1. Zdarzenia i ich prawdopodobieństwo
        • 2.2.8.2. Test zgodności Kappa
        • 2.2.8.3. Test zgodności Fi
        • 2.2.8.4. Test zgodności Chi
      • 2.2.9. Złożoność algorytmów
      • 2.2.10. Teoria informacji
        • 2.2.10.1. Entropia
        • 2.2.10.2. Nadmiarowość i zawartość informacyjna języka
        • 2.2.10.3. Odległość jednostkowa
        • 2.2.10.4. Jak to wygląda w praktyce?
        • 2.2.10.5. Mieszanie i rozpraszanie
  • Rozdział 3. Kryptografia w teorii
    • 3.1. Ataki kryptoanalityczne i nie tylko
      • 3.1.1. Metody kryptoanalityczne
      • 3.1.2. Kryptoanaliza liniowa i różnicowa
        • 3.1.2.1. Kryptoanaliza różnicowa
        • 3.1.2.2. Kryptoanaliza liniowa
      • 3.1.3. Inne rodzaje ataków
    • 3.2. Rodzaje i tryby szyfrowania
      • 3.2.1. Szyfry blokowe
        • 3.2.1.1. Tryby szyfrów blokowych
          • 3.2.1.1.1. ECB
          • 3.2.1.1.2. CBC
          • 3.2.1.1.3. CFB
          • 3.2.1.1.4. OFB
          • 3.2.1.1.5. CTR
          • 3.2.1.1.6. Inne tryby szyfrowania blokowego
        • 3.2.1.2. Kilka słów o wektorach inicjujących
          • 3.2.1.2.1. IV jako licznik
          • 3.2.1.2.2. Losowy IV
          • 3.2.1.2.3. Jednorazowy IV
        • 3.2.1.3. Dopełnianie
        • 3.2.1.4. Który tryb jest najlepszy?
      • 3.2.2. Szyfry strumieniowe
        • 3.2.2.1. Generowanie ciągów pseudolosowych
          • 3.2.2.1.1. Generatory kongruencyjne
          • 3.2.2.1.2. Generatory oparte na rejestrze przesuwającym ze sprzężeniem zwrotnym
          • 3.2.2.1.3. Generatory oparte na teorii złożoności
        • 3.2.2.2. Generatory ciągów rzeczywiście losowych
        • 3.2.2.3. Najpopularniejsze algorytmy strumieniowe
      • 3.2.3. Szyfr blokowy czy strumieniowy?
    • 3.3. Protokoły kryptograficzne
      • 3.3.1. Protokoły wymiany kluczy
        • 3.3.1.1. Protokół Diffiego-Hellmana
        • 3.3.1.2. KEA
        • 3.3.1.3. Wide-mouth frog
      • 3.3.2. Podpis cyfrowy
        • 3.3.2.1. Niezaprzeczalne podpisy cyfrowe
        • 3.3.2.2. Niepodrabialne podpisy cyfrowe
        • 3.3.2.3. Podpisy ślepe
        • 3.3.2.4. Inne warianty podpisu cyfrowego
      • 3.3.3. Dzielenie sekretów
        • 3.3.3.1. Secret splitting
        • 3.3.3.2. Secret sharing
      • 3.3.4. Inne protokoły
        • 3.3.4.1. Znakowanie czasowe
        • 3.3.4.2. Dowody z wiedzą zerową
        • 3.3.4.3. Kanały podprogowe
        • 3.3.4.4. Protokoły uwierzytelniające
    • 3.4. Infrastruktura klucza publicznego
      • 3.4.1. PKI w teorii
      • 3.4.2. i w praktyce
        • 3.4.2.1. Złożoność
        • 3.4.2.2. Zaufanie
        • 3.4.2.3. Cykl życia klucza
    • 3.5. Kryptografia alternatywna
      • 3.5.1. Fizyka kwantowa w kryptografii
        • 3.5.1.1. Kilka słów o kwantach
        • 3.5.1.2. Kryptografia kwantowa
        • 3.5.1.3. Komputer kwantowy
        • Kryptografia postkwantowa
      • 3.5.2. Kryptografia DNA
        • 3.5.2.1. Struktura DNA
        • 3.5.2.2. Informatyka molekularna
        • 3.5.2.3. Informacja ukryta w DNA
        • 3.5.2.4. Szyfrowanie i deszyfrowanie z wykorzystaniem nukleotydów
      • 3.5.3. Kryptografia wizualna
        • 3.5.3.1. Udziały
        • 3.5.3.2. Schemat progowy
    • 3.6. Współczesna steganografia
      • 3.6.1. Znaki wodne
        • 3.6.1.1. Algorytm LSB
        • 3.6.1.2. Algorytm Patchwork
      • 3.6.2. Oprogramowanie steganograficzne
  • Rozdział 4. Kryptografia w praktyce
    • 4.1. Konstrukcja bezpiecznego systemu kryptograficznego
      • 4.1.1. Wybór i implementacja kryptosystemu
      • 4.1.2. Bezpieczny system kryptograficzny
      • 4.1.3. Najsłabsze ogniwo
        • 4.1.3.1. Kryptografia jako gwarancja bezpieczeństwa
        • 4.1.3.2. Hasła
        • 4.1.3.3. Procedury kontra socjotechnika
        • 4.1.3.4. Wewnętrzny wróg
        • 4.1.3.5. Podsumowując
    • 4.2. Zabezpieczanie połączeń internetowych
      • 4.2.1. Protokół TLS
        • 4.2.1.1. Struktura i lokalizacja protokołu TLS
        • 4.2.1.2. Nawiązywanie połączenia w TLS
        • 4.2.1.3. Wyznaczanie kluczy
        • 4.2.1.4. Przesyłanie danych
        • 4.2.1.5. Implementacja protokołu TLS
        • 4.2.1.6. Sprawdzanie certyfikatu
        • 4.2.1.7. Biblioteka OpenSSL
      • 4.2.2. Protokół SSH
        • 4.2.2.1. Sesja SSH
          • 4.2.2.1.1. Uwierzytelnianie serwera
          • 4.2.2.1.2. Ustanawianie bezpiecznego połączenia
          • 4.2.2.1.3. Uwierzytelnianie klienta
        • 4.2.2.2. Algorytmy wykorzystywane w SSH
        • 4.2.2.3. SSH1 a SSH2
        • 4.2.2.4. PuTTY
    • 4.3. Symantec Encryption Desktop
      • 4.3.1. PGP Keys
      • 4.3.2. PGP Messaging
      • 4.3.3. PGP Zip
      • 4.3.4. PGP Disk
        • 4.3.4.1. Tworzenie dysków wirtualnych
        • 4.3.4.2. Szyfrowanie całego dysku lub partycji
        • 4.3.4.3. Czyszczenie wolnej przestrzeni dyskowej
      • 4.3.5. PGP Viewer
      • 4.3.6. File Share Encryption
      • 4.3.7. PGP Shredder
      • 4.3.8. Web of Trust
    • 4.4. GnuPG
      • 4.4.1. Tworzenie certyfikatu
        • 4.4.1.1. Tworzenie certyfikatu X.509
        • 4.4.1.2. Tworzenie certyfikatu OpenPGP
      • 4.4.2. Obsługa certyfikatów
      • 4.4.3. Szyfrowanie i podpisywanie
      • 4.4.4. Obsługa serwerów
    • 4.5. TrueCrypt
      • 4.5.1. Tworzenie szyfrowanych dysków i partycji
      • 4.5.2. Obsługa dysków wirtualnych
      • 4.5.3. Ukryte dyski
      • 4.5.4. Pozostałe opcje i polecenia
    • 4.6. Składanie i weryfikacja podpisów elektronicznych
      • 4.6.1. Wymagania techniczne
        • 4.6.1.1. Obsługa certyfikatów
        • 4.6.1.2. Obsługa 128-bitowej siły szyfrowania
        • 4.6.1.3. Obsługa cookies
        • 4.6.1.4. Obsługa ActiveX
      • 4.6.2. Jak zdobyć certyfikat cyfrowy?
        • 4.6.2.1. Centra certyfikacji
        • 4.6.2.2. Uzyskiwanie certyfikatu
      • 4.6.3. O czym warto pamiętać?
      • 4.6.4. Konfiguracja programu pocztowego
        • 4.6.4.1. Microsoft Outlook
        • 4.6.4.2. MS Outlook Express
        • 4.6.4.3. Mozilla Thunderbird
        • 4.6.4.4. Informacje dodatkowe
      • 4.6.5. Struktura certyfikatu
        • 4.6.5.1. Elementy certyfikatu
        • 4.6.5.2. Uzyskiwanie informacji o certyfikacie
    • 4.7. Kryptografia w PHP i MySQL
      • 4.7.1. Funkcje szyfrujące w PHP
        • 4.7.1.1. Biblioteka mcrypt
        • 4.7.1.2. Dostępne algorytmy
        • 4.7.1.3. Wywoływanie funkcji szyfrujących
        • 4.7.1.4. Kilka pożytecznych uwag
      • 4.7.2. Szyfrowanie danych w MySQL
        • 4.7.2.1. Przykładowe funkcje
        • 4.7.2.2. Szyfrowanie danych
      • 4.7.3. Kolejne udoskonalenia
  • Podsumowanie
  • Dodatek A. Jednokierunkowe funkcje skrótu
    • A.1. MD5
      • A.1.1. Przekształcenia początkowe
      • A.1.2. Pętla główna MD5
      • A.1.3. Obliczenia końcowe
    • A.2. SHA-1
      • A.2.1. Przekształcenia początkowe
      • A.2.2. Pętla główna algorytmu SHA-1
      • A.2.3. Operacje w cyklu SHA-1
      • A.2.4. Obliczenia końcowe
    • A.3. SHA-2
      • A.3.1. Dodatkowe pojęcia
      • A.3.2. Przekształcenia początkowe
      • A.3.3. Operacje w cyklu SHA-2
      • A.3.4. Dodatkowe różnice między algorytmami SHA-2
    • A.4. SHA-3
      • A.4.1. SHA-3 ogólny opis
      • A.4.2. Funkcja rundy SHA-3
      • A.4.3. Funkcja mieszająca SHA-3
    • A.5. Inne funkcje skrótu
  • Dodatek B. Algorytmy szyfrujące
    • B.1. IDEA
      • B.1.1. Przekształcenia początkowe
      • B.1.2. Operacje pojedynczego cyklu IDEA
      • B.1.3. Generowanie podkluczy
      • B.1.4. Przekształcenia MA
      • B.1.5. Deszyfrowanie IDEA
    • B.2. DES
      • B.2.1. Permutacja początkowa (IP)
      • B.2.2. Podział tekstu na bloki
      • B.2.3. Permutacja rozszerzona
      • B.2.4. S-bloki
      • B.2.5. P-bloki
      • B.2.6. Permutacja końcowa
      • B.2.7. Deszyfrowanie DES
      • B.2.8. Modyfikacje DES
        • B.2.8.1. 2DES
        • B.2.8.2. 3DES
        • B.2.8.3. DES z S-blokami zależnymi od klucza
        • B.2.8.4. DESX
    • B.3. AES
      • B.3.1. Opis algorytmu
      • B.3.2. Generowanie kluczy
        • B.3.2.1. Rozszerzanie klucza
        • B.3.2.2. Selekcja podkluczy
      • B.3.3. Pojedyncza runda algorytmu
        • B.3.3.1. ByteSub
        • B.3.3.2. ShiftRow
        • B.3.3.3. MixColumn
        • B.3.3.4. AddRoundKey
      • B.3.4. Podsumowanie
    • B.4. Twofish
      • B.4.1. Opis algorytmu
      • B.4.2. Pojedyncza runda algorytmu
        • B.4.2.1. Funkcja g
        • B.4.2.2. Przekształcenie PHT
        • B.4.2.3. Dodanie kluczy szyfrowania
      • B.4.3. Podsumowanie
    • B.5. CAST5
      • B.5.1. Opis algorytmu
      • B.5.2. Rundy CAST5
    • B.6. Blowfish
      • B.6.1. Opis algorytmu
      • B.6.2. Funkcja algorytmu Blowfish
    • B.7. DSA
      • B.7.1. Podpisywanie wiadomości
      • B.7.2. Weryfikacja podpisu
      • B.7.3. Inne warianty DSA
        • B.7.3.1.Wariant pierwszy
        • B.7.3.2. Wariant drugi
    • B.8. RSA
      • B.8.1. Generowanie pary kluczy
      • B.8.2. Szyfrowanie i deszyfrowanie
    • B.9. Inne algorytmy szyfrujące
  • Dodatek C. Kryptografia w służbie historii
    • C.1. Święte rysunki
      • C.1.1. 1000 lat później
      • C.1.2. Szyfr faraonów
      • C.1.3. Ziarno przeznaczenia
      • C.1.4. Je tiens laffaire!
      • C.1.5. Tajemnica hieroglifów
    • C.2. Język mitów
      • C.2.1. Mit, który okazał się prawdziwy
      • C.2.2. Trojaczki Kober
      • C.2.3. Raport z półwiecza
    • C.3. Inne języki
  • Bibliografia
  • Tytuł: Podstawy kryptografii. Wydanie III
  • Autor: Marcin Karbowski
  • ISBN: 978-83-283-8729-4, 9788328387294
  • Data wydania: 2015-01-08
  • Format: Ebook
  • Identyfikator pozycji: pokr3v
  • Wydawca: Helion