| |
| |
| |
Introduction to Cryptography and Data Security | |
| |
| |
| |
Overview of Cryptography (and This Book) | |
| |
| |
| |
Symmetric Cryptography | |
| |
| |
| |
Basics | |
| |
| |
| |
Simple Symmetric Encryption: The Substitution Cipher | |
| |
| |
| |
Cryptanalysis | |
| |
| |
| |
General Thoughts on Breaking Cryptosystems | |
| |
| |
| |
How Many Key Bits Are Enough? | |
| |
| |
| |
Modular Arithmetic and More Historical Ciphers | |
| |
| |
| |
Modular Arithmetic | |
| |
| |
| |
Integer Rings | |
| |
| |
| |
Shift Cipher (or Caesar Cipher) | |
| |
| |
| |
Affine Cipher | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
Stream Ciphers | |
| |
| |
| |
Introduction | |
| |
| |
| |
Stream Ciphers vs. Block Ciphers | |
| |
| |
| |
Encryption and Decryption with Stream Ciphers | |
| |
| |
| |
Random Numbers and an Unbreakable Stream Cipher | |
| |
| |
| |
Random Number Generators | |
| |
| |
| |
The One-Time Pad | |
| |
| |
| |
Towards Practical Stream Ciphers | |
| |
| |
| |
Shift Register-Based Stream Ciphers | |
| |
| |
| |
Linear Feedback Shift Registers (LFSR) | |
| |
| |
| |
Known-Plaintext Attack Against Single LFSRs | |
| |
| |
| |
Trivium | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
The Data Encryption Standard (DES) and Alternatives | |
| |
| |
| |
Introduction to DES | |
| |
| |
| |
Confusion and Diffusion | |
| |
| |
| |
Overview of the DES Algorithm | |
| |
| |
| |
Internal Structure of DES | |
| |
| |
| |
Initial and Final Permutation | |
| |
| |
| |
The �-Function | |
| |
| |
| |
Key Schedule | |
| |
| |
| |
Decryption | |
| |
| |
| |
Security of DES | |
| |
| |
| |
Exhaustive Key Search | |
| |
| |
| |
Analytical Attacks | |
| |
| |
| |
Implementation in Software and Hardware | |
| |
| |
| |
DES Alternatives | |
| |
| |
| |
The Advanced Encryption Standard (AES) and the AES Finalist Ciphers | |
| |
| |
| |
Triple DES (3DES) and DESX | |
| |
| |
| |
Lightweight Cipher PRESENT | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
The Advanced Encryption Standard (AES) | |
| |
| |
| |
Introduction | |
| |
| |
| |
Overview of the AES Algorithm | |
| |
| |
| |
Some Mathematics: A Brief Introduction to Galois Fields | |
| |
| |
| |
Existence of Finite Fields | |
| |
| |
| |
Prime Fields | |
| |
| |
| |
Extension Fields GF(2m) | |
| |
| |
| |
Addition and Subtraction in GF(2m) | |
| |
| |
| |
Multiplication in GF{2m) | |
| |
| |
| |
Inversion in GF(2m) | |
| |
| |
| |
Internal Structure of AES | |
| |
| |
| |
Byte Substitution Layer | |
| |
| |
| |
Diffusion Layer | |
| |
| |
| |
Key Addition Layer | |
| |
| |
| |
Key Schedule | |
| |
| |
| |
Decryption | |
| |
| |
| |
Implementation in Software and Hardware | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
More About Block Ciphers | |
| |
| |
| |
Encryption with Block Ciphers: Modes of Operation | |
| |
| |
| |
Electronic Codebook Mode (ECB) | |
| |
| |
| |
Cipher Block Chaining Mode (CBC) | |
| |
| |
| |
Output Feedback Mode (ORB) | |
| |
| |
| |
Cipher Feedback Mode (CFB) | |
| |
| |
| |
Counter Mode (CTR) | |
| |
| |
| |
Galois Counter Mode (GCM) | |
| |
| |
| |
Exhaustive Key Search Revisited | |
| |
| |
| |
Increasing the Security of Block Ciphers | |
| |
| |
| |
Double Encryption and Meet-in-the-Middle Attack | |
| |
| |
| |
Triple Encryption | |
| |
| |
| |
Key Whitening | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
Introduction to Public-Key Cryptography | |
| |
| |
| |
Symmetric vs. Asymmetric Cryptography | |
| |
| |
| |
Practical Aspects of Public-Key Cryptography | |
| |
| |
| |
Security Mechanisms | |
| |
| |
| |
The Remaining Problem: Authenticity of Public Keys | |
| |
| |
| |
Important Public-Key Algorithms | |
| |
| |
| |
Key Lengths and Security Levels | |
| |
| |
| |
Essential Number Theory for Public-Key Algorithms | |
| |
| |
| |
Euclidean Algorithm | |
| |
| |
| |
Extended Euclidean Algorithm | |
| |
| |
| |
Euler's Phi Function | |
| |
| |
| |
Fermat's Little Theorem and Euler's Theorem | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
The RSA Cryptosystem | |
| |
| |
| |
Introduction | |
| |
| |
| |
Encryption and Decryption | |
| |
| |
| |
Key Generation and Proof of Correctness | |
| |
| |
| |
Encryption and Decryption: Fast Exponentiation | |
| |
| |
| |
Speed-up Techniques for RSA | |
| |
| |
| |
Fast Encryption with Short Public Exponents | |
| |
| |
| |
Fast Decryption with the Chinese Remainder Theorem | |
| |
| |
| |
Finding Large Primes | |
| |
| |
| |
How Common Are Primes? | |
| |
| |
| |
Primality Tests | |
| |
| |
| |
RSA in Practice: Padding | |
| |
| |
| |
Attacks | |
| |
| |
| |
Implementation in Software and Hardware | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
Public-Key Cryptosystems Based on the Discrete Logarithm Problem | |
| |
| |
| |
Difne-Hellman Key Exchange | |
| |
| |
| |
Some Algebra | |
| |
| |
| |
Groups | |
| |
| |
| |
Cyclic Groups | |
| |
| |
| |
Subgroups | |
| |
| |
| |
The Discrete Logarithm Problem | |
| |
| |
| |
The Discrete Logarithm Problem in Prime Fields | |
| |
| |
| |
The Generalized Discrete Logarithm Problem | |
| |
| |
| |
Attacks Against the Discrete Logarithm Problem | |
| |
| |
| |
Security of the Difne-Hellman Key Exchange | |
| |
| |
| |
The Elgamal Encryption Scheme | |
| |
| |
| |
From Difne-Hellman Key Exhange to Elgamal Encryption | |
| |
| |
| |
The Elgamal Protocol | |
| |
| |
| |
Computational Aspects | |
| |
| |
| |
Security | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
Elliptic Curve Cryptosystems | |
| |
| |
| |
How to Compute with Elliptic Curves | |
| |
| |
| |
Definition of Elliptic Curves | |
| |
| |
| |
Group Operations on Elliptic Curves | |
| |
| |
| |
Building a Discrete Logarithm Problem with Elliptic Curves | |
| |
| |
| |
Difne-Hellman Key Exchange with Elliptic Curves | |
| |
| |
| |
Security | |
| |
| |
| |
Implementation in Software and Hardware | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems256 | |
| |
| |
| |
Digital Signatures | |
| |
| |
| |
Introduction | |
| |
| |
| |
Odd Colors for Cars, or: Why Symmetric Cryptography Is Not Sufficient | |
| |
| |
| |
Principles of Digital Signatures | |
| |
| |
| |
Security Services | |
| |
| |
| |
The RSA Signature Scheme | |
| |
| |
| |
Schoolbook RSA Digital Signature | |
| |
| |
| |
Computational Aspects | |
| |
| |
| |
Security | |
| |
| |
| |
The Elgamal Digital Signature Scheme | |
| |
| |
| |
Schoolbook Elgamal Digital Signature | |
| |
| |
| |
Computational Aspects | |
| |
| |
| |
Security | |
| |
| |
| |
The Digital Signature Algorithm (DSA) | |
| |
| |
| |
The DSA Algorithm | |
| |
| |
| |
Computational Aspects | |
| |
| |
| |
Security | |
| |
| |
| |
The Elliptic Curve Digital Signature Algorithm (ECDSA) | |
| |
| |
| |
The ECDSA Algorithm | |
| |
| |
| |
Computational Aspects | |
| |
| |
| |
Security | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
Hash Functions | |
| |
| |
| |
Motivation: Signing Long Messages | |
| |
| |
| |
Security Requirements of Hash Functions | |
| |
| |
| |
Preimage Resistance or One-Wayness | |
| |
| |
| |
Second Preimage Resistance or Weak Collision Resistance | |
| |
| |
| |
Collision Resistance and the Birthday Attack | |
| |
| |
| |
Overview of Hash Algorithms | |
| |
| |
| |
Dedicated Hash Functions: The MD4 Family | |
| |
| |
| |
Hash Functions from Block Ciphers | |
| |
| |
| |
The Secure Hash Algorithm SHA-1 | |
| |
| |
| |
Preprocessing | |
| |
| |
| |
Hash Computation | |
| |
| |
| |
Implementation | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
Message Authentication Codes (MACs) | |
| |
| |
| |
Principles of Message Authentication Codes | |
| |
| |
| |
MACs from Hash Functions: HMAC | |
| |
| |
| |
MACs from Block Ciphers: CBC-MAC | |
| |
| |
| |
Galois Counter Message Authentication Code (GMAC) | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lessons Learned | |
| |
| |
Problems | |
| |
| |
| |
Key Establishment | |
| |
| |
| |
Introduction | |
| |
| |
| |
Some Terminology | |
| |
| |
| |
Key Freshness and Key Derivation | |
| |
| |
| |
The n2 Key Distribution Problem | |
| |
| |
| |
Key Establishment Using Symmetric-Key Techniques | |
| |
| |
| |
Key Establishment with a Key Distribution Center | |
| |
| |
| |
Kerberos | |
| |
| |
| |
Remaining Problems with Symmetric-Key Distribution | |
| |
| |
| |
Key Establishment Using Asymmetric Techniques | |
| |
| |
| |
Man-in-the-Middle Attack | |
| |
| |
| |
Certificates | |
| |
| |
| |
Public-Key Infrastructures (PKI) and CAs | |
| |
| |
| |
Discussion and Further Reading | |
| |
| |
| |
Lssons Learned | |
| |
| |
Problems | |
| |
| |
References | |
| |
| |
Index | |