| Preface | p. ix |
| Introduction | p. 1 |
| Some aspects of secure communication | p. 1 |
| Julius Caesar's cipher | p. 2 |
| Some basic definitions | p. 3 |
| Three stages to decrytion: identification, breaking and setting | p. 4 |
| Codes and ciphers | p. 5 |
| Assessing the strength of a cipher system | p. 7 |
| Error detecting and correcting codes | p. 8 |
| Other methods of concealing messages | p. 9 |
| Modular arithmetic | p. 10 |
| Modular addition and subtraction of letters | p. 11 |
| Gender | p. 11 |
| End matter | p. 12 |
| From Julius Caesar to simple substitution | p. 13 |
| Julius Caesar ciphers and their solution | p. 13 |
| Simple substitution ciphers | p. 15 |
| How to solve a simple substitution cipher | p. 17 |
| Letter frequencies in languages other than English | p. 24 |
| How many letters are needed to solve a simple substitution cipher? | p. 26 |
| Polyalphabetic systems | p. 28 |
| Strengthening Julius Caesar: Vigenere ciphers | p. 28 |
| How to solve a Vigenere cipher | p. 30 |
| Indicators | p. 33 |
| Depths | p. 34 |
| Recognising 'depths' | p. 34 |
| How much text do we need to solve a Vigenere cipher? | p. 37 |
| Jefferson's cylinder | p. 37 |
| Jigsaw ciphers | p. 40 |
| Transpositions | p. 40 |
| Simple transposition | p. 40 |
| Double transposition | p. 44 |
| Other forms of transposition | p. 48 |
| Assessment of the security of transposition ciphers | p. 51 |
| Double encipherment in general | p. 52 |
| Two-letter ciphers | p. 54 |
| Monograph to digraph | p. 54 |
| MDTM ciphers | p. 56 |
| Digraph to digraph | p. 58 |
| Playfair encipherment | p. 59 |
| Playfair decipherment | p. 60 |
| Cryptanalytic aspects of Playfair | p. 61 |
| Double Playfair | p. 61 |
| Codes | p. 64 |
| Characteristics of codes | p. 64 |
| One-part and two-part codes | p. 65 |
| Code plus additive | p. 67 |
| Ciphers for spies | p. 72 |
| Stencil ciphers | p. 73 |
| Book ciphers | p. 75 |
| Letter frequencies in book ciphers | p. 79 |
| Solving a book cipher | p. 79 |
| Indicators | p. 86 |
| Disastrous errors in using a book cipher | p. 86 |
| 'Garbo"s ciphers | p. 88 |
| One-time pad | p. 92 |
| Producing random numbers and letters | p. 94 |
| Random sequences | p. 94 |
| Producing random sequences | p. 95 |
| Coin spinning | p. 95 |
| Throwing dice | p. 96 |
| Lottery type draws | p. 97 |
| Cosmic rays | p. 97 |
| Amplifier noise | p. 97 |
| Pseudo-random sequences | p. 98 |
| Linear recurrences | p. 99 |
| Using a binary stream of key for encipherment | p. 100 |
| Binary linear sequences as key generators | p. 101 |
| Cryptanalysis of a linear recurrence | p. 104 |
| Improving the security of binary keys | p. 104 |
| Pseudo-random number generators | p. 106 |
| The mid-square method | p. 106 |
| Linear congruential generators | p. 107 |
| The Enigma cipher machine | p. 110 |
| Historical background | p. 110 |
| The original Enigma | p. 112 |
| Encipherment using wired wheels | p. 116 |
| Encipherment by the Enigma | p. 118 |
| The Enigma plugboard | p. 121 |
| The Achilles heel of the Enigma | p. 121 |
| The indicator 'chains' in the Enigma | p. 125 |
| Aligning the chains | p. 128 |
| Identifying R1 and its setting | p. 128 |
| Doubly enciphered Enigma messages | p. 132 |
| The Abwehr Enigma | p. 132 |
| The Hagelin cipher machine | p. 133 |
| Historical background | p. 133 |
| Structure of the Hagelin machine | p. 134 |
| Encipherment on the Hagelin | p. 135 |
| Choosing the cage for the Hagelin | p. 138 |
| The theoretical 'work factor' for the Hagelin | p. 142 |
| Solving the Hagelin from a stretch of key | p. 143 |
| Additional features of the Hagelin machine | p. 147 |
| The slide | p. 147 |
| Identifying the slide in a cipher message | p. 148 |
| Overlapping | p. 148 |
| Solving the Hagelin from cipher texts only | p. 150 |
| Beyond the Enigma | p. 153 |
| The SZ42: a pre-electronic machine | p. 153 |
| Description of the SZ42 machine | p. 155 |
| Encipherment on the SZ42 | p. 155 |
| Breaking and setting the SZ42 | p. 158 |
| Modifications to the SZ42 | p. 159 |
| Public key cryptography | p. 161 |
| Historical background | p. 161 |
| Security issues | p. 163 |
| Protection of programs and data | p. 163 |
| Encipherment of programs, data and messages | p. 164 |
| The key distribution problem | p. 166 |
| The Diffie-Hellman key exchange system | p. 166 |
| Strength of the Diffie-Hellman system | p. 168 |
| Encipherment and the internet | p. 170 |
| Generalisation of simple substitution | p. 170 |
| Factorisation of large integers | p. 171 |
| The standard method of factorisation | p. 172 |
| Fermat's 'Little Theorem' | p. 174 |
| The Fermat-Euler Theorem (as needed in the RSA system) | p. 175 |
| Encipherment and decipherment keys in the RSA system | p. 175 |
| The encipherment and decipherment processes in the RSA system | p. 178 |
| How does the key-owner reply to correspondents? | p. 182 |
| The Data Encryption Standard (DES) | p. 183 |
| Security of the DES | p. 184 |
| Chaining | p. 186 |
| Implementation of the DES | p. 186 |
| Using both RSA and DES | p. 186 |
| A salutary note | p. 187 |
| Beyond the DES | p. 187 |
| Authentication and signature verification | p. 188 |
| Elliptic curve cryptography | p. 189 |
| Appendix | p. 190 |
| Solutions to problems | p. 218 |
| References | p. 230 |
| Name index | p. 235 |
| Subject index | p. 237 |
| Table of Contents provided by Syndetics. All Rights Reserved. |