|
Introduction to Cryptography and Data Security |
|
|
1 | (28) |
|
Overview of Cryptology (and This Book) |
|
|
2 | (2) |
|
|
4 | (5) |
|
|
4 | (2) |
|
Simple Symmetric Encryption: The Substitution Cipher |
|
|
6 | (3) |
|
|
9 | (4) |
|
General Thoughts on Breaking Cryptosystems |
|
|
9 | (2) |
|
How Many Key Bits Are Enough? |
|
|
11 | (2) |
|
Modular Arithmetic and More Historical Ciphers |
|
|
13 | (7) |
|
|
13 | (3) |
|
|
16 | (2) |
|
Shift Cipher (or Caesar Cipher) |
|
|
18 | (1) |
|
|
19 | (1) |
|
Discussion and Further Reading |
|
|
20 | (2) |
|
|
22 | (2) |
|
|
24 | (5) |
|
|
29 | (26) |
|
|
30 | (4) |
|
Stream Ciphers vs. Block Ciphers |
|
|
30 | (1) |
|
Encryption and Decryption with Stream Ciphers |
|
|
31 | (3) |
|
Random Numbers and an Unbreakable Stream Cipher |
|
|
34 | (7) |
|
|
34 | (2) |
|
|
36 | (2) |
|
Towards Practical Stream Ciphers |
|
|
38 | (3) |
|
Shift Register-Based Stream Ciphers |
|
|
41 | (8) |
|
Linear Feedback Shift Registers (LFSR) |
|
|
41 | (4) |
|
Known-Plaintext Attack Against Single LFSRs |
|
|
45 | (1) |
|
|
46 | (3) |
|
Discussion and Further Reading |
|
|
49 | (1) |
|
|
50 | (2) |
|
|
52 | (3) |
|
The Data Encryption Standard (DES) and Alternatives |
|
|
55 | (32) |
|
|
56 | (2) |
|
|
57 | (1) |
|
Overview of the DES Algorithm |
|
|
58 | (3) |
|
Internal Structure of DES |
|
|
61 | (8) |
|
Initial and Final Permutation |
|
|
61 | (1) |
|
|
62 | (5) |
|
|
67 | (2) |
|
|
69 | (3) |
|
|
72 | (3) |
|
|
73 | (2) |
|
|
75 | (1) |
|
Implementation in Software and Hardware |
|
|
75 | (2) |
|
|
77 | (4) |
|
The Advanced Encryption Standard (AES) and the AES Finalist Ciphers |
|
|
77 | (1) |
|
Triple DES (3DES) and DESX |
|
|
78 | (1) |
|
Lightweight Cipher Present |
|
|
78 | (3) |
|
Discussion and Further Reading |
|
|
81 | (1) |
|
|
82 | (1) |
|
|
83 | (4) |
|
The Advanced Encryption Standard (AES) |
|
|
87 | (36) |
|
|
88 | (1) |
|
Overview of the AES Algorithm |
|
|
89 | (1) |
|
Some Mathematics: A Brief Introduction to Galois Fields |
|
|
90 | (9) |
|
Existence of Finite Fields |
|
|
90 | (3) |
|
|
93 | (1) |
|
|
94 | (1) |
|
Addition and Subtraction in GF (2m) |
|
|
95 | (1) |
|
Multiplication in GF (2m) |
|
|
96 | (2) |
|
|
98 | (1) |
|
Internal Structure of AES |
|
|
99 | (11) |
|
|
101 | (2) |
|
|
103 | (3) |
|
|
106 | (1) |
|
|
106 | (4) |
|
|
110 | (5) |
|
Implementation in Software and Hardware |
|
|
115 | (1) |
|
Discussion and Further Reading |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
118 | (5) |
|
|
123 | (26) |
|
Encryption with Block Ciphers: Modes of Operation |
|
|
124 | (12) |
|
Electronic Codebook Mode (ECB) |
|
|
124 | (4) |
|
Cipher Block Chaining Mode (CBC) |
|
|
128 | (2) |
|
Output Feedback Mode (OFB) |
|
|
130 | (1) |
|
Cipher Feedback Mode (CFB) |
|
|
131 | (1) |
|
|
132 | (2) |
|
Galois Counter Mode (GCM) |
|
|
134 | (2) |
|
Exhaustive Key Search Revisited |
|
|
136 | (1) |
|
Increasing the Security of Block Ciphers |
|
|
137 | (6) |
|
Double Encryption and Meet-in-the-Middle Attack |
|
|
138 | (2) |
|
|
140 | (1) |
|
|
141 | (2) |
|
Discussion and Further Reading |
|
|
143 | (1) |
|
|
144 | (1) |
|
|
145 | (4) |
|
Introduction to Public-Key Cryptography |
|
|
149 | (24) |
|
Symmetric vs. Asymmetric Cryptography |
|
|
150 | (3) |
|
Practical Aspects of Public-Key Cryptography |
|
|
153 | (4) |
|
|
154 | (1) |
|
The Remaining Problem: Authenticity of Public Keys |
|
|
154 | (1) |
|
Important Public-Key Algorithms |
|
|
155 | (1) |
|
Key Lengths and Security Levels |
|
|
156 | (1) |
|
Essential Number Theory for Public-Key Algorithms |
|
|
157 | (11) |
|
|
157 | (3) |
|
Extended Euclidean Algorithm |
|
|
160 | (4) |
|
|
164 | (2) |
|
Fermat's Little Theorem and Euler's Theorem |
|
|
166 | (2) |
|
Discussion and Further Reading |
|
|
168 | (1) |
|
|
169 | (1) |
|
|
170 | (3) |
|
|
173 | (32) |
|
|
174 | (1) |
|
Encryption and Decryption |
|
|
174 | (1) |
|
Key Generation and Proof of Correctness |
|
|
175 | (4) |
|
Encryption and Decryption: Fast Exponentiation |
|
|
179 | (4) |
|
Speed-up Techniques for RSA |
|
|
183 | (4) |
|
Fast Encryption with Short Public Exponents |
|
|
183 | (1) |
|
Fast Decryption with the Chinese Remainder Theorem |
|
|
184 | (3) |
|
|
187 | (5) |
|
|
187 | (1) |
|
|
188 | (4) |
|
|
192 | (2) |
|
|
194 | (3) |
|
Implementation in Software and Hardware |
|
|
197 | (1) |
|
Discussion and Further Reading |
|
|
198 | (1) |
|
|
199 | (1) |
|
|
200 | (5) |
|
Public-Key Cryptosystems Based on the Discrete Logarithm Problem |
|
|
205 | (34) |
|
Diffie-Hellman Key Exchange |
|
|
206 | (2) |
|
|
208 | (8) |
|
|
208 | (2) |
|
|
210 | (4) |
|
|
214 | (2) |
|
The Discrete Logarithm Problem |
|
|
216 | (9) |
|
The Discrete Logarithm Problem in Prime Fields |
|
|
216 | (2) |
|
The Generalized Discrete Logarithm Problem |
|
|
218 | (1) |
|
Attacks Against the Discrete Logarithm Problem |
|
|
219 | (6) |
|
Security of the Diffie-Hellman Key Exchange |
|
|
225 | (1) |
|
The Elgamal Encryption Scheme |
|
|
226 | (6) |
|
From Diffie-Hellman Key Exhange to Elgamal Encryption |
|
|
226 | (1) |
|
|
227 | (2) |
|
|
229 | (1) |
|
|
230 | (2) |
|
Discussion and Further Reading |
|
|
232 | (1) |
|
|
233 | (1) |
|
|
234 | (5) |
|
Elliptic Curve Cryptosystems |
|
|
239 | (20) |
|
How to Compute with Elliptic Curves |
|
|
239 | (6) |
|
Definition of Elliptic Curves |
|
|
240 | (2) |
|
Group Operations on Elliptic Curves |
|
|
242 | (3) |
|
Building a Discrete Logarithm Problem with Elliptic Curves |
|
|
245 | (4) |
|
Diffie-Hellman Key Exchange with Elliptic Curves |
|
|
249 | (2) |
|
|
251 | (1) |
|
Implementation in Software and Hardware |
|
|
252 | (1) |
|
Discussion and Further Reading |
|
|
253 | (2) |
|
|
255 | (1) |
|
|
256 | (3) |
|
|
259 | (34) |
|
|
260 | (4) |
|
Odd Colors for Cars, or: Why Symmetric Cryptography Is Not Sufficient |
|
|
260 | (1) |
|
Principles of Digital Signatures |
|
|
261 | (2) |
|
|
263 | (1) |
|
|
264 | (6) |
|
Schoolbook RSA Digital Signature |
|
|
265 | (2) |
|
|
267 | (1) |
|
|
267 | (3) |
|
The Elgamal Digital Signature Scheme |
|
|
270 | (7) |
|
Schoolbook Elgamal Digital Signature |
|
|
270 | (3) |
|
|
273 | (1) |
|
|
274 | (3) |
|
The Digital Signature Algorithm (DSA) |
|
|
277 | (5) |
|
|
277 | (3) |
|
|
280 | (1) |
|
|
281 | (1) |
|
The Elliptic Curve Digital Signature Algorithm (ECDSA) |
|
|
282 | (5) |
|
|
282 | (3) |
|
|
285 | (1) |
|
|
286 | (1) |
|
Discussion and Further Reading |
|
|
287 | (1) |
|
|
288 | (1) |
|
|
289 | (4) |
|
|
293 | (26) |
|
Motivation: Signing Long Messages |
|
|
294 | (2) |
|
Security Requirements of Hash Functions |
|
|
296 | (7) |
|
Preimage Resistance or One-Wayness |
|
|
297 | (1) |
|
Second Preimage Resistance or Weak Collision Resistance |
|
|
297 | (2) |
|
Collision Resistance and the Birthday Attack |
|
|
299 | (4) |
|
Overview of Hash Algorithms |
|
|
303 | (4) |
|
Dedicated Hash Functions: The MD4 Family |
|
|
304 | (1) |
|
Hash Functions from Block Ciphers |
|
|
305 | (2) |
|
The Secure Hash Algorithm SHA-1 |
|
|
307 | (5) |
|
|
308 | (1) |
|
|
309 | (3) |
|
|
312 | (1) |
|
Discussion and Further Reading |
|
|
312 | (1) |
|
|
313 | (2) |
|
|
315 | (4) |
|
Message Authentication Codes (MACs) |
|
|
319 | (12) |
|
Principles of Message Authentication Codes |
|
|
320 | (1) |
|
MACs from Hash Functions: HMAC |
|
|
321 | (4) |
|
MACs from Block Ciphers: CBC-MAC |
|
|
325 | (2) |
|
Galois Counter Message Authentication Code (GMAC) |
|
|
327 | (1) |
|
Discussion and Further Reading |
|
|
327 | (1) |
|
|
328 | (1) |
|
|
329 | (2) |
|
|
331 | (28) |
|
|
332 | (4) |
|
|
332 | (1) |
|
Key Freshness and Key Derivation |
|
|
332 | (2) |
|
The n2 Key Distribution Problem |
|
|
334 | (2) |
|
Key Establishment Using Symmetric-Key Techniques |
|
|
336 | (6) |
|
Key Establishment with a Key Distribution Center |
|
|
336 | (3) |
|
|
339 | (2) |
|
Remaining Problems with Symmetric-Key Distribution |
|
|
341 | (1) |
|
Key Establishment Using Asymmetric Techniques |
|
|
342 | (9) |
|
|
342 | (2) |
|
|
344 | (3) |
|
Public-Key Infrastructures (PKI) and CAs |
|
|
347 | (4) |
|
Discussion and Further Reading |
|
|
351 | (1) |
|
|
352 | (1) |
|
|
353 | (6) |
References |
|
359 | (8) |
Index |
|
367 | |