- 1.1 Opinions, Products
- 1.2 Roadmap to the Book
- 1.3 Terminology
- 1.4 Notation
- 1.5 Cryptographically Protected Sessions
- 1.6 Active and Passive Attacks
- 1.7 Legal Issues
- 1.8 Some Network Basics
- 1.9 Names for Humans
- 1.10 Authentication and Authorization
- 1.11 Malware: Viruses, Worms, Trojan Horses
- 1.12 Security Gateway
- 1.13 Denial-of-Service (DoS) Attacks
- 1.14 NAT (Network Address Translation)
1.2 Roadmap to the Book
We aim to make this book comprehensible to engineers, giving intuition about designs. But readability doesn’t mean lack of technical depth. We try to go beyond the information one might find in specifications to give insight into the designs. Given that specifications are easily available on the web today, we do not give exact packet formats.
This book should be usable as a textbook at either the undergraduate or graduate level. Most of the chapters have homework problems at the end. And to make life easier for professors who want to use the book, we will provide slides and an answer manual (to the professors using the book) for many of the chapters. Even if you are not taking a class, you might want to do the homework problems. This book should be understandable to anyone with technical curiosity, a sense of humor*, and a good night’s sleep in the recent past. The chapters are:
Chapter 1 Introduction: This gives an overview of the chapters and some network basics.
Chapter 2 Introduction to Cryptography: This explains the cryptographic principles which will be covered in more detail in later chapters.
Chapter 3 Secret Key Cryptography: This chapter explains the uses of secret key cryptographic algorithms and describes how cryptographers create these algorithm.
Chapter 4 Modes of Operation: Since most secret key algorithms encrypt a fairly small (e.g., 128 bits) block, this chapter explains various algorithms to efficiently and securely encrypt arbitrarily large amounts of data.
Chapter 5 Cryptographic Hashes: This chapter explains what hashes are used for and intuition into the methods by which cryptographers create secure and efficient hashes.
Chapter 6 First-Generation Public Key Algorithms: This chapter describes the designs of the current widely deployed public key algorithms. Unfortunately, these would be insecure if the world were able to create a sufficiently large quantum computer. So the world will migrate to different public key algorithms that we’ll describe in Chapter 8 Post-Quantum Cryptography.
Chapter 7 Quantum Computing: This chapter gives an intuitive understanding of how a quantum computer differs from a classical computer, as well as explaining the intuition behind the two major cryptography-relevant quantum algorithms (Grover’s and Shor’s).
Chapter 8 Post-Quantum Cryptography: This describes the types of math problems that would remain difficult to solve even if there were quantum computers, how to turn them into public key algorithms, and various optimizations that can make them efficient.
Chapter 9 Authentication of People: This chapter describes the challenges involved in authenticating humans, and various types of technology that are or could be deployed.
Chapter 10 Trusted Intermediaries: This chapter describes technologies for distributing cryptographic keys. It also talks about trust model issues in today’s deployed designs.
Chapter 11 Communication Session Establishment: This chapter describes conceptual issues in doing mutual authentication handshakes and establishing secure sessions.
Chapter 12 IPsec: This chapter goes into detail about the design of IPsec.
Chapter 13 SSL/TLS and SSH: This chapter goes into detail about the design of SSL/TLS and SSH.
Chapter 14 Electronic Mail Security: This chapter describes various issues and solutions involved in electronic mail.
Chapter 15 Electronic Money: This chapter describes various goals of electronic money and various technologies to address them. It covers cryptocurrencies and anonymous cash.
Chapter 16 Cryptographic Tricks: This describes various exotic technologies such as secure multiparty computation and homomorphic encryption, as well as widely used technologies such as secret sharing.
Chapter 17 Folklore: This chapter gives a summary of some of the design lessons discussed in the rest of the book and also describes some common misconceptions.
Glossary: We define many of the terms we use in the book.
Math: This provides more in-depth coverage of the mathematics used in the rest of the book. The appendix is written solely by Mike Speciner. It’s not essential for appreciating the rest of the book. It’s a sample of the content in Mike’s github repositories https://github.com/ms0/.