{"product_id":"cryptography-engineering-isbn-9780470474242","title":"Cryptography Engineering","description":"\u003cb\u003eThe ultimate guide to cryptography, updated from an author team of the world's top cryptography experts.\u003c\/b\u003e  \u003cp\u003eCryptography is vital to keeping information safe, in an era when the formula to do so becomes more and more challenging. Written by a team of world-renowned cryptography experts, this essential guide is the definitive introduction to all major areas of cryptography: message security, key negotiation, and key management. You'll learn how to think like a cryptographer. You'll discover techniques for building cryptography into products from the start and you'll examine the many technical changes in the field.\u003c\/p\u003e \u003cp\u003eAfter a basic overview of cryptography and what it means today, this indispensable resource covers such topics as block ciphers, block modes, hash functions, encryption modes, message authentication codes, implementation issues, negotiation protocols, and more. Helpful examples and hands-on exercises enhance your understanding of the multi-faceted field of cryptography.\u003c\/p\u003e \u003cul\u003e \u003cli\u003eAn author team of internationally recognized cryptography experts updates you on vital topics in the field of cryptography\u003c\/li\u003e \u003cli\u003eShows you how to build cryptography into products from the start\u003c\/li\u003e \u003cli\u003eExamines updates and changes to cryptography\u003c\/li\u003e \u003cli\u003eIncludes coverage on key servers, message security, authentication codes, new standards, block ciphers, message authentication codes, and more\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003e\u003ci\u003eCryptography Engineering\u003c\/i\u003e gets you up to speed in the ever-evolving field of cryptography.\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePreface to Cryptography Engineering xxiii\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eHistory xxiv\u003c\/p\u003e \u003cp\u003eExample Syllabi xxiv\u003c\/p\u003e \u003cp\u003eAdditional Information xxvi\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePreface to Practical Cryptography (the 1st Edition) xxvii\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eHow to Read this Book xxix\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I Introduction 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1 The Context of Cryptography 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 The Role of Cryptography 4\u003c\/p\u003e \u003cp\u003e1.2 The Weakest Link Property 5\u003c\/p\u003e \u003cp\u003e1.3 The Adversarial Setting 7\u003c\/p\u003e \u003cp\u003e1.4 Professional Paranoia 8\u003c\/p\u003e \u003cp\u003e1.4.1 Broader Benefits 9\u003c\/p\u003e \u003cp\u003e1.4.2 Discussing Attacks 9\u003c\/p\u003e \u003cp\u003e1.5 Threat Model 10\u003c\/p\u003e \u003cp\u003e1.6 Cryptography Is Not the Solution 12\u003c\/p\u003e \u003cp\u003e1.7 Cryptography Is Very Difficult 13\u003c\/p\u003e \u003cp\u003e1.8 Cryptography Is the Easy Part 13\u003c\/p\u003e \u003cp\u003e1.9 Generic Attacks 14\u003c\/p\u003e \u003cp\u003e1.10 Security and Other Design Criteria 14\u003c\/p\u003e \u003cp\u003e1.10.1 Security Versus Performance 14\u003c\/p\u003e \u003cp\u003e1.10.2 Security Versus Features 17\u003c\/p\u003e \u003cp\u003e1.10.3 Security Versus Evolving Systems 17\u003c\/p\u003e \u003cp\u003e1.11 Further Reading 18\u003c\/p\u003e \u003cp\u003e1.12 Exercises for Professional Paranoia 18\u003c\/p\u003e \u003cp\u003e1.12.1 Current Event Exercises 19\u003c\/p\u003e \u003cp\u003e1.12.2 Security Review Exercises 20\u003c\/p\u003e \u003cp\u003e1.13 General Exercises 21\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2 Introduction to Cryptography 23\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Encryption 23\u003c\/p\u003e \u003cp\u003e2.1.1 Kerckhoffs’ Principle 24\u003c\/p\u003e \u003cp\u003e2.2 Authentication 25\u003c\/p\u003e \u003cp\u003e2.3 Public-Key Encryption 27\u003c\/p\u003e \u003cp\u003e2.4 Digital Signatures 29\u003c\/p\u003e \u003cp\u003e2.5 PKI 29\u003c\/p\u003e \u003cp\u003e2.6 Attacks 31\u003c\/p\u003e \u003cp\u003e2.6.1 The Ciphertext-Only Model 31\u003c\/p\u003e \u003cp\u003e2.6.2 The Known-Plaintext Model 31\u003c\/p\u003e \u003cp\u003e2.6.3 The Chosen-Plaintext Model 32\u003c\/p\u003e \u003cp\u003e2.6.4 The Chosen-Ciphertext Model 32\u003c\/p\u003e \u003cp\u003e2.6.5 The Distinguishing Attack Goal 32\u003c\/p\u003e \u003cp\u003e2.6.6 Other Types of Attack 33\u003c\/p\u003e \u003cp\u003e2.7 Under the Hood 33\u003c\/p\u003e \u003cp\u003e2.7.1 Birthday Attacks 33\u003c\/p\u003e \u003cp\u003e2.7.2 Meet-in-the-Middle Attacks 34\u003c\/p\u003e \u003cp\u003e2.8 Security Level 36\u003c\/p\u003e \u003cp\u003e2.9 Performance 37\u003c\/p\u003e \u003cp\u003e2.10 Complexity 37\u003c\/p\u003e \u003cp\u003e2.11 Exercises 38\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II Message Security 41\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3 Block Ciphers 43\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 What Is a Block Cipher? 43\u003c\/p\u003e \u003cp\u003e3.2 Types of Attack 44\u003c\/p\u003e \u003cp\u003e3.3 The Ideal Block Cipher 46\u003c\/p\u003e \u003cp\u003e3.4 Definition of Block Cipher Security 46\u003c\/p\u003e \u003cp\u003e3.4.1 Parity of a Permutation 49\u003c\/p\u003e \u003cp\u003e3.5 Real Block Ciphers 50\u003c\/p\u003e \u003cp\u003e3.5.1 DES 51\u003c\/p\u003e \u003cp\u003e3.5.2 AES 54\u003c\/p\u003e \u003cp\u003e3.5.3 Serpent 56\u003c\/p\u003e \u003cp\u003e3.5.4 Twofish 57\u003c\/p\u003e \u003cp\u003e3.5.5 Other AES Finalists 58\u003c\/p\u003e \u003cp\u003e3.5.6 Which Block Cipher Should I Choose? 59\u003c\/p\u003e \u003cp\u003e3.5.7 What Key Size Should I Use? 60\u003c\/p\u003e \u003cp\u003e3.6 Exercises 61\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4 Block Cipher Modes 63\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Padding 64\u003c\/p\u003e \u003cp\u003e4.2 ECB 65\u003c\/p\u003e \u003cp\u003e4.3 CBC 65\u003c\/p\u003e \u003cp\u003e4.3.1 Fixed IV 66\u003c\/p\u003e \u003cp\u003e4.3.2 Counter IV 66\u003c\/p\u003e \u003cp\u003e4.3.3 Random IV 66\u003c\/p\u003e \u003cp\u003e4.3.4 Nonce-Generated IV 67\u003c\/p\u003e \u003cp\u003e4.4 OFB 68\u003c\/p\u003e \u003cp\u003e4.5 CTR 70\u003c\/p\u003e \u003cp\u003e4.6 Combined Encryption and Authentication 71\u003c\/p\u003e \u003cp\u003e4.7 Which Mode Should I Use? 71\u003c\/p\u003e \u003cp\u003e4.8 Information Leakage 72\u003c\/p\u003e \u003cp\u003e4.8.1 Chances of a Collision 73\u003c\/p\u003e \u003cp\u003e4.8.2 How to Deal With Leakage 74\u003c\/p\u003e \u003cp\u003e4.8.3 About Our Math 75\u003c\/p\u003e \u003cp\u003e4.9 Exercises 75\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5 Hash Functions 77\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Security of Hash Functions 78\u003c\/p\u003e \u003cp\u003e5.2 Real Hash Functions 79\u003c\/p\u003e \u003cp\u003e5.2.1 A Simple But Insecure Hash Function 80\u003c\/p\u003e \u003cp\u003e5.2.2 MD5 81\u003c\/p\u003e \u003cp\u003e5.2.3 SHA-1 82\u003c\/p\u003e \u003cp\u003e5.2.4 SHA-224, SHA-256, SHA-384, and SHA-512 82\u003c\/p\u003e \u003cp\u003e5.3 Weaknesses of Hash Functions 83\u003c\/p\u003e \u003cp\u003e5.3.1 Length Extensions 83\u003c\/p\u003e \u003cp\u003e5.3.2 Partial-Message Collision 84\u003c\/p\u003e \u003cp\u003e5.4 Fixing the Weaknesses 84\u003c\/p\u003e \u003cp\u003e5.4.1 Toward a Short-term Fix 85\u003c\/p\u003e \u003cp\u003e5.4.2 A More Efficient Short-term Fix 85\u003c\/p\u003e \u003cp\u003e5.4.3 Another Fix 87\u003c\/p\u003e \u003cp\u003e5.5 Which Hash Function Should I Choose? 87\u003c\/p\u003e \u003cp\u003e5.6 Exercises 87\u003c\/p\u003e \u003cp\u003eChapter 6 Message Authentication Codes 89\u003c\/p\u003e \u003cp\u003e6.1 What a MAC Does 89\u003c\/p\u003e \u003cp\u003e6.2 The Ideal MAC and MAC Security 90\u003c\/p\u003e \u003cp\u003e6.3 CBC-MAC and CMAC 91\u003c\/p\u003e \u003cp\u003e6.4 HMAC 93\u003c\/p\u003e \u003cp\u003e6.5 GMAC 94\u003c\/p\u003e \u003cp\u003e6.6 Which MAC to Choose? 95\u003c\/p\u003e \u003cp\u003e6.7 Using a MAC 95\u003c\/p\u003e \u003cp\u003e6.8 Exercises 97\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7 The Secure Channel 99\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Properties of a Secure Channel 99\u003c\/p\u003e \u003cp\u003e7.1.1 Roles 99\u003c\/p\u003e \u003cp\u003e7.1.2 Key 100\u003c\/p\u003e \u003cp\u003e7.1.3 Messages or Stream 100\u003c\/p\u003e \u003cp\u003e7.1.4 Security Properties 101\u003c\/p\u003e \u003cp\u003e7.2 Order of Authentication and Encryption 102\u003c\/p\u003e \u003cp\u003e7.3 Designing a Secure Channel: Overview 104\u003c\/p\u003e \u003cp\u003e7.3.1 Message Numbers 105\u003c\/p\u003e \u003cp\u003e7.3.2 Authentication 106\u003c\/p\u003e \u003cp\u003e7.3.3 Encryption 106\u003c\/p\u003e \u003cp\u003e7.3.4 Frame Format 107\u003c\/p\u003e \u003cp\u003e7.4 Design Details 107\u003c\/p\u003e \u003cp\u003e7.4.1 Initialization 107\u003c\/p\u003e \u003cp\u003e7.4.2 Sending a Message 108\u003c\/p\u003e \u003cp\u003e7.4.3 Receiving a Message 109\u003c\/p\u003e \u003cp\u003e7.4.4 Message Order 111\u003c\/p\u003e \u003cp\u003e7.5 Alternatives 112\u003c\/p\u003e \u003cp\u003e7.6 Exercises 113\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8 Implementation Issues (I) 115\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Creating Correct Programs 116\u003c\/p\u003e \u003cp\u003e8.1.1 Specifications 117\u003c\/p\u003e \u003cp\u003e8.1.2 Test and Fix 118\u003c\/p\u003e \u003cp\u003e8.1.3 Lax Attitude 119\u003c\/p\u003e \u003cp\u003e8.1.4 So How Do We Proceed? 119\u003c\/p\u003e \u003cp\u003e8.2 Creating Secure Software 120\u003c\/p\u003e \u003cp\u003e8.3 Keeping Secrets 120\u003c\/p\u003e \u003cp\u003e8.3.1 Wiping State 121\u003c\/p\u003e \u003cp\u003e8.3.2 Swap File 122\u003c\/p\u003e \u003cp\u003e8.3.3 Caches 124\u003c\/p\u003e \u003cp\u003e8.3.4 Data Retention by Memory 125\u003c\/p\u003e \u003cp\u003e8.3.5 Access by Others 127\u003c\/p\u003e \u003cp\u003e8.3.6 Data Integrity 127\u003c\/p\u003e \u003cp\u003e8.3.7 What to Do 128\u003c\/p\u003e \u003cp\u003e8.4 Quality of Code 128\u003c\/p\u003e \u003cp\u003e8.4.1 Simplicity 129\u003c\/p\u003e \u003cp\u003e8.4.2 Modularization 129\u003c\/p\u003e \u003cp\u003e8.4.3 Assertions 130\u003c\/p\u003e \u003cp\u003e8.4.4 Buffer Overflows 131\u003c\/p\u003e \u003cp\u003e8.4.5 Testing 131\u003c\/p\u003e \u003cp\u003e8.5 Side-Channel Attacks 132\u003c\/p\u003e \u003cp\u003e8.6 Beyond this Chapter 133\u003c\/p\u003e \u003cp\u003e8.7 Exercises 133\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III Key Negotiation 135\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9 Generating Randomness 137\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Real Random 138\u003c\/p\u003e \u003cp\u003e9.1.1 Problems With Using Real Random Data 139\u003c\/p\u003e \u003cp\u003e9.1.2 Pseudorandom Data 140\u003c\/p\u003e \u003cp\u003e9.1.3 Real Random Data and PRNGS 140\u003c\/p\u003e \u003cp\u003e9.2 Attack Models for a PRNG 141\u003c\/p\u003e \u003cp\u003e9.3 Fortuna 142\u003c\/p\u003e \u003cp\u003e9.4 The Generator 143\u003c\/p\u003e \u003cp\u003e9.4.1 Initialization 145\u003c\/p\u003e \u003cp\u003e9.4.2 Reseed 145\u003c\/p\u003e \u003cp\u003e9.4.3 Generate Blocks 146\u003c\/p\u003e \u003cp\u003e9.4.4 Generate Random Data 146\u003c\/p\u003e \u003cp\u003e9.4.5 Generator Speed 147\u003c\/p\u003e \u003cp\u003e9.5 Accumulator 147\u003c\/p\u003e \u003cp\u003e9.5.1 Entropy Sources 147\u003c\/p\u003e \u003cp\u003e9.5.2 Pools 148\u003c\/p\u003e \u003cp\u003e9.5.3 Implementation Considerations 150\u003c\/p\u003e \u003cp\u003e9.5.3.1 Distribution of Events Over Pools 150\u003c\/p\u003e \u003cp\u003e9.5.3.2 Running Time of Event Passing 151\u003c\/p\u003e \u003cp\u003e9.5.4 Initialization 152\u003c\/p\u003e \u003cp\u003e9.5.5 Getting Random Data 153\u003c\/p\u003e \u003cp\u003e9.5.6 Add an Event 154\u003c\/p\u003e \u003cp\u003e9.6 Seed File Management 155\u003c\/p\u003e \u003cp\u003e9.6.1 Write Seed File 156\u003c\/p\u003e \u003cp\u003e9.6.2 Update Seed File 156\u003c\/p\u003e \u003cp\u003e9.6.3 When to Read and Write the Seed File 157\u003c\/p\u003e \u003cp\u003e9.6.4 Backups and Virtual Machines 157\u003c\/p\u003e \u003cp\u003e9.6.5 Atomicity of File System Updates 158\u003c\/p\u003e \u003cp\u003e9.6.6 First Boot 158\u003c\/p\u003e \u003cp\u003e9.7 Choosing Random Elements 159\u003c\/p\u003e \u003cp\u003e9.8 Exercises 161\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10 Primes 163\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Divisibility and Primes 163\u003c\/p\u003e \u003cp\u003e10.2 Generating Small Primes 166\u003c\/p\u003e \u003cp\u003e10.3 Computations Modulo a Prime 167\u003c\/p\u003e \u003cp\u003e10.3.1 Addition and Subtraction 168\u003c\/p\u003e \u003cp\u003e10.3.2 Multiplication 169\u003c\/p\u003e \u003cp\u003e10.3.3 Groups and Finite Fields 169\u003c\/p\u003e \u003cp\u003e10.3.4 The GCD Algorithm 170\u003c\/p\u003e \u003cp\u003e10.3.5 The Extended Euclidean Algorithm 171\u003c\/p\u003e \u003cp\u003e10.3.6 Working Modulo 2 172\u003c\/p\u003e \u003cp\u003e10.4 Large Primes 173\u003c\/p\u003e \u003cp\u003e10.4.1 Primality Testing 176\u003c\/p\u003e \u003cp\u003e10.4.2 Evaluating Powers 178\u003c\/p\u003e \u003cp\u003e10.5 Exercises 179\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11 Diffie-Hellman 181\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Groups 182\u003c\/p\u003e \u003cp\u003e11.2 Basic DH 183\u003c\/p\u003e \u003cp\u003e11.3 Man in the Middle 184\u003c\/p\u003e \u003cp\u003e11.4 Pitfalls 185\u003c\/p\u003e \u003cp\u003e11.5 Safe Primes 186\u003c\/p\u003e \u003cp\u003e11.6 Using a Smaller Subgroup 187\u003c\/p\u003e \u003cp\u003e11.7 The Size of p 188\u003c\/p\u003e \u003cp\u003e11.8 Practical Rules 190\u003c\/p\u003e \u003cp\u003e11.9 What Can Go Wrong? 191\u003c\/p\u003e \u003cp\u003e11.10 Exercises 193\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12 RSA 195\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Introduction 195\u003c\/p\u003e \u003cp\u003e12.2 The Chinese Remainder Theorem 196\u003c\/p\u003e \u003cp\u003e12.2.1 Garner’s Formula 196\u003c\/p\u003e \u003cp\u003e12.2.2 Generalizations 197\u003c\/p\u003e \u003cp\u003e12.2.3 Uses 198\u003c\/p\u003e \u003cp\u003e12.2.4 Conclusion 199\u003c\/p\u003e \u003cp\u003e12.3 Multiplication Modulo n 199\u003c\/p\u003e \u003cp\u003e12.4 RSA Defined 200\u003c\/p\u003e \u003cp\u003e12.4.1 Digital Signatures with RSA 200\u003c\/p\u003e \u003cp\u003e12.4.2 Public Exponents 201\u003c\/p\u003e \u003cp\u003e12.4.3 The Private Key 202\u003c\/p\u003e \u003cp\u003e12.4.4 The Size of n 203\u003c\/p\u003e \u003cp\u003e12.4.5 Generating RSA Keys 203\u003c\/p\u003e \u003cp\u003e12.5 Pitfalls Using RSA 205\u003c\/p\u003e \u003cp\u003e12.6 Encryption 206\u003c\/p\u003e \u003cp\u003e12.7 Signatures 209\u003c\/p\u003e \u003cp\u003e12.8 Exercises 211\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13 Introduction to Cryptographic Protocols 213\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 Roles 213\u003c\/p\u003e \u003cp\u003e13.2 Trust 214\u003c\/p\u003e \u003cp\u003e13.2.1 Risk 215\u003c\/p\u003e \u003cp\u003e13.3 Incentive 215\u003c\/p\u003e \u003cp\u003e13.4 Trust in Cryptographic Protocols 217\u003c\/p\u003e \u003cp\u003e13.5 Messages and Steps 218\u003c\/p\u003e \u003cp\u003e13.5.1 The Transport Layer 219\u003c\/p\u003e \u003cp\u003e13.5.2 Protocol and Message Identity 219\u003c\/p\u003e \u003cp\u003e13.5.3 Message Encoding and Parsing 220\u003c\/p\u003e \u003cp\u003e13.5.4 Protocol Execution States 221\u003c\/p\u003e \u003cp\u003e13.5.5 Errors 221\u003c\/p\u003e \u003cp\u003e13.5.6 Replay and Retries 223\u003c\/p\u003e \u003cp\u003e13.6 Exercises 225\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14 Key Negotiation 227\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 The Setting 227\u003c\/p\u003e \u003cp\u003e14.2 A First Try 228\u003c\/p\u003e \u003cp\u003e14.3 Protocols Live Forever 229\u003c\/p\u003e \u003cp\u003e14.4 An Authentication Convention 230\u003c\/p\u003e \u003cp\u003e14.5 A Second Attempt 231\u003c\/p\u003e \u003cp\u003e14.6 A Third Attempt 232\u003c\/p\u003e \u003cp\u003e14.7 The Final Protocol 233\u003c\/p\u003e \u003cp\u003e14.8 Different Views of the Protocol 235\u003c\/p\u003e \u003cp\u003e14.8.1 Alice’s View 235\u003c\/p\u003e \u003cp\u003e14.8.2 Bob’s View 236\u003c\/p\u003e \u003cp\u003e14.8.3 Attacker’s View 236\u003c\/p\u003e \u003cp\u003e14.8.4 Key Compromise 238\u003c\/p\u003e \u003cp\u003e14.9 Computational Complexity of the Protocol 238\u003c\/p\u003e \u003cp\u003e14.9.1 Optimization Tricks 239\u003c\/p\u003e \u003cp\u003e14.10 Protocol Complexity 240\u003c\/p\u003e \u003cp\u003e14.11 A Gentle Warning 241\u003c\/p\u003e \u003cp\u003e14.12 Key Negotiation from a Password 241\u003c\/p\u003e \u003cp\u003e14.13 Exercises 241\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15 Implementation Issues (II) 243\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 Large Integer Arithmetic 243\u003c\/p\u003e \u003cp\u003e15.1.1 Wooping 245\u003c\/p\u003e \u003cp\u003e15.1.2 Checking DH Computations 248\u003c\/p\u003e \u003cp\u003e15.1.3 Checking RSA Encryption 248\u003c\/p\u003e \u003cp\u003e15.1.4 Checking RSA Signatures 249\u003c\/p\u003e \u003cp\u003e15.1.5 Conclusion 249\u003c\/p\u003e \u003cp\u003e15.2 Faster Multiplication 249\u003c\/p\u003e \u003cp\u003e15.3 Side-Channel Attacks 250\u003c\/p\u003e \u003cp\u003e15.3.1 Countermeasures 251\u003c\/p\u003e \u003cp\u003e15.4 Protocols 252\u003c\/p\u003e \u003cp\u003e15.4.1 Protocols Over a Secure Channel 253\u003c\/p\u003e \u003cp\u003e15.4.2 Receiving a Message 253\u003c\/p\u003e \u003cp\u003e15.4.3 Timeouts 255\u003c\/p\u003e \u003cp\u003e15.5 Exercises 255\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart IV Key Management 257\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16 The Clock 259\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e16.1 Uses for a Clock 259\u003c\/p\u003e \u003cp\u003e16.1.1 Expiration 259\u003c\/p\u003e \u003cp\u003e16.1.2 Unique Value 260\u003c\/p\u003e \u003cp\u003e16.1.3 Monotonicity 260\u003c\/p\u003e \u003cp\u003e16.1.4 Real-Time Transactions 260\u003c\/p\u003e \u003cp\u003e16.2 Using the Real-Time Clock Chip 261\u003c\/p\u003e \u003cp\u003e16.3 Security Dangers 262\u003c\/p\u003e \u003cp\u003e16.3.1 Setting the Clock Back 262\u003c\/p\u003e \u003cp\u003e16.3.2 Stopping the Clock 262\u003c\/p\u003e \u003cp\u003e16.3.3 Setting the Clock Forward 263\u003c\/p\u003e \u003cp\u003e16.4 Creating a Reliable Clock 264\u003c\/p\u003e \u003cp\u003e16.5 The Same-State Problem 265\u003c\/p\u003e \u003cp\u003e16.6 Time 266\u003c\/p\u003e \u003cp\u003e16.7 Closing Recommendations 267\u003c\/p\u003e \u003cp\u003e16.8 Exercises 267\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 17 Key Servers 269\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e17.1 Basics 270\u003c\/p\u003e \u003cp\u003e17.2 Kerberos 270\u003c\/p\u003e \u003cp\u003e17.3 Simpler Solutions 271\u003c\/p\u003e \u003cp\u003e17.3.1 Secure Connection 272\u003c\/p\u003e \u003cp\u003e17.3.2 Setting Up a Key 272\u003c\/p\u003e \u003cp\u003e17.3.3 Rekeying 272\u003c\/p\u003e \u003cp\u003e17.3.4 Other Properties 273\u003c\/p\u003e \u003cp\u003e17.4 What to Choose 273\u003c\/p\u003e \u003cp\u003e17.5 Exercises 274\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 18 The Dream of PKI 275\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e18.1 A Very Short PKI Overview 275\u003c\/p\u003e \u003cp\u003e18.2 PKI Examples 276\u003c\/p\u003e \u003cp\u003e18.2.1 The Universal PKI 276\u003c\/p\u003e \u003cp\u003e18.2.2 VPN Access 276\u003c\/p\u003e \u003cp\u003e18.2.3 Electronic Banking 276\u003c\/p\u003e \u003cp\u003e18.2.4 Refinery Sensors 277\u003c\/p\u003e \u003cp\u003e18.2.5 Credit Card Organization 277\u003c\/p\u003e \u003cp\u003e18.3 Additional Details 277\u003c\/p\u003e \u003cp\u003e18.3.1 Multilevel Certificates 277\u003c\/p\u003e \u003cp\u003e18.3.2 Expiration 278\u003c\/p\u003e \u003cp\u003e18.3.3 Separate Registration Authority 279\u003c\/p\u003e \u003cp\u003e18.4 Summary 280\u003c\/p\u003e \u003cp\u003e18.5 Exercises 280\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 19 PKI Reality 281\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e19.1 Names 281\u003c\/p\u003e \u003cp\u003e19.2 Authority 283\u003c\/p\u003e \u003cp\u003e19.3 Trust 284\u003c\/p\u003e \u003cp\u003e19.4 Indirect Authorization 285\u003c\/p\u003e \u003cp\u003e19.5 Direct Authorization 286\u003c\/p\u003e \u003cp\u003e19.6 Credential Systems 286\u003c\/p\u003e \u003cp\u003e19.7 The Modified Dream 288\u003c\/p\u003e \u003cp\u003e19.8 Revocation 289\u003c\/p\u003e \u003cp\u003e19.8.1 Revocation List 289\u003c\/p\u003e \u003cp\u003e19.8.2 Fast Expiration 290\u003c\/p\u003e \u003cp\u003e19.8.3 Online Certificate Verification 291\u003c\/p\u003e \u003cp\u003e19.8.4 Revocation Is Required 291\u003c\/p\u003e \u003cp\u003e19.9 So What Is a PKI Good For? 292\u003c\/p\u003e \u003cp\u003e19.10 What to Choose 293\u003c\/p\u003e \u003cp\u003e19.11 Exercises 294\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 20 PKI Practicalities 295\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e20.1 Certificate Format 295\u003c\/p\u003e \u003cp\u003e20.1.1 Permission Language 295\u003c\/p\u003e \u003cp\u003e20.1.2 The Root Key 296\u003c\/p\u003e \u003cp\u003e20.2 The Life of a Key 297\u003c\/p\u003e \u003cp\u003e20.3 Why Keys Wear Out 298\u003c\/p\u003e \u003cp\u003e20.4 Going Further 300\u003c\/p\u003e \u003cp\u003e20.5 Exercises 300\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 21 Storing Secrets 301\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e21.1 Disk 301\u003c\/p\u003e \u003cp\u003e21.2 Human Memory 302\u003c\/p\u003e \u003cp\u003e21.2.1 Salting and Stretching 304\u003c\/p\u003e \u003cp\u003e21.3 Portable Storage 306\u003c\/p\u003e \u003cp\u003e21.4 Secure Token 306\u003c\/p\u003e \u003cp\u003e21.5 Secure UI 307\u003c\/p\u003e \u003cp\u003e21.6 Biometrics 308\u003c\/p\u003e \u003cp\u003e21.7 Single Sign-On 309\u003c\/p\u003e \u003cp\u003e21.8 Risk of Loss 310\u003c\/p\u003e \u003cp\u003e21.9 Secret Sharing 310\u003c\/p\u003e \u003cp\u003e21.10 Wiping Secrets 311\u003c\/p\u003e \u003cp\u003e21.10.1 Paper 311\u003c\/p\u003e \u003cp\u003e21.10.2 Magnetic Storage 312\u003c\/p\u003e \u003cp\u003e21.10.3 Solid-State Storage 313\u003c\/p\u003e \u003cp\u003e21.11 Exercises 313\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart V Miscellaneous 315\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 22 Standards and Patents 317\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e22.1 Standards 317\u003c\/p\u003e \u003cp\u003e22.1.1 The Standards Process 317\u003c\/p\u003e \u003cp\u003e22.1.1.1 The Standard 319\u003c\/p\u003e \u003cp\u003e22.1.1.2 Functionality 319\u003c\/p\u003e \u003cp\u003e22.1.1.3 Security 320\u003c\/p\u003e \u003cp\u003e22.1.2 SSL 320\u003c\/p\u003e \u003cp\u003e22.1.3 AES: Standardization by Competition 321\u003c\/p\u003e \u003cp\u003e22.2 Patents 322\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 23 Involving Experts 323\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBibliography 327\u003c\/p\u003e \u003cp\u003eIndex 339\u003c\/p\u003e \u003cb\u003eNiels Ferguson\u003c\/b\u003e is a cryptographer for Microsoft who has designed and implemented cryptographic algorithms, protocols, and large-scale security infrastructures. \u003cp\u003e\u003cb\u003eBruce Schneier\u003c\/b\u003e is an internationally renowned security technologist whose advice is sought by business, government, and the media. He is the author of \u003ci\u003eApplied Cryptography, Secrets and Lies\u003c\/i\u003e, and \u003ci\u003eSchneier on Security\u003c\/i\u003e.\u003c\/p\u003e \u003cp\u003e\u003cb\u003eTadayoshi Kohno\u003c\/b\u003e is a professor at the University of Washington. He is known for his research and for developing innovative new approaches to cryptography and computer security education.\u003c\/p\u003e  \u003cb\u003eLearn to build cryptographic protocols that work in the real world\u003c\/b\u003e  \u003cp\u003eKnowing how a camera works does not make you a great photographer. Knowing what cryptographic designs are and how existing cryptographic protocols work does not give you proficiency in using cryptography. You must learn to think like a cryptographer.\u003c\/p\u003e \u003cp\u003eThat is what this book will teach you. Dive deeply into specific, concrete cryptographic protocols and learn why certain decisions were made. Recognize the challenges and how to overcome them. With this book, which is suitable for both classroom and self-study, you will learn to use cryptography effectively in real-world systems.\u003c\/p\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eUnderstand what goes into designing cryptographic protocols\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eDevelop an understanding of the interface between cryptography and the surrounding system, including people, economics, hardware, software, ethics, policy, and other aspects of the real world\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eLook beyond the security protocol to see weaknesses in the surrounding system\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eThwart the adversary by understanding how adversaries think\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eLearn how to build cryptography into new products\u003c\/p\u003e \u003c\/li\u003e \u003c\/ul\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47989010235621,"sku":"NP9780470474242","price":58.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9780470474242.jpg?v=1761782420","url":"https:\/\/k12savings.com\/products\/cryptography-engineering-isbn-9780470474242","provider":"K12savings","version":"1.0","type":"link"}