| |
| |
Preface | |
| |
| |
| |
Overview of Cryptography and Its Applications | |
| |
| |
| |
Secure Communications | |
| |
| |
| |
Cryptographic Applications | |
| |
| |
| |
Classical Cryptosystems | |
| |
| |
| |
Shift Ciphers | |
| |
| |
| |
Affine Ciphers | |
| |
| |
| |
The Vigenere Cipher | |
| |
| |
| |
Substitution Ciphers | |
| |
| |
| |
Sherlock Holmes | |
| |
| |
| |
The Playfair and ADFGX Ciphers | |
| |
| |
| |
Block Ciphers | |
| |
| |
| |
Binary Numbers and ASCII | |
| |
| |
| |
One-Time Pads | |
| |
| |
| |
Pseudo-random Bit Generation | |
| |
| |
| |
LFSR Sequences | |
| |
| |
| |
Enigma | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Problems | |
| |
| |
| |
Basic Number Theory | |
| |
| |
| |
Basic Notions | |
| |
| |
| |
Solving ax + by = d | |
| |
| |
| |
Congruences | |
| |
| |
| |
The Chinese Remainder Theorem | |
| |
| |
| |
Modular Exponentiation | |
| |
| |
| |
Fermat and Euler | |
| |
| |
| |
Primitive Roots | |
| |
| |
| |
Inverting Matrices Mod n | |
| |
| |
| |
Square Roots Mod n | |
| |
| |
| |
Legendre and Jacobi Symbols | |
| |
| |
| |
Finite Fields | |
| |
| |
| |
Continued Fractions | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Problems | |
| |
| |
| |
The Data Encryption Standard | |
| |
| |
| |
Introduction | |
| |
| |
| |
A Simplified DES-Type Algorithm | |
| |
| |
| |
Differential Cryptanalysis | |
| |
| |
| |
DES | |
| |
| |
| |
Modes of Operation | |
| |
| |
| |
Breaking DES | |
| |
| |
| |
Meet-in-the-Middle Attacks | |
| |
| |
| |
Password Security | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Problems | |
| |
| |
| |
The Advanced Encryption Standard: Rijndael | |
| |
| |
| |
The Basic Algorithm | |
| |
| |
| |
The Layers | |
| |
| |
| |
Decryption | |
| |
| |
| |
Design Considerations | |
| |
| |
| |
Exercises | |
| |
| |
| |
The RSA Algorithm | |
| |
| |
| |
The RSA Algorithm | |
| |
| |
| |
Attacks on RSA | |
| |
| |
| |
Primality Testing | |
| |
| |
| |
Factoring | |
| |
| |
| |
The RSA Challenge | |
| |
| |
| |
An Application to Treaty Verification | |
| |
| |
| |
The Public Key Concept | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Problems | |
| |
| |
| |
Discrete Logarithms | |
| |
| |
| |
Discrete Logarithms | |
| |
| |
| |
Computing Discrete Logs | |
| |
| |
| |
Bit Commitment | |
| |
| |
| |
Diffie-Hellman Key Exchange | |
| |
| |
| |
The ElGamal Public Key Cryptosystem | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Problems | |
| |
| |
| |
Hash Functions | |
| |
| |
| |
Hash Functions | |
| |
| |
| |
A Simple Hash Example | |
| |
| |
| |
The Secure Hash Algorithm | |
| |
| |
| |
Birthday Attacks | |
| |
| |
| |
Multicollisions | |
| |
| |
| |
The Random Oracle Model | |
| |
| |
| |
Using Hash Functions to Encrypt | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Problems | |
| |
| |
| |
Digital Signatures | |
| |
| |
| |
RSA Signatures | |
| |
| |
| |
The ElGamal Signature Scheme | |
| |
| |
| |
Hashing and Signing | |
| |
| |
| |
Birthday Attacks on Signatures | |
| |
| |
| |
The Digital Signature Algorithm | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Problems | |
| |
| |
| |
Security Protocols | |
| |
| |
| |
Intruders-in-the-Middle and Impostors | |
| |
| |
| |
Key Distribution | |
| |
| |
| |
Kerberos | |
| |
| |
| |
Public Key Infrastructures (PKI) | |
| |
| |
| |
X.509 Certificates | |
| |
| |
| |
Pretty Good Privacy | |
| |
| |
| |
SSL and TLS | |
| |
| |
| |
Secure Electronic Transaction | |
| |
| |
| |
Exercises | |
| |
| |
| |
Digital Cash | |
| |
| |
| |
Digital Cash | |
| |
| |
| |
Exercises | |
| |
| |
| |
Secret Sharing Schemes | |
| |
| |
| |
Secret Splitting | |
| |
| |
| |
Threshold Schemes | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Problems | |
| |
| |
| |
Games | |
| |
| |
| |
Flipping Coins over the Telephone | |
| |
| |
| |
Poker over the Telephone | |
| |
| |
| |
Exercises | |
| |
| |
| |
Zero-Knowledge Techniques | |
| |
| |
| |
The Basic Setup | |
| |
| |
| |
The Feige-Fiat-Shamir Identification Scheme | |
| |
| |
| |
Exercises | |
| |
| |
| |
Information Theory | |
| |
| |
| |
Probability Review | |
| |
| |
| |
Entropy | |
| |
| |
| |
Huffman Codes | |
| |
| |
| |
Perfect Secrecy | |
| |
| |
| |
The Entropy of English | |
| |
| |
| |
Exercises | |
| |
| |
| |
Elliptic Curves | |
| |
| |
| |
The Addition Law | |
| |
| |
| |
Elliptic Curves Mod p | |
| |
| |
| |
Factoring with Elliptic Curves | |
| |
| |
| |
Elliptic Curves in Characteristic 2 | |
| |
| |
| |
Elliptic Curve Cryptosystems | |
| |
| |
| |
Identity-Based Encryption | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Problems | |
| |
| |
| |
Lattice Methods | |
| |
| |
| |
Lattices | |
| |
| |
| |
Lattice Reduction | |
| |
| |
| |
An Attack on RSA | |
| |
| |
| |
NTRU | |
| |
| |
| |
Exercises | |
| |
| |
| |
Error Correcting Codes | |
| |
| |
| |
Introduction | |
| |
| |
| |
Error Correcting Codes | |
| |
| |
| |
Bounds on General Codes | |
| |
| |
| |
Linear Codes | |
| |
| |
| |
Hamming Codes | |
| |
| |
| |
Golay Codes | |
| |
| |
| |
Cyclic Codes | |
| |
| |
| |
BCH Codes | |
| |
| |
| |
Reed-Solomon Codes | |
| |
| |
| |
The McEliece Cryptosystem | |
| |
| |
| |
Other Topics | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Problems | |
| |
| |
| |
Quantum Techniques in Cryptography | |
| |
| |
| |
A Quantum Experiment | |
| |
| |
| |
Quantum Key Distribution | |
| |
| |
| |
Shor's Algorithm | |
| |
| |
| |
Exercises | |
| |
| |
| |
Mathematica Examples | |
| |
| |
| |
Getting Started with Mathematica | |
| |
| |
| |
Some Commands | |
| |
| |
| |
Examples for Chapter 2 | |
| |
| |
| |
Examples for Chapter 3 | |
| |
| |
| |
Examples for Chapter 6 | |
| |
| |
| |
Examples for Chapter 8 | |
| |
| |
| |
Examples for Chapter 12 | |
| |
| |
| |
Examples for Chapter 13 | |
| |
| |
| |
Examples for Chapter 16 | |
| |
| |
| |
Maple Examples | |
| |
| |
| |
Getting Started with Maple | |
| |
| |
| |
Some Commands | |
| |
| |
| |
Examples for Chapter 2 | |
| |
| |
| |
Examples for Chapter 3 | |
| |
| |
| |
Examples for Chapter 6 | |
| |
| |
| |
Examples for Chapter 8 | |
| |
| |
| |
Examples for Chapter 12 | |
| |
| |
| |
Examples for Chapter 13 | |
| |
| |
| |
Examples for Chapter 16 | |
| |
| |
| |
Matlab Examples | |
| |
| |
| |
Getting Started with Matlab | |
| |
| |
| |
Examples for Chapter 2 | |
| |
| |
| |
Examples for Chapter 3 | |
| |
| |
| |
Examples for Chapter 6 | |
| |
| |
| |
Examples for Chapter 8 | |
| |
| |
| |
Examples for Chapter 12 | |
| |
| |
| |
Examples for Chapter 13 | |
| |
| |
| |
Examples for Chapter 16 | |
| |
| |
| |
Suggestions for Further Reading | |
| |
| |
Bibliography | |
| |
| |
Index | |