Network Security: Private Communication in a Public World

Charlie Kaufman / Radia Perlman / Mike Speciner / Ray Perlner  
Total pages
September 2022

Product detail

Product Price CHF Available  
Network Security: Private Communication in a Public World
99.10 not defined


A thoroughly-revised edition of the landmark text on computer security

This guide uncovers the technology behind network security: its strengths, weaknesses, past, and future. It answers fundamental questions like:  How do you identify yourself and prevent others from impersonating you? How do you communicate with others? How do you maintain your privacy? How do you buy and sell things? As a tutorial, it explains sophisticated concepts in a friendly and intuitive manner. As a reference, it covers concepts and techniques rigorously and in depth.

The authors cover a wide spectrum of topics essential for securing web-based transactions, including public and secret key cryptography, hashes/message digests, signatures, authentication, blockchains, electronic money, secret sharing, and multiparty computation. They also address exciting emerging issues such as quantum computing, post-quantum algorithms, homomorphic encryption, and secure multiparty computation.

Wherever math beyond high school algebra is needed,  Network Security, 3rd Edition covers what students need to know, making it a self-contained solution suitable for undergraduate students, graduate students, and working engineers alike. To support learning and mastery, it also includes extensive homework problems, fully updated to reflect current concepts and technologies.


  • New edition of the classic text on computer security from legendary pioneers in network security
  • Thoroughly re-written to reflect contemporary issues in cybersecurity
  • Friendly, intuitive, rigorous, comprehensive, and practical
  • Includes detailed sections on cryptography, authentication, connection protocols, and network applications
  • Contains new coverage of quantum computing, post-quantum algorithms, electronic money, homomorphic encryption, and secure multiparty communication
  • Illuminates subtle issues missed by books focused solely on implementation details

New to this Edition

All chapters have been thoroughly updated to reflect today's technologies and threat environment. This edition also contains extensive new coverage of quantum computing, post-quantum algorithms, electronic money, homomorphic encryption, and secure multiparty communication.

Table of Contents

Chapter 1 Introduction

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.7.1 Patents

    1.7.2 Government Regulations

1.8 Some Network Basics

    1.8.1 Network Layers

    1.8.2 TCP and UDP Ports

    1.8.3 DNS (Domain Name System)

    1.8.4 HTTP and URLs

    1.8.5 Web Cookies

1.9 Names for Humans

1.10 Authentication and Authorization

    1.10.1 ACL (Access Control List)

    1.10.2 Central Administration/Capabilities

    1.10.3 Groups

    1.10.4 Cross-Organizational and Nested Groups

    1.10.5 Roles

1.11 Malware: Viruses, Worms, Trojan Horses

    1.11.1 Where Does Malware Come From?

    1.11.2 Virus Checkers

1.12 Security Gateway

    1.12.1 Firewall

    1.12.2 Application-Level Gateway/Proxy

    1.12.3 Secure Tunnels

    1.12.4 Why Firewalls Don’t Work

1.13 Denial-of-Service (DoS) Attacks

1.14 NAT (Network Address Translation)

    1.14.1 Summary

Chapter 2 Introduction to Cryptography

2.1 Introduction

    2.1.1 The Fundamental Tenet of Cryptography

    2.1.2 Keys

    2.1.3 Computational Difficulty

    2.1.4 To Publish or Not to Publish

    2.1.5 Earliest Encryption

    2.1.6 One-Time Pad (OTP)

2.2 Secret Key Cryptography

    2.2.1 Transmitting Over an Insecure Channel

    2.2.2 Secure Storage on Insecure Media

    2.2.3 Authentication

    2.2.4 Integrity Check

2.3 Public Key Cryptography

    2.3.1 Transmitting Over an Insecure Channel

    2.3.2 Secure Storage on Insecure Media

    2.3.3 Authentication

    2.3.4 Digital Signatures

2.4 Hash Algorithms

    2.4.1 Password Hashing

    2.4.2 Message Integrity

    2.4.3 Message Fingerprint

    2.4.4 Efficient Digital Signatures

2.5 Breaking an Encryption Scheme

    2.5.1 Ciphertext Only

    2.5.2 Known Plaintext

    2.5.3 Chosen Plaintext

    2.5.4 Chosen Ciphertext

    2.5.5 Side-Channel Attacks

