Preface |
|
xi | |
Acknowledgments |
|
xiii | |
|
1 Introduction to Ciphers and Substitution |
|
|
1 | (28) |
|
1.1 Alice and Bob and Carl and Julius: Terminology and Caesar Cipher |
|
|
1 | (3) |
|
1.2 The Key to the Matter: Generalizing the Caesar Cipher |
|
|
4 | (2) |
|
1.3 Multiplicative Ciphers |
|
|
6 | (9) |
|
|
15 | (3) |
|
1.5 Attack at Dawn: Cryptanalysis of Sample Substitution Ciphers |
|
|
18 | (2) |
|
1.6 Just to Get Up That Hill: Polygraphic Substitution Ciphers |
|
|
20 | (5) |
|
1.7 Known-Plaintext Attacks |
|
|
25 | (1) |
|
|
26 | (3) |
|
2 Polyalphabetic Substitution Ciphers |
|
|
29 | (46) |
|
|
29 | (2) |
|
2.2 Coincidence or Conspiracy? |
|
|
31 | (5) |
|
|
36 | (3) |
|
2.4 It's Hip to Be Square: Tabula Recta or Vigenere Square Ciphers |
|
|
39 | (4) |
|
2.5 How Many Is Many? Determining the Number of Alphabets |
|
|
43 | (9) |
|
2.6 Superman Is Staying for Dinner: Superimposition and Reduction |
|
|
52 | (3) |
|
2.7 Products of Polyalphabetic Ciphers |
|
|
55 | (3) |
|
2.8 Pinwheel Machines and Rotor Machines |
|
|
58 | (15) |
|
|
73 | (2) |
|
|
75 | (34) |
|
3.1 This Is Sparta! The Scytale |
|
|
75 | (3) |
|
3.2 Rails and Routes: Geometric Transposition Ciphers |
|
|
78 | (3) |
|
3.3 Permutations and Permutation Ciphers |
|
|
81 | (5) |
|
|
86 | (5) |
|
3.5 Keyed Columnar Transposition Ciphers |
|
|
91 | (6) |
|
Sidebar 3.1 Functional Nihilism |
|
|
94 | (3) |
|
3.6 Determining the Width of the Rectangle |
|
|
97 | (4) |
|
|
101 | (5) |
|
Sidebar 3.2 But When You Talk about Disruption |
|
|
104 | (2) |
|
|
106 | (3) |
|
|
109 | (36) |
|
4.1 Bringing Home the Bacon: Polyliteral Ciphers and Binary Numerals |
|
|
109 | (6) |
|
4.2 Fractionating Ciphers |
|
|
115 | (4) |
|
4.3 How to Design a Digital Cipher: SP-Networks and Feistel Networks |
|
|
119 | (11) |
|
Sidebar 4.1 Digitizing Plaintext |
|
|
125 | (5) |
|
4.4 The Data Encryption Standard |
|
|
130 | (5) |
|
4.5 The Advanced Encryption Standard |
|
|
135 | (8) |
|
|
143 | (2) |
|
|
145 | (37) |
|
|
145 | (8) |
|
Sidebar 5.1 We Have All Been Here Before |
|
|
150 | (3) |
|
|
153 | (4) |
|
5.3 Baby You Can Drive My Car: Autokey Ciphers |
|
|
157 | (10) |
|
5.4 Linear Feedback Shift Registers |
|
|
167 | (7) |
|
5.5 Adding Nonlinearity to LFSRs |
|
|
174 | (4) |
|
|
178 | (4) |
|
6 Ciphers Involving Exponentiation |
|
|
182 | (19) |
|
6.1 Encrypting Using Exponentiation |
|
|
182 | (1) |
|
6.2 Fermat's Little Theorem |
|
|
183 | (3) |
|
6.3 Decrypting Using Exponentiation |
|
|
186 | (2) |
|
6.4 The Discrete Logarithm Problem |
|
|
188 | (2) |
|
|
190 | (2) |
|
6.6 The Euler Phi Function |
|
|
192 | (3) |
|
6.7 Decryption with Composite Moduli |
|
|
195 | (4) |
|
Sidebar 6.1 Fee-fi-fo-fum |
|
|
197 | (2) |
|
|
199 | (2) |
|
|
201 | (40) |
|
7.1 Right out in Public: The Idea of Public-Key Ciphers |
|
|
201 | (6) |
|
7.2 Diffie-Hellman Key Agreement |
|
|
207 | (6) |
|
7.3 Asymmetric-Key Cryptography |
|
|
213 | (3) |
|
|
216 | (6) |
|
7.5 Priming the Pump: Primality Testing |
|
|
222 | (4) |
|
7.6 Why is RSA a (Good) Public-Key System? |
|
|
226 | (3) |
|
|
229 | (4) |
|
|
233 | (8) |
|
Appendix A The Secret History of Public-Key Cryptography |
|
|
235 | (6) |
|
8 Other Public-Key Systems |
|
|
241 | (35) |
|
8.1 The Three-Pass Protocol |
|
|
241 | (6) |
|
|
247 | (4) |
|
8.3 Elliptic Curve Cryptography |
|
|
251 | (14) |
|
|
265 | (6) |
|
|
271 | (5) |
|
9 The Future of Cryptography |
|
|
276 | (27) |
|
|
276 | (5) |
|
9.2 Postquantum Cryptography |
|
|
281 | (11) |
|
|
292 | (9) |
|
|
301 | (2) |
List of Symbols |
|
303 | (2) |
Notes |
|
305 | (40) |
Suggestions for Further Reading |
|
345 | (4) |
Bibliography |
|
349 | (18) |
Index |
|
367 | |