(first published in Great Britain in 1999, paperback edition published 2000)
As the author notes in the introduction, this book should properly (if less snappily) be called ‘The Code and Cipher Book’, because there is an important technical difference: codes involved scrambling a message at the level of words and phrases, while ciphers involve a deeper level of scrambling which operates at the level of individual letters. Ciphers are more useful than codes, because the keys tend to be small, easily distributed and concealed, while codes tend to require more conspicuous code-books, which can be quite large in order to accommodate all the possible plain-text phrases required and their equivalent code-words.
This is a pretty interesting book. It charts the history of cryptography in roughly chronological order, from mono-alphabetic substitution ciphers (which use one code alphabet to scramble a message) and the invention of frequency analysis onwards.
The first chapter starts with a description of the trial of Mary Queen of Scots on 15th October 1586, with a focus on the code which she allegedly used to communicate with traitorous co-conspirators in a plot to assassinate Queen Elizabeth I and install Mary on the English throne. If it could be broken, her guilt would be proven beyond all doubt; if it could not, she would be free and could not be executed for treason. This serves to introduce the very real power and importance of codes, ciphers, and cryptanalysis (the science/art of breaking codes and ciphers). Singh then goes back to the start of the history of secret writing: physical concealment of messages, as described by Herodotus when writing about the Greco-Persian wars in the fifth century BCE — a message carved on a block of wood and concealed under a layer of wax allowed the Greeks to gain a decisive advantage in the battle at Salamis. Singh then goes on to trace the development of ciphers (mostly mono-alphabetic substitution ciphers and transposition ciphers), which seemed impregnable until the development of frequency analysis in 750CE by Islamic scholars — the first cryptanalysts. This leads up to an account of the skulduggery and intellect involved in the cracking of the cipher of Mary Queen of Scots, which led to her execution on 8th February 1587.
The second chapter discusses the creation and breaking of a variety of ciphers that were stronger than mono-alphabetic substitution. These include the Great Cipher of Louis XIV (broken in the 1890s by Etienne Bazeries), the poly-alphabetic cipher codified (ehehe…) by Blaise de Vigenère and known as le chiffre indéchiffrable (lit. ‘indecipherable figure’) until its breaking by Charles Babbage in the 1850s. This discovery occurred around the time of the Crimean War, so for reasons of national security Babbage could not publicise his discovery. The credit for the cryptanalysis therefore went to one Friedrich Kasiski. The remainder of the chapter is given over to a discussion of the mystery of the Beale ciphers, which are probably a clever hoax but have nevertheless led to a great deal of activity by determined treasure hunters.
The third and fourth chapters discuss the mechanisation of code-making and code-breaking in the early-to-mid twentieth century. Particular focus is given in Chapter 3 to the Zimmerman telegram from World War One, the decipherment of which (by British intelligence) galvanised the US into declaring war on Germany in April 1917. The rest of Chapter 3 and all of Chapter 4 focus on the development and breaking of the Enigma machine cipher, from the work of Polish cryptographers before the Second World War to the work of the code-breakers of Bletchley Park, who used the Polish work as their foundation when tackling the ever-more-elaborate developments of Enigma.
The fifth chapter, probably my favourite, talks about language and how it can be considered as a code; the use of Navajo code-talkers by the American army in the Pacific theatre of the war is one example. The Navajo language was uniquely indecipherable to the Japanese army, ensuring the security of messages transmitted by the code-talkers. The rest of the chapter talks about the decipherment of two ancient languages: Ancient Egyptian hieroglyphs (with the aid of the Rosetta Stone as a ‘crib’) and the decipherment by Michael Ventris of Linear B, a very old script that turned out to be an archaic form of Greek being written using the script of an even more ancient language, Linear A, which has not (to date) been deciphered at all. Full details of the tale of Linear B can be found in The Decipherment of Linear B by John Chadwick.
Chapters 6 through 8 talk about the development of public key cryptography, modern unbreakable encryption, and possibilities for the future of cryptography. I have to admit that I found this section of the book quite difficult to follow; large primes (20+ digits) and modular arithmetic are not really my area.
The end-matter includes a glossary of terms, a list of further reading, and a collection of appendices which contain advice on frequency analysis, information on one-time pads and why their re-use is ill-advised, and discussions of types of cipher which did not receive much attention in the main text. Possibly my favourite of these is the Playfair cipher; while it is quite weak from a cryptographic point of view, I enjoy composing ciphers of this sort.
Overall, The Code Book is a good read whether you are a new initiate to the world of cryptography or you are experienced in this field. A good grounding in mathematics will aid comprehension of the final three chapters of the main text.