Cryptography Engineering: Design Principles and Practical Applications 9781118502822, 1118502825, 978-0-470-47424-2

The ultimate guide to cryptography, updated from an author team of the world's top cryptography experts. Cryptograp

852 29 2MB

English Pages 385 Year 2012

Report DMCA / Copyright

DOWNLOAD FILE

Cryptography Engineering: Design Principles and Practical Applications
 9781118502822, 1118502825, 978-0-470-47424-2

Table of contents :
Content: Cryptography Engineering: Design Principles and Practical Applications
Credits
About the Authors
Acknowledgments for Cryptography Engineering
Acknowledgments for Practical Cryptography (the 1st Edition)
Contents at a Glance
Contents
Preface to Cryptography Engineering
History
Example Syllabi
Additional Information
Preface to Practical Cryptography (the 1st Edition)
How to Read this Book
Part I: Introduction
In This Part
Chapter 1: The Context of Cryptography
1.1: The Role of Cryptography
1.2: The Weakest Link Property
1.3: The Adversarial Setting
1.4: Professional Paranoia. 1.4.1: Broader Benefits1.4.2: Discussing Attacks
1.5: Threat Model
1.6: Cryptography Is Not the Solution
1.7: Cryptography Is Very Difficult
1.8: Cryptography Is the Easy Part
1.9: Generic Attacks
1.10: Security and Other Design Criteria
1.10.1: Security Versus Performance
1.10.2: Security Versus Features
1.10.3: Security Versus Evolving Systems
1.11: Further Reading
1.12: Exercises for Professional Paranoia
1.12.1: Current Event Exercises
1.12.2: Security Review Exercises
1.13: General Exercises
Chapter 2: Introduction to Cryptography
2.1: Encryption. 2.1.1: Kerckhoffs' Principle2.2: Authentication
2.3: Public-Key Encryption
2.4: Digital Signatures
2.5: PKI
2.6: Attacks
2.6.1: The Ciphertext-Only Model
2.6.2: The Known-Plaintext Model
2.6.3: The Chosen-Plaintext Model
2.6.4: The Chosen-Ciphertext Model
2.6.5: The Distinguishing Attack Goal
2.6.6: Other Types of Attack
2.7: Under the Hood
2.7.1: Birthday Attacks
2.7.2: Meet-in-the-Middle Attacks
2.8: Security Level
2.9: Performance
2.10: Complexity
2.11: Exercises
Part II: Message Security
Chapter 3: Block Ciphers
3.1: What Is a Block Cipher?
3.2: Types of Attack. 3.3: The Ideal Block Cipher3.4: Definition of Block Cipher Security
3.4.1: Parity of a Permutation
3.5: Real Block Ciphers
3.5.1: DES
3.5.2: AES
3.5.3: Serpent
3.5.4: Twofish
3.5.5: Other AES Finalists
3.5.6: Which Block Cipher Should I Choose?
3.5.7: What Key Size Should I Use?
3.6: Exercises
Chapter 4: Block Cipher Modes
4.1: Padding
4.2: ECB
4.3: CBC
4.3.1: Fixed IV
4.3.2: Counter IV
4.3.3: Random IV
4.3.4: Nonce-Generated IV
4.4: OFB
4.5: CTR
4.6: Combined Encryption and Authentication
4.7: Which Mode Should I Use?
4.8: Information Leakage. 4.8.1: Chances of a Collision4.8.2: How to Deal With Leakage
4.8.3: About Our Math
4.9: Exercises
Chapter 5: Hash Functions
5.1: Security of Hash Functions
5.2: Real Hash Functions
5.2.1: A Simple But Insecure Hash Function
5.2.2: MD5
5.2.3: SHA-1
5.2.4: SHA-224, SHA-256, SHA-384, and SHA-512
5.3: Weaknesses of Hash Functions
5.3.1: Length Extensions
5.3.2: Partial-Message Collision
5.4: Fixing the Weaknesses
5.4.1: Toward a Short-term Fix
5.4.2: A More Efficient Short-term Fix
5.4.3: Another Fix
5.5: Which Hash Function Should I Choose?
5.6: Exercises.

Polecaj historie