Chapter
Simple substitution ciphers
How to solve a simple substitution cipher
Letter frequencies in languages other than English
How many letters are needed to solve a simple substitution cipher?
Strengthening Julius Caesar: Vigenère ciphers
How to solve a Vigenère cipher
How much text do we need to solve a Vigenère cipher?
Other forms of transposition
Regular transposition boxes
Irregular transposition boxes
Assessment of the security of transposition ciphers
Double encipherment in general
Cryptanalytic aspects of Playfair
One-part and two-part codes
Letter frequencies in book ciphers
Disastrous errors in using a book cipher
8 Producing random numbers and letters
Producing random sequences
Using a binary stream of key for encipherment
Binary linear sequences as key generators
Cryptanalysis of a linear recurrence
Improving the security of binary keys
Pseudo-random number generators
Linear congruential generators
9 The Enigma cipher machine
Encipherment using wired wheels
Encipherment by the Enigma
The Achilles heel of the Enigma
The indicator ‘chains’ in the Enigma
Identifying R1 and its setting
Doubly enciphered Enigma messages
10 The Hagelin cipher machine
Structure of the Hagelin machine
Encipherment on the Hagelin
Choosing the cage for the Hagelin
The theoretical ‘work factor’ for the Hagelin
Solving the Hagelin from a stretch of key
Additional features of the Hagelin machine
Identifying the slide in a cipher message
Solving the Hagelin from cipher texts only
The SZ42: a pre-electronic machine
Description of the SZ42 machine
Breaking and setting the SZ42
Modifications to the SZ42
12 Public key cryptography
Protection of programs and data
Encipherment of programs, data and messages
The key distribution problem
The Diffie–Hellman key exchange system
Strength of the Diffie–Hellman system
13 Encipherment and the internet
Generalisation of simple substitution
Factorisation of large integers
The standard method of factorisation
Fermat’s ‘Little Theorem’
The Fermat–Euler Therorem (as needed in the RSA system)
Encipherment and decipherment keys in the RSA system
The encipherment and decipherment processes in the RSA system
How does the key-owner reply to correspondents?
The Data Encryption Standard (DES)
The encipherment procedure
The decipherment procedure
Implementation of the DES
Authentication and signature verification
Elliptic curve cryptography
Appendix Mathematical aspects
M1 Identical letters in substitution alphabets
M2 Reciprocal alphabets weaken security
M4 Euclid’s proof that there are an infinite number of primes
M5 The Fibonacci sequence
M6 Letter frequencies in a book cipher
M7 One-time pad cipher cannot be solved
M8 Frequency of occurrence in a page of random numbers
M9 Combining two biased streams of binary key
M10 Fibonacci type sequence
M11 Binary linear recurrences
M12 Recovery of a binary linear recurrence from a stretch of key
M13 Generation of pseudo-random numbers
M14 Wheel wirings in the Enigma
M15 Number of possible Enigma reflectors
M16 Probability of a ‘depth’ in Enigma messages
M17 Expected number of indicators needed to obtain full chains
M18 Number of possible Hagelin cages
M19 Maximum multiple of the kick which can occur when differencing Hagelin key
M20 Determination of Hagelin slide by correlation coefficient
M21 (Rate of increase of the number of primes)
M22 Calculating remainder using modular arithmetic
M23 Proof of the Fermat–Euler Theorem
M24 Finding numbers which are ‘probably’ primes
M25 The Euclidean Algorithm
M26 Efficiency of finding powers by repeated squaring
M27 Expected number of false hits in the ‘meet-in-the-middle’ attack on the DES
M28 Elliptic Curve Cryptography
2.1 (Simple substitution)
3.1 (Three Vigenère messages)
4.1 (Simple transposition)
4.2 (Number of possible transposition boxes)
4.3 (Boustrophedon rows in a transposition box)
7.1 (Stencil cipher solutions)
7.2 (Decrypt of a book cipher)
7.3 (Continuation of example solution)
8.1 (Recurrences of order 4)
8.2 (Cycling in a mid-squares random number generator)
8.3 (Cycle lengths in linear congruences)
11.1 (Pin-setting errors in the Hagelin and SZ42)
13.1 (Self-encipherment in the RSA system)