2.6 Random Numbers

    2.6.1 Gathering Entropy

    2.6.2 Generating Random Seeds

    2.6.3 Calculating a Pseudorandom Stream from the Seed

    2.6.4 Periodic Reseeding

    2.6.5 Types of Random Numbers

    2.6.6 Noteworthy Mistakes

2.7 Numbers

    2.7.1 Finite Fields

    2.7.2 Exponentiation

    2.7.3 Avoiding a Side-Channel Attack

    2.7.4 Types of Elements used in Cryptography

    2.7.5 Euclidean Algorithm

    2.7.6 Chinese Remainder Theorem

2.8 Homework

Chapter 3 Secret Key Cryptography

3.1 Introduction

3.2 Generic Block Cipher Issues

    3.2.1 Blocksize, Keysize

    3.2.2 Completely General Mapping

    3.2.3 Looking Random

3.3 Constructing a Practical Block Cipher

    3.3.1 Per-Round Keys

    3.3.2 S-boxes and Bit Shuffles

    3.3.3 Feistel Ciphers

3.4 Choosing Constants

3.5 Data Encryption Standard (DES)

    3.5.1 DES Overview

    3.5.2 The Mangler Function

    3.5.3 Undesirable Symmetries

    3.5.4 What’s So Special About DES?

3.6 3DES (Multiple Encryption DES)

    3.6.1 How Many Encryptions? Encrypting Twice with the Same Key Encrypting Twice with Two Keys Triple Encryption with Only Two Keys

3.6.2 Why EDE Rather Than EEE?

3.7 Advanced Encryption Standard (AES)

    3.7.1 Origins of AES

    3.7.2 Broad Overview

    3.7.3 AES Overview

    3.7.4 Key Expansion

    3.7.5 Inverse Rounds

    3.7.6 Software Implementations of AES

3.8 RC4

3.9 Homework

Chapter 4 Modes of Operation

4.1 Introduction

4.2 Encrypting a Large Message

    4.2.1 ECB (Electronic Code Book)

    4.2.2 CBC (Cipher Block Chaining) Randomized ECB CBC CBC Threat—Modifying Ciphertext Blocks

    4.2.3 CTR (Counter Mode) Choosing IVs for CTR Mode

    4.2.4 XEX (XOR Encrypt XOR)

    4.2.5 XTS (XEX with Ciphertext Stealing)

4.3 Generating MACs

    4.3.1 CBC-MAC CBC Forgery Attack

    4.3.2 CMAC

    4.3.3 GMAC GHASH Transforming GHASH into GMAC

4.4 Ensuring Privacy and Integrity Together

    4.4.1 CCM (Counter with CBC-MAC)

    4.4.2 GCM (Galois/Counter Mode)

4.5 Performance Issues

4.6 Homework

Chapter 5 Cryptographic Hashes

5.1 Introduction

5.2 The Birthday Problem

5.3 A Brief History of Hash Functions

5.4 Nifty Things to Do with a Hash

    5.4.1 Digital Signatures

    5.4.2 Password Database

    5.4.3 Secure Shorthand of Larger Piece of Data

    5.4.4 Hash Chains

    5.4.5 Blockchain

    5.4.6 Puzzles

    5.4.7 Bit Commitment

    5.4.8 Hash Trees

    5.4.9 Authentication

    5.4.10 Computing a MAC with a Hash

    5.4.11 HMAC

    5.4.12 Encryption with a Secret and a Hash Algorithm

5.5 Creating a Hash Using a Block Cipher

5.6 Construction of Hash Functions

    5.6.1 Construction of MD4, MD5, SHA-1 and SHA-2

    5.6.2 Construction of SHA-3

5.7 Padding

    5.7.1 MD4, MD5, SHA-1, and SHA2-256 Message Padding

    5.7.2 SHA-3 Padding Rule

5.8 The Internal Encryption Algorithms

    5.8.1 SHA-1 Internal Encryption Algorithm

    5.8.2 SHA-2 Internal Encryption Algorithm

5.9 SHA-3 f Function (Also Known as KECCAK-f)

