| |
| |
Acknowledgments | |
| |
| |
Introduction | |
| |
| |
| |
Simple Ciphers | |
| |
| |
Monoalphabetic Ciphers | |
| |
| |
Keying | |
| |
| |
Keyed Alphabets | |
| |
| |
ROT13 | |
| |
| |
Klingon | |
| |
| |
Polyalphabetic Ciphers | |
| |
| |
Vigenere Tableau | |
| |
| |
Transposition Ciphers | |
| |
| |
Columnar Transpositions | |
| |
| |
Double Columnar Transpositions | |
| |
| |
Cryptanalysis | |
| |
| |
Breaking Monoalphabetic Ciphers | |
| |
| |
Frequency Analysis | |
| |
| |
Index of Coincidence | |
| |
| |
Other Issues | |
| |
| |
Breaking Polyalphabetic Ciphers | |
| |
| |
Breaking Columnar Transposition Ciphers | |
| |
| |
Breaking Double Columnar Transposition Ciphers | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
| |
Number Theoretical Ciphers | |
| |
| |
Probability | |
| |
| |
Permutations and Choices | |
| |
| |
Dependence | |
| |
| |
Fun with Poker | |
| |
| |
The Birthday Paradox | |
| |
| |
Cryptographic Hashes | |
| |
| |
Number Theory Refresher Course | |
| |
| |
Divisibility and Prime Numbers | |
| |
| |
Congruences | |
| |
| |
Algebra Refresher Course | |
| |
| |
Definitions | |
| |
| |
Finite Field Inverses | |
| |
| |
Factoring-Based Cryptography | |
| |
| |
The RSA Algorithm | |
| |
| |
Discrete Logarithm-Based Cryptography | |
| |
| |
The Diffie-Hellman Algorithm | |
| |
| |
Elliptic Curves | |
| |
| |
Addition of Points | |
| |
| |
Elliptic Curve Cryptography | |
| |
| |
Elliptic Curve Diffie-Hellman | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
| |
Factoring and Discrete Logarithms | |
| |
| |
Factorization | |
| |
| |
Algorithm Theory | |
| |
| |
Notation | |
| |
| |
A Crash Course in Python | |
| |
| |
Exponential Factoring Methods | |
| |
| |
Brute-Force | |
| |
| |
Analysis | |
| |
| |
Fermat's Difference of Squares | |
| |
| |
Analysis of Fermat's Difference of Squares | |
| |
| |
Pollard's [rho] | |
| |
| |
Analysis of Pollard's [rho] | |
| |
| |
Pollard's p - 1 | |
| |
| |
Analysis of Pollard's p - 1 | |
| |
| |
Square Forms Factorization | |
| |
| |
Analysis of SQUFOF | |
| |
| |
Elliptic Curve Factorization Method | |
| |
| |
Analysis of ECM | |
| |
| |
Subexponential Factoring Methods | |
| |
| |
Continued Fraction Factorization | |
| |
| |
Analysis of CFRAC | |
| |
| |
Sieving Methods | |
| |
| |
Discrete Logarithms | |
| |
| |
Brute-Force-Methods | |
| |
| |
Baby-Step Giant-Step Method | |
| |
| |
Baby-Step Giant-Step Analysis | |
| |
| |
Pollard's [rho] for Discrete Logarithms | |
| |
| |
Analysis of Pollard's [rho] for Discrete Logarithms | |
| |
| |
Pollard's [gamma] for Discrete Logarithms | |
| |
| |
Analysis of Pollard's [gamma] | |
| |
| |
Index Calculus Method | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
| |
Block Ciphers | |
| |
| |
Operations on Bits, Bytes, Words | |
| |
| |
Operations | |
| |
| |
Code | |
| |
| |
Product Ciphers | |
| |
| |
Substitutions and Permutations | |
| |
| |
S-Box | |
| |
| |
P-Box | |
| |
| |
Shift Registers | |
| |
| |
Substitution-Permutation Network | |
| |
| |
EASY1 Cipher | |
| |
| |
Python Implementation | |
| |
| |
Feistel Structures | |
| |
| |
DES | |
| |
| |
DES Key Schedule | |
| |
| |
DES Round Function | |
| |
| |
Triple DES | |
| |
| |
DESX | |
| |
| |
FEAL | |
| |
| |
S-function | |
| |
| |
Key-Generating Function: f[subscript K] | |
| |
| |
Round Function: f | |
| |
| |
Key Scheduling | |
| |
| |
Blowfish | |
| |
| |
Blowfish Key Schedule | |
| |
| |
Blowfish Algorithm | |
| |
| |
Blowfish Round Function | |
| |
| |
Notes on Blowfish | |
| |
| |
AES / Rijndael | |
| |
| |
Rijndael Encryption Algorithm | |
| |
| |
SubBytes | |
| |
| |
ShiftRows | |
| |
| |
MixColumns | |
| |
| |
AddRoundKey | |
| |
| |
Rijndael Decryption Algorithm | |
| |
| |
Key Expansion | |
| |
| |
Notes on Rijndael | |
| |
| |
Block Cipher Modes | |
| |
| |
Electronic Code Book | |
| |
| |
Cipher Block Chaining | |
| |
| |
Cipher Feedback | |
| |
| |
Output Feedback | |
| |
| |
Counter Mode | |
| |
| |
Skipjack | |
| |
| |
Skipjack Encryption Algorithm | |
| |
| |
Skipjack Decryption Algorithm | |
| |
| |
Permutations | |
| |
| |
Message Digests and Hashes | |
| |
| |
Checksums | |
| |
| |
Cyclic Redundancy Checks | |
| |
| |
MD5 | |
| |
| |
SHA-1 | |
| |
| |
Random Number Generators | |
| |
| |
Bias | |
| |
| |
Linear Congruential Random Number Generator | |
| |
| |
One-Time Pad | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
| |
General Cryptanalytic Methods | |
| |
| |
Brute-Force | |
| |
| |
Time-Space Trade-offs | |
| |
| |
Meet-in-the-Middle Attack | |
| |
| |
Hellman Time-Space Trade-off | |
| |
| |
Time-Space Trade-off Success | |
| |
| |
Flaws | |
| |
| |
Multi-Table Trade-off | |
| |
| |
Rivest's Distinguished Endpoints | |
| |
| |
Rainbow Tables | |
| |
| |
Advantages of Rainbow Tables | |
| |
| |
Microsoft LAN Manager Password Hash | |
| |
| |
Slide Attacks | |
| |
| |
Slide Attacks on Feistel Ciphers | |
| |
| |
Advanced Slide Attacks | |
| |
| |
Cryptanalysis of Hash Functions | |
| |
| |
Cryptanalysis of Random Number Generators | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
| |
Linear Cryptanalysis | |
| |
| |
Overview | |
| |
| |
Matsui's Algorithms | |
| |
| |
Linear Expressions for S-Boxes | |
| |
| |
Matsui's Piling-up Lemma | |
| |
| |
Easy1 Cipher | |
| |
| |
Linear Expressions and Key Recovery | |
| |
| |
Linear Cryptanalysis of DES | |
| |
| |
Multiple Linear Approximations | |
| |
| |
Finding Linear Expressions | |
| |
| |
Linear Cryptanalysis Code | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
| |
Differential Cryptanalysis | |
| |
| |
Overview | |
| |
| |
Notation | |
| |
| |
S-Box Differentials | |
| |
| |
Combining S-Box Characteristics | |
| |
| |
Key Derivation | |
| |
| |
Differential Cryptanalysis Code | |
| |
| |
Differential Cryptanalysis of Feistel Ciphers | |
| |
| |
Differential Cryptanalysis of FEAL | |
| |
| |
Differential Cryptanalysis of DES | |
| |
| |
Analysis | |
| |
| |
Differential-Linear Cryptanalysis | |
| |
| |
Conditional Characteristics | |
| |
| |
Higher-Order Differentials | |
| |
| |
Truncated Differentials | |
| |
| |
Impossible Differentials | |
| |
| |
Boomerang Attack | |
| |
| |
Interpolation Attack | |
| |
| |
Related-Key Attack | |
| |
| |
Related-Key Attack on GOST | |
| |
| |
Related-Key Attack on 3DES | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Index | |