Network Security
Private Communication in a Public World
Inbunden, Engelska, 2022
Av Charlie Kaufman, Radia Perlman, Mike Speciner, Ray Perlner
739 kr
The classic guide to cryptography and network security – now fully updated!
“Alice and Bob are back!”
Widely regarded as the most comprehensive yet comprehensible guide to network security and cryptography, the previous editions of Network Security received critical acclaim for lucid and witty explanations of the inner workings of cryptography and network security protocols. In this edition, the authors have significantly updated and revised the previous content, and added new topics that have become important.
This book explains sophisticated concepts in a friendly and intuitive manner. For protocol standards, it explains the various constraints and committee decisions that led to the current designs. For cryptographic algorithms, it explains the intuition behind the designs, as well as the types of attacks the algorithms are designed to avoid. It explains implementation techniques that can cause vulnerabilities even if the cryptography itself is sound. Homework problems deepen your understanding of concepts and technologies, and an updated glossary demystifies the field's jargon. Network Security, Third Edition will appeal to a wide range of professionals, from those who design and evaluate security systems to system administrators and programmers who want a better understanding of this important field. It can also be used as a textbook at the graduate or advanced undergraduate level.
Coverage includes
- Network security protocol and cryptography basics
- Design considerations and techniques for secret key and hash algorithms (AES, DES, SHA-1, SHA-2, SHA-3)
- First-generation public key algorithms (RSA, Diffie-Hellman, ECC)
- How quantum computers work, and why they threaten the first-generation public key algorithms
- Quantum-safe public key algorithms: how they are constructed, and optimizations to make them practical
- Multi-factor authentication of people
- Real-time communication (SSL/TLS, SSH, IPsec)
- New applications (electronic money, blockchains)
- New cryptographic techniques (homomorphic encryption, secure multiparty computation)
Produktinformation
- Utgivningsdatum2022-10-24
- Mått184 x 238 x 34 mm
- Vikt1 140 g
- FormatInbunden
- SpråkEngelska
- Antal sidor544
- Upplaga3
- FörlagPearson Education
- ISBN9780136643609
Tillhör följande kategorier
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.
- Chapter 1 Introduction1.1 Opinions, Products1.2 Roadmap to the Book1.3 Terminology1.4 Notation1.5 Cryptographically Protected Sessions1.6 Active and Passive Attacks1.7 Legal Issues1.7.1 Patents1.7.2 Government Regulations1.8 Some Network Basics1.8.1 Network Layers1.8.2 TCP and UDP Ports1.8.3 DNS (Domain Name System)1.8.4 HTTP and URLs1.8.5 Web Cookies1.9 Names for Humans1.10 Authentication and Authorization1.10.1 ACL (Access Control List)1.10.2 Central Administration/Capabilities1.10.3 Groups1.10.4 Cross-Organizational and Nested Groups1.10.5 Roles1.11 Malware: Viruses, Worms, Trojan Horses1.11.1 Where Does Malware Come From?1.11.2 Virus Checkers1.12 Security Gateway1.12.1 Firewall1.12.2 Application-Level Gateway/Proxy1.12.3 Secure Tunnels1.12.4 Why Firewalls Don't Work1.13 Denial-of-Service (DoS) Attacks1.14 NAT (Network Address Translation)1.14.1 SummaryChapter 2 Introduction to Cryptography2.1 Introduction2.1.1 The Fundamental Tenet of Cryptography2.1.2 Keys2.1.3 Computational Difficulty2.1.4 To Publish or Not to Publish2.1.5 Earliest Encryption2.1.6 One-Time Pad (OTP)2.2 Secret Key Cryptography2.2.1 Transmitting Over an Insecure Channel2.2.2 Secure Storage on Insecure Media2.2.3 Authentication2.2.4 Integrity Check2.3 Public Key Cryptography2.3.1 Transmitting Over an Insecure Channel2.3.2 Secure Storage on Insecure Media2.3.3 Authentication2.3.4 Digital Signatures2.4 Hash Algorithms2.4.1 Password Hashing2.4.2 Message Integrity2.4.3 Message Fingerprint2.4.4 Efficient Digital Signatures2.5 Breaking an Encryption Scheme2.5.1 Ciphertext Only2.5.2 Known Plaintext2.5.3 Chosen Plaintext2.5.4 Chosen Ciphertext2.5.5 Side-Channel Attacks2.6 Random Numbers2.6.1 Gathering Entropy2.6.2 Generating Random Seeds2.6.3 Calculating a Pseudorandom Stream from the Seed2.6.4 Periodic Reseeding2.6.5 Types of Random Numbers2.6.6 Noteworthy Mistakes2.7 Numbers2.7.1 Finite Fields2.7.2 Exponentiation2.7.3 Avoiding a Side-Channel Attack2.7.4 Types of Elements used in Cryptography2.7.5 Euclidean Algorithm2.7.6 Chinese Remainder Theorem2.8 HomeworkChapter 3 Secret Key Cryptography3.1 Introduction3.2 Generic Block Cipher Issues3.2.1 Blocksize, Keysize3.2.2 Completely General Mapping3.2.3 Looking Random3.3 Constructing a Practical Block Cipher3.3.1 Per-Round Keys3.3.2 S-boxes and Bit Shuffles3.3.3 Feistel Ciphers3.4 Choosing Constants3.5 Data Encryption Standard (DES)3.5.1 DES Overview3.5.2 The Mangler Function3.5.3 Undesirable Symmetries3.5.4 What's So Special About DES?3.6 3DES (Multiple Encryption DES)3.6.1 How Many Encryptions?3.6.1.1 Encrypting Twice with the Same Key3.6.1.2 Encrypting Twice with Two Keys3.6.1.3 Triple Encryption with Only Two Keys3.6.2 Why EDE Rather Than EEE?3.7 Advanced Encryption Standard (AES)3.7.1 Origins of AES3.7.2 Broad Overview3.7.3 AES Overview3.7.4 Key Expansion3.7.5 Inverse Rounds3.7.6 Software Implementations of AES3.8 RC43.9 HomeworkChapter 4 Modes of Operation4.1 Introduction4.2 Encrypting a Large Message4.2.1 ECB (Electronic Code Book)4.2.2 CBC (Cipher Block Chaining)4.2.2.1 Randomized ECB4.2.2.2 CBC4.2.2.3 CBC Threat—Modifying Ciphertext Blocks4.2.3 CTR (Counter Mode)4.2.3.1 Choosing IVs for CTR Mode4.2.4 XEX (XOR Encrypt XOR)4.2.5 XTS (XEX with Ciphertext Stealing)4.3 Generating MACs4.3.1 CBC-MAC4.3.1.1 CBC Forgery Attack4.3.2 CMAC4.3.3 GMAC4.3.3.1 GHASH4.3.3.2 Transforming GHASH into GMAC4.4 Ensuring Privacy and Integrity Together4.4.1 CCM (Counter with CBC-MAC)4.4.2 GCM (Galois/Counter Mode)4.5 Performance Issues4.6 HomeworkChapter 5 Cryptographic Hashes5.1 Introduction5.2 The Birthday Problem5.3 A Brief History of Hash Functions5.4 Nifty Things to Do with a Hash5.4.1 Digital Signatures5.4.2 Password Database5.4.3 Secure Shorthand of Larger Piece of Data5.4.4 Hash Chains5.4.5 Blockchain5.4.6 Puzzles5.4.7 Bit Commitment5.4.8 Hash Trees5.4.9 Authentication5.4.10 Computing a MAC with a Hash5.4.11 HMAC5.4.12 Encryption with a Secret and a Hash Algorithm5.5 Creating a Hash Using a Block Cipher5.6 Construction of Hash Functions5.6.1 Construction of MD4, MD5, SHA-1 and SHA-25.6.2 Construction of SHA-35.7 Padding5.7.1 MD4, MD5, SHA-1, and SHA2-256 Message Padding5.7.2 SHA-3 Padding Rule5.8 The Internal Encryption Algorithms5.8.1 SHA-1 Internal Encryption Algorithm5.8.2 SHA-2 Internal Encryption Algorithm5.9 SHA-3 f Function (Also Known as KECCAK-f)5.10 HomeworkChapter 6 First-Generation Public Key Algorithms6.1 Introduction6.2 Modular Arithmetic6.2.1 Modular Addition6.2.2 Modular Multiplication6.2.3 Modular Exponentiation6.2.4 Fermat's Theorem and Euler's Theorem6.3 RSA6.3.1 RSA Algorithm6.3.2 Why Does RSA Work?6.3.3 Why Is RSA Secure?6.3.4 How Efficient Are the RSA Operations?6.3.4.1 Exponentiating with Big Numbers6.3.4.2 Generating RSA Keys6.3.4.3 Why a Non-Prime Has Multiple Square Roots of One6.3.4.4 Having a Small Constant e6.3.4.5 Optimizing RSA Private Key Operations6.3.5 Arcane RSA Threats6.3.5.1 Smooth Numbers6.3.5.2 The Cube Root Problem6.3.6 Public-Key Cryptography Standard (PKCS)6.3.6.1 Encryption6.3.6.2 The Million-Message Attack6.3.6.3 Signing6.4 Diffie-Hellman6.4.1 MITM (Meddler-in-the-Middle) Attack6.4.2 Defenses Against MITM Attack6.4.3 Safe Primes and the Small-Subgroup Attack6.4.4 ElGamal Signatures6.5 Digital Signature Algorithm (DSA)6.5.1 The DSA Algorithm6.5.2 Why Is This Secure?6.5.3 Per-Message Secret Number6.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 HomeworkChapter 7 Quantum Computing7.1 What Is a Quantum Computer?7.1.1 A Preview of the Conclusions7.1.2 First, What Is a Classical Computer?7.1.3 Qubits and Superposition7.1.3.1 Example of a Qubit7.1.3.2 Multi-Qubit States and Entanglement7.1.4 States and Gates as Vectors and Matrices7.1.5 Becoming Superposed and Entangled7.1.6 Linearity7.1.6.1 No Cloning Theorem7.1.7 Operating on Entangled Qubits7.1.8 Unitarity7.1.9 Doing Irreversible Operations by Measurement7.1.10 Making Irreversible Classical Operations Reversible7.1.11 Universal Gate Sets7.2 Grover's Algorithm7.2.1 Geometric Description7.2.2 How to Negate the Amplitude of |k⟩7.2.3 How to Reflect All the Amplitudes Across the Mean7.2.4 Parallelizing Grover's Algorithm7.3 Shor's Algorithm7.3.1 Why Exponentiation mod n Is a Periodic Function7.3.2 How Finding the Period of ax mod n Lets You Factor n7.3.3 Overview of Shor's Algorithm7.3.4 Converting to the Frequency Graph—Introduction7.3.5 The Mechanics of Converting to the Frequency Graph7.3.6 Calculating the Period7.3.7 Quantum Fourier Transform7.4 Quantum Key Distribution (QKD)7.4.1 Why It's Sometimes Called Quantum Encryption7.4.2 Is Quantum Key Distribution Important?7.5 How Hard Are Quantum Computers to Build?7.6 Quantum Error Correction7.7 HomeworkChapter 8 Post-Quantum Cryptography8.1 Signature and/or Encryption Schemes8.1.1 NIST Criteria for Security Levels8.1.2 Authentication8.1.3 Defense Against Dishonest Ciphertext8.2 Hash-based Signatures8.2.1 Simplest Scheme – Signing a Single Bit8.2.2 Signing an Arbitrary-sized Message8.2.3 Signing Lots of Messages8.2.4 Deterministic Tree Generation8.2.5 Short Hashes8.2.6 Hash Chains8.2.7 Standardized Schemes8.2.7.1 Stateless Schemes8.3 Lattice-Based Cryptography8.3.1 A Lattice Problem8.3.2 Optimization: Matrices with Structure8.3.3 NTRU-Encryption Family of Lattice Encryption Schemes8.3.3.1 Bob Computes a (Public, Private) Key Pair8.3.3.2 How Bob Decrypts to Find m 8.3.3.3 How Does this Relate to Lattices?8.3.4 Lattice-Based Signatures8.3.4.1 Basic Idea8.3.4.2 Insecure Scheme8.3.4.3 Fixing the Scheme8.3.5 Learning with Errors (LWE)8.3.5.1 LWE Optimizations8.3.5.2 LWE-based NIST Submissions8.4 Code-based Schemes8.4.1 Non-cryptographic Error-correcting Codes8.4.1.1 Invention Step8.4.1.2 Codeword Creation Step8.4.1.3 Misfortune Step8.4.1.4 Diagnosis Step8.4.2 The Parity-Check Matrix8.4.3 Cryptographic Public Key Code-based Scheme8.4.3.1 Neiderreiter Optimization8.4.3.2 Generating a Public Key Pair8.4.3.3 Using Circulant Matrices8.5 Multivariate Cryptography8.5.1 Solving Linear Equations8.5.2 Quadratic Polynomials8.5.3 Polynomial Systems8.5.4 Multivariate Signature Systems8.5.4.1 Multivariate Public Key Signatures8.6 HomeworkChapter 9 Authentication of People9.1 Password-based Authentication9.1.1 Challenge-Response Based on Password9.1.2 Verifying Passwords9.2 Address-based Authentication9.2.1 Network Address Impersonation9.3 Biometrics9.4 Cryptographic Authentication Protocols9.5 Who Is Being Authenticated?9.6 Passwords as Cryptographic Keys9.7 On-Line Password Guessing9.8 Off-Line Password Guessing9.9 Using the Same Password in Multiple Places9.10 Requiring Frequent Password Changes9.11 Tricking Users into Divulging Passwords9.12 Lamport's Hash9.13 Password Managers9.14 Web Cookies9.15 Identity Providers (IDPs)9.16 Authentication Tokens9.16.1 Disconnected Tokens9.16.2 Public Key Tokens9.17 Strong Password Protocols9.17.1 Subtle Details9.17.2 Augmented Strong Password Protocols9.17.3 SRP (Secure Remote Password)9.18 Credentials Download Protocols9.19 HomeworkChapter 10 Trusted Intermediaries10.1 Introduction10.2 Functional Comparison10.3 Kerberos10.3.1 KDC Introduces Alice to Bob10.3.2 Alice Contacts Bob10.3.3 Ticket Granting Ticket (TGT)10.3.4 Interrealm Authentication10.3.5 Making Password-Guessing Attacks Difficult10.3.6 Double TGT Protocol10.3.7 Authorization Information10.3.8 Delegation10.4 PKI10.4.1 Some Terminology10.4.2 Names in Certificates10.5 Website Gets a DNS Name and Certificate10.6 PKI Trust Models10.6.1 Monopoly Model10.6.2 Monopoly plus Registration Authorities (RAs)10.6.3 Delegated CAs10.6.4 Oligarchy10.6.5 Anarchy Model10.6.6 Name Constraints10.6.7 Top-Down with Name Constraints10.6.8 Multiple CAs for Any Namespace Node10.6.9 Bottom-Up with Name Constraints10.6.9.1 Functionality of Up-Links10.6.9.2 Functionality of Cross-Links10.6.10 Name Constraints in PKIX Certificates10.7 Building Certificate Chains10.8 Revocation10.8.1 CRL (Certificate Revocation list10.8.2 Online Certificate Status Protocol (OCSP)10.8.3 Good-Lists vs. Bad-Lists10.9 Other Information in a PKIX Certificate10.10 Issues with Expired Certificates10.11 DNSSEC (DNS Security Extensions)10.12 HomeworkChapter 11 Communication Session Establishment11.1 One-way Authentication of Alice11.1.1 Timestamps vs. Challenges11.1.2 One-Way Authentication of Alice using a Public Key11.2 Mutual Authentication11.2.1 Reflection Attack11.2.2 Timestamps for Mutual Authentication11.3 Integrity/Encryption for Data11.3.1 Session Key Based on Shared Secret Credentials11.3.2 Session Key Based on Public Key Credentials11.3.3 Session Key Based on One-Party Public Keys11.4 Nonce Types11.5 Intentional MITM11.6 Detecting MITM11.7 What Layer?11.8 Perfect Forward Secrecy11.9 Preventing Forged Source Addresses11.9.1 Allowing Bob to Be Stateless in TCP11.9.2 Allowing Bob to Be Stateless in IPsec11.10 Endpoint Identifier Hiding11.11 Live Partner Reassurance11.12 Arranging for Parallel Computation11.13 Session Resumption/Multiple Sessions11.14 Plausible Deniability11.15 Negotiating Crypto Parameters11.15.1 Suites vs. à la Carte11.15.2 Downgrade Attack11.16 HomeworkChapter 12 IPsec12.1 IPsec Security Associations12.1.1 Security Association Database12.1.2 Security Policy Database12.1.3 IKE-SAs and Child-SAs12.2 IKE (Internet Key Exchange Protocol)12.3 Creating a Child-SA12.4 AH and ESP12.4.1 ESP Integrity Protection12.4.2 Why Protect the IP Header?12.4.3 Tunnel, Transport Mode12.4.4 IPv4 Header12.4.5 IPv6 Header12.5 AH (Authentication Header)12.6 ESP (Encapsulating Security Payload)12.7 Comparison of Encodings12.8 HomeworkChapter 13 SSL/TLS and SSH13.1 Using TCP13.2 StartTLS13.3 Functions in the TLS Handshake13.4 TLS 1.2 (and Earlier) Basic Protocol13.5 TLS 1.313.6 Session Resumption13.7 PKI as Deployed by TLS13.8 SSH (Secure Shell)13.8.1 SSH Authentication13.8.2 SSH Port Forwarding13.9 HomeworkChapter 14 Electronic Mail Security14.1 Distribution Lists14.2 Store and Forward14.3 Disguising Binary as Text14.4 HTML-Formatted Email14.5 Attachments14.6 Non-cryptographic Security Features14.6.1 Spam Defenses14.7 Malicious Links in Email14.8 Data Loss Prevention (DLP)14.9 Knowing Bob's Email Address14.10 Self-Destruct, Do-Not-Forward,14.11 Preventing Spoofing of From Field14.12 In-Flight Encryption14.13 End-to-End Signed and Encrypted Email14.14 Encryption by a Server14.15 Message Integrity14.16 Non-Repudiation14.17 Plausible Deniability14.18 Message Flow Confidentiality14.19 Anonymity14.20 HomeworkChapter 15 Electronic Money15.1 ECASH15.2 Offline eCash15.2.1 Practical Attacks15.3 Bitcoin15.3.1 Transactions15.3.2 Bitcoin Addresses15.3.3 Blockchain15.3.4 The Ledger15.3.5 Mining15.3.6 Blockchain Forks15.3.7 Why Is Bitcoin So Energy-Intensive?15.3.8 Integrity Checks: Proof of Work vs. Digital Signatures15.3.9 Concerns15.4 Wallets for Electronic Currency15.5 HomeworkChapter 16 Cryptographic Tricks16.1 Secret Sharing16.2 Blind Signature16.3 Blind Decryption16.4 Zero-Knowledge Proofs16.4.1 Graph Isomorphism ZKP16.4.2 Proving Knowledge of a Square Root16.4.3 Noninteractive ZKP16.5 Group Signatures16.5.1 Trivial Group Signature Schemes16.5.1.1 Single Shared Key16.5.1.2 Group Membership Certificate16.5.1.3 Multiple Group Membership Certificates16.5.1.4 Blindly Signed Multiple Group Membership Certificates16.5.2 Ring Signatures16.5.3 DAA (Direct Anonymous Attestation)16.5.4 EPID (Enhanced Privacy ID)16.6 Circuit Model16.7 Secure Multiparty Computation (MPC)16.8 Fully Homomorphic Encryption (FHE)16.8.1 Bootstrapping16.8.2 Easy-to-Understand Scheme16.9 HomeworkChapter 17 Folklore17.1 Misconceptions17.2 Perfect Forward Secrecy17.3 Change Encryption Keys Periodically17.4 Don't Encrypt without Integrity Protection17.5 Multiplexing Flows over One Secure Session17.5.1 The Splicing Attack17.5.2 Service Classes17.5.3 Different Cryptographic Algorithms17.6 Using Different Secret Keys17.6.1 For Initiator and Responder in Handshake17.6.2 For Encryption and Integrity17.6.3 In Each Direction of a Secure Session17.7 Using Different Public Keys17.7.1 Use Different Keys for Different Purposes17.7.2 Different Keys for Signing and Encryption17.8 Establishing Session Keys17.8.1 Have Both Sides Contribute to the Master Key17.8.2 Don't Let One Side Determine the Key17.9 Hash in a Constant When Hashing a Password17.10 HMAC Rather than Simple Keyed Hash17.11 Key Derivation17.12 Use of Nonces in Protocols17.13 Creating an Unpredictable Nonce17.14 Compression17.15 Minimal vs. Redundant Designs17.16 Overestimate the Size of Key17.17 Hardware Random Number Generators17.18 Put Checksums at the End of Data17.19 Forward Compatibility17.19.1 Options17.19.2 Version Numbers17.19.2.1 Version Number Field Must Not Move17.19.2.2 Negotiating Highest Version Supported17.19.2.3 Minor Version Number FieldGlossaryMathM.1 IntroductionM.2 Some definitions and notationM.3 ArithmeticM.4 Abstract AlgebraM.5 Modular ArithmeticM.5.1 How Do Computers Do Arithmetic?M.5.2 Computing Inverses in Modular ArithmeticM.5.2.1 The Euclidean AlgorithmM.5.2.2 The Chinese Remainder TheoremM.5.3 How Fast Can We Do Arithmetic?M.6 GroupsM.7 FieldsM.7.1 PolynomialsM.7.2 Finite FieldsM.7.2.1 What Sizes Can Finite Fields Be?M.7.2.2 Representing a FieldM.8 Mathematics of RijndaelM.8.1 A Rijndael RoundM.9 Elliptic Curve CryptographyM.10 RingsM.11 Linear TransformationsM.12 Matrix ArithmeticM.12.1 PermutationsM.12.2 Matrix InversesM.12.2.1 Gaussian EliminationM.13 DeterminantsM.13.1 Properties of DeterminantsM.13.1.1 Adjugate of a MatrixM.13.2 Proof: Determinant of Product is Product of DeterminantsM.14 HomeworkBibliography 9780136643609 TOC 8/2/2022