5.10 Homework

Chapter 6 First-Generation Public Key Algorithms

6.1 Introduction

6.2 Modular Arithmetic

    6.2.1 Modular Addition

    6.2.2 Modular Multiplication

    6.2.3 Modular Exponentiation

    6.2.4 Fermat’s Theorem and Euler’s Theorem

6.3 RSA

    6.3.1 RSA Algorithm

    6.3.2 Why Does RSA Work?

    6.3.3 Why Is RSA Secure?

    6.3.4 How Efficient Are the RSA Operations? Exponentiating with Big Numbers Generating RSA Keys Why a Non-Prime Has Multiple Square Roots of One Having a Small Constant e Optimizing RSA Private Key Operations

    6.3.5 Arcane RSA Threats Smooth Numbers The Cube Root Problem

    6.3.6 Public-Key Cryptography Standard (PKCS) Encryption The Million-Message Attack Signing

6.4 Diffie-Hellman

    6.4.1 MITM (Meddler-in-the-Middle) Attack

    6.4.2 Defenses Against MITM Attack

    6.4.3 Safe Primes and the Small-Subgroup Attack

    6.4.4 ElGamal Signatures

6.5 Digital Signature Algorithm (DSA)

    6.5.1 The DSA Algorithm

    6.5.2 Why Is This Secure?

    6.5.3 Per-Message Secret Number

6.6 How Secure Are RSA and Diffie-Hellman?

6.7 Elliptic Curve Cryptography (ECC)

    6.7.1 Elliptic Curve Diffie-Hellman (ECDH)

    6.7.2 Elliptic Curve Digital Signature Algorithm (ECDSA)

6.8 Homework

Chapter 7 Quantum Computing

7.1 What Is a Quantum Computer?

    7.1.1 A Preview of the Conclusions

    7.1.2 First, What Is a Classical Computer?

    7.1.3 Qubits and Superposition Example of a Qubit Multi-Qubit States and Entanglement

    7.1.4 States and Gates as Vectors and Matrices

    7.1.5 Becoming Superposed and Entangled

    7.1.6 Linearity No Cloning Theorem

    7.1.7 Operating on Entangled Qubits

    7.1.8 Unitarity

    7.1.9 Doing Irreversible Operations by Measurement

    7.1.10 Making Irreversible Classical Operations Reversible

    7.1.11 Universal Gate Sets

7.2 Grover’s Algorithm

    7.2.1 Geometric Description

    7.2.2 How to Negate the Amplitude of |k?

    7.2.3 How to Reflect All the Amplitudes Across the Mean

    7.2.4 Parallelizing Grover’s Algorithm

7.3 Shor’s Algorithm

    7.3.1 Why Exponentiation mod n Is a Periodic Function

    7.3.2 How Finding the Period of ax mod n Lets You Factor n

    7.3.3 Overview of Shor’s Algorithm

    7.3.4 Converting to the Frequency Graph—Introduction

    7.3.5 The Mechanics of Converting to the Frequency Graph

    7.3.6 Calculating the Period

    7.3.7 Quantum Fourier Transform

7.4 Quantum Key Distribution (QKD)

    7.4.1 Why It’s Sometimes Called Quantum Encryption

    7.4.2 Is Quantum Key Distribution Important?

7.5 How Hard Are Quantum Computers to Build?

7.6 Quantum Error Correction

7.7 Homework

Chapter 8 Post-Quantum Cryptography

8.1 Signature and/or Encryption Schemes

    8.1.1 NIST Criteria for Security Levels

    8.1.2 Authentication

    8.1.3 Defense Against Dishonest Ciphertext

8.2 Hash-based Signatures

    8.2.1 Simplest Scheme – Signing a Single Bit

    8.2.2 Signing an Arbitrary-sized Message

    8.2.3 Signing Lots of Messages

    8.2.4 Deterministic Tree Generation

    8.2.5 Short Hashes

    8.2.6 Hash Chains

    8.2.7 Standardized Schemes Stateless Schemes

