Prawdziwy 鈍iat kryptografii
- Najlepsze praktyki dotycz帷e korzystania z
kryptografii
- Schematy i obja郾ienia algorytmów
kryptograficznych
Ksi捫ka pomaga w
zrozumieniu technik kryptograficznych stosowanych w popularnych
narz璠ziach, strukturach i protoko豉ch, dzi瘯i czemu Czytelnik 豉twiej
b璠zie móg� dokona� w豉軼iwych wyborów
zabezpiecze� dla swoich systemów i aplikacji. Publikacja nie
skupia si� na teorii, ale na aktualnych technikach kryptograficznych,
które s� potrzebne w codziennej pracy. Autor omawia elementy
konstrukcyjne kryptografii, takie jak funkcje skrótu i
wymiana kluczy, oraz pokazuje, jak ich u篡wa� w ramach
protoko�ów bezpiecze雟twa i aplikacji.
Ksi捫ka omawia te�
najnowocze郾iejsze rozwi您ania, takie jak kryptowaluty, uwierzytelniana
has貫m wymiana kluczy i kryptografia postkwantowa. Wszystkie techniki
s� zilustrowane diagramami, rzeczywistymi przypadkami u篡cia i
przyk豉dami kodu, dzi瘯i czemu mo積a 豉two zobaczy�, jak zastosowa� je
w praktyce.
To niezb璠ne 廝ód這 wiedzy dla wszystkich, którzy
chc� pracowa� jako specjali軼i ds. cyberbezpiecze雟twa i programi軼i
zajmuj帷y si� szyfrowaniem danych.
przedmowa xv
podzi瘯owania xix
o ksi捫ce xxi
o autorze xxvii
Cz窷� I
Prymitywy. Sk豉dniki kryptografii 1
1
Wprowadzenie 3
1.1. W kryptografii chodzi o zabezpieczenie protoko�ów 4
1.2. Kryptografia symetryczna. Czym jest szyfrowanie symetryczne? 5
1.3. Zasada Kerckhoffsa: tylko klucz pozostaje tajny 7
1.4. Kryptografia asymetryczna. Dwa klucze s� lepsze ni� jeden 10
O wymienianiu si� kluczami albo jak uzyska� dost瘼 do
wspólnego sekretu 11
■ Szyfrowanie asymetryczne, nie myli� z symetrycznym 14 ■ Podpisy
cyfrowe, zupe軟ie jak te tradycyjne 16
1.5. Kryptografia: klasyfikacje i abstrakcje 18
1.6. Kryptografia teoretyczna a prawdziwy 鈍iat kryptografii 20
1.7. Od teorii do praktyki. Ka盥y mo瞠 pój嗆 w豉sn� 軼ie磬�
21
1.8. S這wo ostrze瞠nia 26
2
Funkcje
skrótu (funkcje haszuj帷e) 28
2.1. Czym jest funkcja skrótu? 29
2.2. W豉軼iwo軼i zabezpiecze� funkcji skrótu 32
2.3. Uwarunkowania zabezpiecze� funkcji skrótu 34
2.4. Funkcje skrótu w praktyce 36
Zobowi您ania 36 ■ Integralno嗆 zasobów podrz璠nych 36 ■
BitTorrent 37 ■ Tor 37
2.5. Znormalizowane funkcje skrótu 38
Funkcja haszuj帷a SHA-2 39 ■ Funkcja haszuj帷a SHA-3 43 ■ SHAKE i
cSHAKE. Dwie funkcje o rozszerzalnym wyj軼iu (XOF) 47 ■ Jak unikn望
wieloznacznego haszowania za pomoc� TupleHash 48
2.6. Haszowanie hase� 50
3
Kody uwierzytelniania
wiadomo軼i 54
3.1. Ciasteczka bezstanowe – motywuj帷y przyk豉d dla MAC 55
3.2. Kod z przyk豉dem 58
3.3. W豉軼iwo軼i zabezpiecze� MAC 59
Fa連zerstwo znacznika uwierzytelniania 59 ■ D逝go嗆 znacznika
uwierzytelniania 60 ■ Ataki powtórzeniowe 60 ■ Weryfikacja
znaczników uwierzytelniania w sta造m czasie 62
3.4. MAC w prawdziwym 鈍iecie 64
Uwierzytelnianie wiadomo軼i 64 ■ Wyprowadzanie kluczy 64 ■ Integralno嗆
ciasteczek 65 ■ Tablice mieszaj帷e 65
3.5. Kody uwierzytelniania wiadomo軼i w praktyce 65
HMAC, czyli MAC oparty na haszu 65 ■ KMAC, czyli MAC oparty na cSHAKE 67
3.6. SHA-2 i ataki przed逝瞠nia d逝go軼i 67
4 Szyfrowanie uwierzytelnione 71
4.1. Czym jest szyfr? 72
4.2. Szyfr blokowy AES 74
Jaki poziom bezpiecze雟twa zapewnia AES? 74 ■ Interfejs AES 75 ■
Wewn皻rzna konstrukcja AES 76
4.3. Zaszyfrowany pingwin i tryb CBC 78
4.4. Na brak uwierzytelnienia – AES-CBC-HMAC 81
4.5. Konstrukcje typu „wszystko w jednym”.
Szyfrowanie uwierzytelnione 83
Czym jest szyfrowanie uwierzytelnione z powi您anymi danymi (AEAD)? 83
■ Algorytm AEAD o nazwie AES-GCM 85 ■ ChaCha20-Poly1305 90
4.6. Inne rodzaje szyfrowania symetrycznego 94
Opakowywanie klucza 94 ■ Szyfrowanie uwierzytelnione odporne na
niepoprawne u篡cie nonce 95 ■ Szyfrowanie dysku 95 ■ Szyfrowanie baz
danych 96
5
Wymiany klucza 98
5.1. Czym s� wymiany klucza? 99
5.2. Wymiana klucza Diffiego-Hellmana (DH) 102
Teoria grup 102 ■ Problem logarytmu dyskretnego. Fundament algorytmu
Diffiego-Hellmana 107 ■ Normy algorytmu Diffiego-Hellmana 109
5.3. Wymiana kluczy przy u篡ciu protoko逝 Diffiego-Hellmana w
przestrzeni krzywych eliptycznych 110
Czym jest krzywa eliptyczna? 111 ■ Jak dzia豉 algorytm
Diffiego-Hellmana oparty na krzywych eliptycznych? 114 ■ Normy dla
algorytmu Diffiego-Hellmana w przestrzeni krzywych eliptycznych 116
5.4. Atak przeciwko ma造m podgrupom i inne czynniki zwi您ane z
bezpiecze雟twem 118
6 Szyfrowanie asymetryczne i szyfrowanie hybrydowe 123
6.1. Czym jest szyfrowanie asymetryczne? 124
6.2. Szyfrowanie asymetryczne i szyfrowanie hybrydowe w praktyce 126
Wymiany klucza i kapsu趾owanie klucza 127 ■ Szyfrowanie hybrydowe 128
6.3. Szyfrowanie asymetryczne przy u篡ciu RSA: z貫 i mniej z貫 132
Podr璚znikowe RSA 132 ■ Dlaczego nie nale篡 u篡wa� RSA PKCS#1 v1.5 137
■ Szyfrowanie asymetryczne przy u篡ciu RSA-OAEP 139
6.4. Szyfrowanie hybrydowe przy u篡ciu ECIES 142
7
Podpisy i dowody z
wiedz� zerow� 145
7.1. Czym jest podpis? 146
Jak w praktyce weryfikowa� podpisy 147 ■ Najwa積iejszy przypadek u篡cia
podpisów, czyli uwierzytelnione wymiany klucza 148 ■
Rzeczywisty przypadek u篡cia.
Infrastruktura klucza publicznego 149
7.2. Dowody z wiedz� zerow� (ZKP). Pochodzenie podpisów 151
Protokó� identyfikacji Schnorra. Interaktywny
dowód z wiedz� zerow� 151
■ Podpisy jako nieinteraktywne dowody z wiedz� zerow� 154
7.3. Algorytmy podpisów, z których powinni鄉y
korzysta� (lub nie) 156
RSA PKCS#1 v1.5, czyli z豉 norma 157 ■ RSA-PSS. Lepsza norma 160
■ Algorytm podpisu elektronicznego oparty na krzywych eliptycznych 161
■ Algorytm podpisu cyfrowego oparty na krzywej Edwardsa 164
7.4. Subtelno軼i schematów podpisów 168
Ataki podstawieniowe na podpisy 168 ■ Deformowalno嗆 podpisu 169
8
Losowo嗆 i sekrety 172
8.1. Czym jest losowo嗆? 173
8.2. Powolna losowo嗆? Skorzystajmy z generatora liczb pseudolosowych
(PRNG) 175
8.3. Uzyskiwanie losowo軼i w praktyce 179
8.4. Generowanie losowo軼i i czynniki zwi您ane z bezpiecze雟twem 181
8.5. Publiczna losowo嗆 184
8.6. Wyprowadzanie kluczy za pomoc� HKDF 186
8.7. Zarz康zanie kluczami i sekretami 190
8.8. Decentralizacja zaufania za pomoc� kryptografii progowej 192
Cz窷� II
Protoko造,
czyli przepisy na kryptografi� 197
9
Bezpieczny transport
199
9.1. Bezpieczne protoko造 transportowe: SSL i TLS 199
Od SSL do TLS 200 ■ TLS w praktyce 201
9.2. Jak dzia豉 protokó� TLS? 203
Handshake TLS 204 ■ Jak TLS 1.3 szyfruje dane aplikacji 218
9.3. Aktualny stan szyfrowania w sieci web 219
9.4. Inne bezpieczne protoko造 transportowe 222
9.5. Framework protoko逝 Noise. Wspó販zesna alternatywa dla
TLS 222
Wiele odcieni fazy handshake 223 ■ Handshake przy u篡ciu Noise 224
10
Szyfrowanie
od ko鎍a do ko鎍a 227
10.1. Dlaczego szyfrowanie od ko鎍a do ko鎍a? 228
10.2. Niemo磧iwe do odnalezienia 廝ód這 zaufania 230
10.3. Pora磬a szyfrowanych e-maili 231
PGP czy GPG? I jak to w ogóle dzia豉? 232 ■ Skalowanie
zaufania pomi璠zy u篡tkownikami za pomoc� sieci zaufania 235 ■
Odkrywanie kluczy to prawdziwy problem 236 ■
Je郵i nie PGP, to co? 238
10.4. Bezpieczne przesy豉nie wiadomo軼i. Nowoczesne spojrzenie na
szyfrowanie od ko鎍a do ko鎍a w aplikacji Signal 239
Bardziej przyjazny dla u篡tkownika ni� WOT. Ufaj, ale weryfikuj 241 ■
X3DH. Handshake protoko逝 Signal 243 ■ Podwójna Zapadka.
Protokó� post-handshake Signala 247
10.5. Stan szyfrowania od ko鎍a do ko鎍a 252
11
Uwierzytelnianie
u篡tkownika 256
11.1. Uwierzytelnianie – kilka s�ów podsumowania
257
11.2. Uwierzytelnianie u篡tkownika, czyli jak pozby� si� hase� 259
Jedno has這, by rz康zi� wszystkimi. Pojedyncze logowanie (SSO) i
mened瞠ry
hase� 261 ■ Nie chcecie widzie� hase�? U篡jcie asymetrycznej wymiany
kluczy uwierzytelnianej has貫m 263 ■ Has豉 jednorazowe to tak naprawd�
nie has豉. Bezhas這wo嗆 przy u篡ciu kluczy symetrycznych 268 ■ Jak
zast徙i� has豉 kluczami asymetrycznymi 271
11.3. Uwierzytelnianie wspomagane przez u篡tkownika –
parowanie urz康ze� wykorzystuj帷e wsparcie cz這wieka 274
Klucze wst瘼nie wspó責zielone 276 ■ Symetryczne
uwierzytelnianie has貫m
wymiany klucza przy u篡ciu CPace 278 ■ Czy nasz� wymian� klucza
zaatakowa� po鈔ednik? Po prostu sprawd幟y krótki ci庵
uwierzytelniony (SAS) 279
12
Krypto jak w s這wie
„kryptowaluta”? 285
12.1. Wprowadzenie do algorytmów konsensusu tolerancyjnych
na bizantyjskie b喚dy 286
Problem odporno軼i. Protoko造 rozproszone przychodz� na ratunek 287 ■
Problem zaufania? Decentralizacja przychodzi z pomoc� 288 ■ Problem
skali. Sieci
bezpozwoleniowe i odporne na cenzur� 290
12.2. Jak dzia豉 bitcoin? 292
W jaki sposób bitcoin obs逝guje salda u篡tkownika i
transakcje 292 ■ Wydobywanie bitcoinów w cyfrowej z這tej
erze 294 ■ Jasny fork! Rozwi您ywanie konfliktów
wydobywczych 298 ■ Redukcja rozmiaru bloku za pomoc� drzew Merkle 301
12.3. Wycieczka po 鈍iecie kryptowalut 303
Zmienna warto嗆 303 ■ Latencja 303 ■ Rozmiar 豉鎍ucha bloków
304
■ Poufno嗆 304 ■ Wydajno嗆 energetyczna 304
12.4. DiemBFT. Tolerancyjny na bizantyjskie b喚dy protokó�
konsensusu 305
Bezpiecze雟two i 篡wotno嗆. Dwie w豉sno軼i protoko逝 konsensusu BFT 305
■ Runda w protokole DiemBFT 306 ■ Ile nieuczciwo軼i mo瞠 tolerowa�
protokó�? 307
■ Zasady g這sowania DiemBFT 308 ■ Kiedy transakcje uwa瘸 si� za
sfinalizowane? 309 ■ Intuicje stoj帷e za bezpiecze雟twem DiemBFT 310
13
Kryptografia sprz皻owa
314
13.1. Model napastnika we wspó販zesnej kryptografii 315
13.2. Niezaufane 鈔odowiska. Sprz璚ie, ratuj! 316
Kryptografia bia貫j skrzynki – z造 pomys� 317 ■ Siedz� w
naszych portfelach. Inteligentne karty i bezpieczne elementy 318 ■
Banki je uwielbiaj�. Sprz皻owe modu造
bezpiecze雟twa 320 ■ Modu造 zaufanej platformy (TPM). Przydatna
normalizacja elementów bezpiecznych 323 ■ Poufne obliczenia
z zaufanym 鈔odowiskiem
wykonawczym 327
13.3. Które rozwi您anie b璠zie dobre dla mnie? 328
13.4. Kryptografia odporna na wycieki, czyli jak z豉godzi� ataki kana貫m
bocznym w oprogramowaniu 330
Programowanie sta這czasowe 332 ■ Nie korzystaj z sekretu! Maskowanie 334
■ A co z atakami usterek? 335
14
Kryptografia
postkwantowa 338
14.1. Czym s� komputery kwantowe i dlaczego strasz�
kryptografów? 339
Mechanika kwantowa – studium rzeczy ma造ch 340 ■ Od narodzin
komputerów
kwantowych po supremacj� kwantow� 342 ■ Wp造w algorytmów
Grovera i Shora
na kryptografi� 343 ■ Kryptografia postkwantowa, czyli jak si� broni�
przed komputerami kwantowymi 345
14.2. Podpisy oparte na haszach. Nie potrzeba niczego poza funkcj�
skrótu 346
Podpisy jednorazowe (OTS) z podpisami Lamporta 346 ■ Mniejsze klucze i
jednorazowe podpisy Winternitza 348 ■ Podpisy wielorazowe z XMSS oraz
SPHINCS+ 349
14.3. Krótsze klucze i podpisy dzi瘯i kryptografii opartej
na kratach 353
Czym jest krata? 353 ■ Uczenie si� z b喚dami podstaw� kryptografii? 355
■ Kyber, czyli wymiana klucza oparta na kracie 356 ■ Dilithium
– schemat podpisu oparty na kracie 359
14.4. Czy powinni鄉y zacz望 panikowa�? 360
15
Czy to ju� wszystko?
Kryptografia nast瘼nej generacji 364
15.1. Im wi璚ej, tym lepiej. Bezpieczne obliczenia wielostronne 365
Przeci璚ie zbiorów prywatnych (PSI) 366 ■ MPC
ogólnego przeznaczenia 367
■ Stan MPC 370
15.2. W pe軟i homomorficzne szyfrowania i obietnica zaszyfrowanej
chmury 370
Przyk豉d szyfrowania homomorficznego z szyfrowaniem RSA 371 ■
Ró積e typy szyfrowania homomorficznego 371 ■ Bootstrapping,
klucz do w pe軟i homomorficznego szyfrowania 372 ■ Schemat FHE oparty
na problemie uczenia si� z b喚dami 374 ■ Gdzie si� z tego korzysta? 376
15.3. Dowody z wiedz� zerow� ogólnego przeznaczenia 377
15.3.1. Jak dzia豉j� schematy zk-SNARK 380 ■ Zobowi您ania homomorficzne
– ukrywamy cz窷ci dowodu 381 ■ Parowania bilinearne
– ulepszamy nasze zobowi您ania homomorficzne 381 ■ Sk康 si�
bierze zwi瞛這嗆? 382 ■ Od programów
do wielomianów 384 ■ Programy s� dla komputerów;
nam potrzebne s� uk豉dy arytmetyczne 383 ■ Uk豉dy arytmetyczne R1CS 384
■ Od R1CS do wielomianu 385 ■ Trzeba dwojga, aby okre郵i� warto嗆
wielomianu ukrytego w wyk豉dniku 386
16
Kiedy i gdzie
kryptografia zawodzi 389
16.1. Szukanie w豉軼iwego prymitywu kryptograficznego lub protoko逝 to
nudna praca 390
16.2. W jaki sposób korzystam z prymitywu kryptograficznego
lub protoko逝?
Uprzejme normy i formalna weryfikacja 392
16.3. Gdzie s� dobre biblioteki? 395
16.4. Niew豉軼iwe wykorzystanie kryptografii. Programi軼i to wrogowie
396
16.5. Robicie to 幢e. U篡teczne zabezpieczenia 397
16.6. Kryptografia nie jest wysp� 399
16.7. Nasze obowi您ki jako praktyków kryptografii. Dlaczego
nie powinni鄉y wdra瘸� w豉snej kryptografii 400
Dodatek Odpowiedzi do 獞icze� 404
Rozdzia� 2 404
Rozdzia� 3 405
Rozdzia� 6 405
Rozdzia� 7 406
Rozdzia� 8 406
Rozdzia� 9 406
Rozdzia� 10 407
Rozdzia� 11 407
440 stron, Format:
16.5x23.5cm, oprawa mi瘯ka
Ksi璕arnia nie dzia豉. Nie odpowiadamy na pytania i nie realizujemy zam闚ien. Do odwolania !.