8.3 Lattice-Based Cryptography

    8.3.1 A Lattice Problem

    8.3.2 Optimization: Matrices with Structure

    8.3.3 NTRU-Encryption Family of Lattice Encryption Schemes Bob Computes a (Public, Private) Key Pair How Bob Decrypts to Find m How Does this Relate to Lattices?

    8.3.4 Lattice-Based Signatures Basic Idea Insecure Scheme Fixing the Scheme

    8.3.5 Learning with Errors (LWE) LWE Optimizations LWE-based NIST Submissions

8.4 Code-based Schemes

    8.4.1 Non-cryptographic Error-correcting Codes Invention Step Codeword Creation Step Misfortune Step Diagnosis Step

    8.4.2 The Parity-Check Matrix

    8.4.3 Cryptographic Public Key Code-based Scheme Neiderreiter Optimization Generating a Public Key Pair Using Circulant Matrices

8.5 Multivariate Cryptography

    8.5.1 Solving Linear Equations

    8.5.2 Quadratic Polynomials

    8.5.3 Polynomial Systems

    8.5.4 Multivariate Signature Systems Multivariate Public Key Signatures

8.6 Homework

Chapter 9 Authentication of People

9.1 Password-based Authentication

    9.1.1 Challenge-Response Based on Password

    9.1.2 Verifying Passwords

9.2 Address-based Authentication

    9.2.1 Network Address Impersonation

9.3 Biometrics

9.4 Cryptographic Authentication Protocols

9.5 Who Is Being Authenticated?

9.6 Passwords as Cryptographic Keys

9.7 On-Line Password Guessing

9.8 Off-Line Password Guessing

9.9 Using the Same Password in Multiple Places

9.10 Requiring Frequent Password Changes

9.11 Tricking Users into Divulging Passwords

9.12 Lamport’s Hash

9.13 Password Managers

9.14 Web Cookies

9.15 Identity Providers (IDPs)

9.16 Authentication Tokens

    9.16.1 Disconnected Tokens

    9.16.2 Public Key Tokens

9.17 Strong Password Protocols

    9.17.1 Subtle Details

    9.17.2 Augmented Strong Password Protocols

    9.17.3 SRP (Secure Remote Password)

9.18 Credentials Download Protocols

9.19 Homework

Chapter 10 Trusted Intermediaries

10.1 Introduction

10.2 Functional Comparison

10.3 Kerberos

    10.3.1 KDC Introduces Alice to Bob

    10.3.2 Alice Contacts Bob

    10.3.3 Ticket Granting Ticket (TGT)

    10.3.4 Interrealm Authentication

    10.3.5 Making Password-Guessing Attacks Difficult

    10.3.6 Double TGT Protocol

    10.3.7 Authorization Information

    10.3.8 Delegation

10.4 PKI

    10.4.1 Some Terminology

    10.4.2 Names in Certificates

10.5 Website Gets a DNS Name and Certificate

10.6 PKI Trust Models

    10.6.1 Monopoly Model

    10.6.2 Monopoly plus Registration Authorities (RAs)

    10.6.3 Delegated CAs

    10.6.4 Oligarchy

    10.6.5 Anarchy Model

    10.6.6 Name Constraints

    10.6.7 Top-Down with Name Constraints

    10.6.8 Multiple CAs for Any Namespace Node

    10.6.9 Bottom-Up with Name Constraints Functionality of Up-Links Functionality of Cross-Links

    10.6.10 Name Constraints in PKIX Certificates

10.7 Building Certificate Chains

10.8 Revocation

    10.8.1 CRL (Certificate Revocation list

    10.8.2 Online Certificate Status Protocol (OCSP)

    10.8.3 Good-Lists vs. Bad-Lists

10.9 Other Information in a PKIX Certificate

10.10 Issues with Expired Certificates

10.11 DNSSEC (DNS Security Extensions)

10.12 Homework

Chapter 11 Communication Session Establishment

11.1 One-way Authentication of Alice

    11.1.1 Timestamps vs. Challenges

    11.1.2 One-Way Authentication of Alice using a Public Key

11.2 Mutual Authentication

    11.2.1 Reflection Attack

    11.2.2 Timestamps for Mutual Authentication

11.3 Integrity/Encryption for Data

    11.3.1 Session Key Based on Shared Secret Credentials

    11.3.2 Session Key Based on Public Key Credentials

    11.3.3 Session Key Based on One-Party Public Keys

11.4 Nonce Types

11.5 Intentional MITM

11.6 Detecting MITM

11.7 What Layer?

11.8 Perfect Forward Secrecy

11.9 Preventing Forged Source Addresses

    11.9.1 Allowing Bob to Be Stateless in TCP

    11.9.2 Allowing Bob to Be Stateless in IPsec

11.10 Endpoint Identifier Hiding

11.11 Live Partner Reassurance

11.12 Arranging for Parallel Computation

11.13 Session Resumption/Multiple Sessions

11.14 Plausible Deniability

11.15 Negotiating Crypto Parameters

    11.15.1 Suites vs. à la Carte

    11.15.2 Downgrade Attack

11.16 Homework

Chapter 12 IPsec

12.1 IPsec Security Associations

    12.1.1 Security Association Database

    12.1.2 Security Policy Database

    12.1.3 IKE-SAs and Child-SAs

12.2 IKE (Internet Key Exchange Protocol)

12.3 Creating a Child-SA

12.4 AH and ESP

    12.4.1 ESP Integrity Protection

    12.4.2 Why Protect the IP Header?

    12.4.3 Tunnel, Transport Mode

    12.4.4 IPv4 Header

    12.4.5 IPv6 Header

12.5 AH (Authentication Header)

12.6 ESP (Encapsulating Security Payload)

12.7 Comparison of Encodings

12.8 Homework

Chapter 13 SSL/TLS and SSH

13.1 Using TCP

13.2 StartTLS

13.3 Functions in the TLS Handshake

13.4 TLS 1.2 (and Earlier) Basic Protocol

13.5 TLS 1.3

13.6 Session Resumption

13.7 PKI as Deployed by TLS

13.8 SSH (Secure Shell)

    13.8.1 SSH Authentication

    13.8.2 SSH Port Forwarding

13.9 Homework

Chapter 14 Electronic Mail Security

14.1 Distribution Lists

14.2 Store and Forward

14.3 Disguising Binary as Text

14.4 HTML-Formatted Email

14.5 Attachments

14.6 Non-cryptographic Security Features

    14.6.1 Spam Defenses

14.7 Malicious Links in Email

14.8 Data Loss Prevention (DLP)

14.9 Knowing Bob’s Email Address

14.10 Self-Destruct, Do-Not-Forward,

14.11 Preventing Spoofing of From Field

14.12 In-Flight Encryption

14.13 End-to-End Signed and Encrypted Email

14.14 Encryption by a Server

14.15 Message Integrity

14.16 Non-Repudiation

14.17 Plausible Deniability

14.18 Message Flow Confidentiality

14.19 Anonymity

14.20 Homework

Chapter 15 Electronic Money

15.1 ECASH

15.2 Offline eCash

    15.2.1 Practical Attacks

15.3 Bitcoin

    15.3.1 Transactions

    15.3.2 Bitcoin Addresses

    15.3.3 Blockchain

    15.3.4 The Ledger

    15.3.5 Mining

    15.3.6 Blockchain Forks

    15.3.7 Why Is Bitcoin So Energy-Intensive?

    15.3.8 Integrity Checks: Proof of Work vs. Digital Signatures

    15.3.9 Concerns

15.4 Wallets for Electronic Currency

15.5 Homework

Chapter 16 Cryptographic Tricks

16.1 Secret Sharing

16.2 Blind Signature

16.3 Blind Decryption

16.4 Zero-Knowledge Proofs

    16.4.1 Graph Isomorphism ZKP

    16.4.2 Proving Knowledge of a Square Root

    16.4.3 Noninteractive ZKP

16.5 Group Signatures

    16.5.1 Trivial Group Signature Schemes Single Shared Key Group Membership Certificate Multiple Group Membership Certificates Blindly Signed Multiple Group Membership Certificates

    16.5.2 Ring Signatures

    16.5.3 DAA (Direct Anonymous Attestation)

    16.5.4 EPID (Enhanced Privacy ID)

16.6 Circuit Model

16.7 Secure Multiparty Computation (MPC)

16.8 Fully Homomorphic Encryption (FHE)

    16.8.1 Bootstrapping

    16.8.2 Easy-to-Understand Scheme

16.9 Homework

Chapter 17 Folklore

17.1 Misconceptions

17.2 Perfect Forward Secrecy

17.3 Change Encryption Keys Periodically

17.4 Don’t Encrypt without Integrity Protection

17.5 Multiplexing Flows over One Secure Session

    17.5.1 The Splicing Attack

    17.5.2 Service Classes

    17.5.3 Different Cryptographic Algorithms

17.6 Using Different Secret Keys

    17.6.1 For Initiator and Responder in Handshake

    17.6.2 For Encryption and Integrity

    17.6.3 In Each Direction of a Secure Session

17.7 Using Different Public Keys

    17.7.1 Use Different Keys for Different Purposes

    17.7.2 Different Keys for Signing and Encryption

17.8 Establishing Session Keys

    17.8.1 Have Both Sides Contribute to the Master Key

    17.8.2 Don’t Let One Side Determine the Key

17.9 Hash in a Constant When Hashing a Password

17.10 HMAC Rather than Simple Keyed Hash

17.11 Key Derivation

17.12 Use of Nonces in Protocols

17.13 Creating an Unpredictable Nonce

17.14 Compression

17.15 Minimal vs. Redundant Designs

17.16 Overestimate the Size of Key

17.17 Hardware Random Number Generators

17.18 Put Checksums at the End of Data

17.19 Forward Compatibility

    17.19.1 Options

    17.19.2 Version Numbers Version Number Field Must Not Move Negotiating Highest Version Supported Minor Version Number Field



M.1 Introduction

M.2 Some definitions and notation

M.3 Arithmetic

M.4 Abstract Algebra

M.5 Modular Arithmetic

    M.5.1 How Do Computers Do Arithmetic?

    M.5.2 Computing Inverses in Modular Arithmetic

        M.5.2.1 The Euclidean Algorithm

        M.5.2.2 The Chinese Remainder Theorem

    M.5.3 How Fast Can We Do Arithmetic?

M.6 Groups

M.7 Fields

    M.7.1 Polynomials

    M.7.2 Finite Fields

        M.7.2.1 What Sizes Can Finite Fields Be?

        M.7.2.2 Representing a Field

M.8 Mathematics of Rijndael

    M.8.1 A Rijndael Round

M.9 Elliptic Curve Cryptography

M.10 Rings

M.11 Linear Transformations

M.12 Matrix Arithmetic

    M.12.1 Permutations

    M.12.2 Matrix Inverses

        M.12.2.1 Gaussian Elimination

M.13 Determinants

    M.13.1 Properties of Determinants

        M.13.1.1 Adjugate of a Matrix

    M.13.2 Proof: Determinant of Product is Product of Determinants

M.14 Homework




9780136643609   TOC    8/2/2022



Charlie Kaufman is currently Security Architect for Dell Storage Systems. Previously, he was the Security Architect for Microsoft Azure and before that for Lotus Notes. He has contributed to a number of IETF standards efforts including IPsec, S/MIME, and DNSSEC and served as a member of the Internet Architecture Board. He served on the National Academy of Sciences expert panel that wrote the book Trust In Cyberspace.

Radia Perlman is currently a Fellow at Dell Technologies. She is known for her contributions to bridging (spanning tree algorithm), routing (link state routing), and security (distributed systems robust despite malicious participants). She’s the author of Interconnections: Bridges, Routers, Switches, and Internetworking Protocol. She’s been elected to the National Academy of Engineering, the National Inventors Hall of Fame, the Internet Hall of Fame, and awarded lifetime achievement awards from Usenix and ACM’s SIGCOMM. She has a PhD in computer science from MIT.

Mike Speciner is an MIT-trained technologist with expertise in mathematics, physics, and computer science. He currently serves as CTO and cofounder of The Singing Torah. His hobby is writing software for educational purposes in various common and obscure programming languages. 

Ray Perlner is a Mathematician in the Cryptographic Technology Group of the National Institute of Standards and Technology. He has over a dozen research papers focusing primarily on post-quantum cryptography. He has degrees in both physics and mathematics from MIT.