As a subject, cryptology is a natural choice for an upper-level course for mathematics majors: it is interesting, useful, reasonably accessible to undergraduates, and provides an excellent illustration of the utility of other subjects that the student may have seen, such as linear and abstract algebra and number theory. However, it is not only math majors who are interested in cryptology; there is something about secret codes and ciphers which most people, including those with little or no training in mathematics, seem to find inherently fascinating. I still remember my enjoyment of short stories such as Poe’s The Gold Bug and Doyle’s The Adventure of the Dancing Men, read long before I started studying mathematics seriously. So, why not offer a course in the subject for non-majors, say as a general mathematics course offered to help fulfill a mathematics graduation requirement?
The present book is the authors’ nomination as a text for such a course. Klima, as the co-author of The Mathematics of Voting and Elections: A Hands-On Approach, has some experience with making interesting mathematics accessible to non-major undergraduates, and this most recent book does so nicely. The prerequisites are modest (no college-level mathematics is assumed), but a fair amount of interesting material is covered.
Starting with an introductory chapter which provides an overview of why one would want to study cryptology, and which defines some basic terms (including often-confused terms cryptography, cryptanalysis and cryptology; the first refers to making secret codes, the second refers to breaking codes, and the third encompasses the first two), the authors proceed through such topics as substitution, transposition, shift, and affine ciphers, as well as the Alberti, Vigenère, Hill, RSA, and ElGamal ciphers. There are also chapters on the AES (Advanced Encryption Standard) and message authentication. The necessary mathematical background for these topics — chiefly elementary number theory (particularly modular arithmetic), matrices, basic combinatorics and probability — is developed from scratch as needed.
All told, the authors have done an admirable job of balancing the competing goals of producing a text that can be read by people with limited mathematics background, but at the same time is maintained at a college level. This is not “cryptology for dummies”, watered down to the point of uselessness, but is instead a book that, though accessible, requires an appropriate amount of effort and thought on the part of the reader.
Klima and Sigmon’s concern with the likely lack of mathematical sophistication of the readership manifests itself in several ways. First, there is the selection of topics. Many books that are intended for an audience of majors (including Hoffstein, Pipher and Silverman’s An Introduction to Mathematical Cryptography, Garrett’s Making and Breaking Codes, and Trappe and Washington’s Introduction to Cryptography with Coding Theory), include chapters on more advanced topics, such as elliptic curves, lattice methods or quantum cryptography; this book does not. Also, the exercises in this book, though plentiful, do not call for the production of proofs. Instead, they involve computation or, on occasion, the production of a brief essay based on some outside reading. (Solutions to some, but not all, of the exercises, appear in an Appendix of about 35 pages.) Likewise, there are very few theorems that are formally stated as such in the text, and those that are, are accompanied not by formal proofs but by illustrative examples.
Several other distinctive features of the book should be explicitly mentioned. One, referred to in the title of the text, is the use of “Maplets”. These are essentially applets for Maple, and their use allows a student to make use of Maple without having to learn Maple syntax. These Maplets were produced using written Maple code, but since the authors produced them, the students don’t have to; they can just use the end product, which are windows into which they type information and click on buttons, thereby deriving the benefits of Maple without having to learn how to use it. These Maplets appear frequently throughout the book, but when they do, they appear in separate sections that are entirely independent of the rest of the book and, thus, can be skipped if an instructor does not want to use this technology. There are plenty of other worked out examples in the book that do not require anything more sophisticated than a calculator to follow.
Another noteworthy feature is a chapter discussing some historically interesting examples of ciphers from World War II: the Enigma machine and Navajo code. Following an unusually detailed multi-page description of how an Enigma machine worked (actually, two specific examples of Enigma machines are discussed) and the introduction of some background combinatorial principles, there is a section discussing the cryptanalysis of the Enigma; references are also given to both non-fictional and fictional works involving the machine, including the book Enigma by Robert Harris (and the subsequent movie of the same name based on it).
This is followed by a section on the Navajo code talkers used by the Americans in the Pacific during the war. These were Navajo servicemen who used their native language (described as “oral, very complex and virtually unknown to everyone outside the Navajo nation”) as a code. Because some words (like “Captain”) had no counterpart in the Navajo language, a literal English translation (“two silver bars”) was used instead; the Navajo code word for this is “besh-legai-nah-kih”. Because of these added phrases, as well as the fact that some uncommon words had to be translated a letter at a time using an encoded phonetic alphabet, the Navajo code consisted of approximately 800 words by the end of the war, and the code talkers had to know all these words by memory. (The Nicolas Cage movie Windtalkers is about the use of this code, and is mentioned briefly in an exercise in the text.) I can’t help but feel that many students would find this information very interesting.
The idea of writing a cryptography book for a non-major audience is not a new one; about ten years ago, for example, Thomas Barr wrote An Invitation to Cryptology, also intended for a general college audience. That book is still in print, according to the publisher’s webpage, and is in some ways comparable in tone and choice of topics to the Klima and Sigmon book, though there are some differences. The latter book appeared to me to be pitched at a somewhat higher level than Barr’s text, with topics developed in more depth. The use of Maplets is certainly another distinguishing feature, as is the detailed description of the Enigma machine (which is mentioned briefly, as part of a more general historical discussion, in the Barr text) and Navajo code talkers. In some ways, as well, the Barr text is starting to show its age. For example, it spends about ten pages discussing the Data Encryption Standard (DES), which was a U.S. Federal Information Processing Standard for encryption and was used extensively here in the United States and abroad, but which, after successful ways of attacking it were developed, was, at about the same time as the Barr text was being published, superseded by the Advanced Encryption Standard (AES), which is currently still in use and which is discussed at some length in this text.
This is a book that not only meets but exceeds its goal of being a suitable text for a course in cryptology for non-majors. It is highly recommended for anybody teaching such a course, and it certainly belongs in any good university library.
Mark Hunacek (firstname.lastname@example.org) teaches mathematics at Iowa State University.
Introduction to Cryptology
Cryptology in Practice
Why Study Cryptology?
Keyword Substitution Ciphers
A Maplet for Substitution Ciphers
Cryptanalysis of Substitution Ciphers
A Maplet for Cryptanalysis of Substitution Ciphers
A Maplet for Playfair Ciphers
Columnar Transposition Ciphers
A Maplet for Transposition Ciphers
Cryptanalysis of Transposition Ciphers
Maplets for Cryptanalysis of Transposition Ciphers
ADFGX and ADFGVX Ciphers
A Maplet for ADFGX and ADFGVX Ciphers
The Enigma Machine and Navajo Code
The Enigma Cipher Machine
A Maplet for the Enigma Cipher Machine
Cryptanalysis of the Enigma Cipher Machine
The Navajo Code
A Maplet for the Navajo Code
Shift and Affine Ciphers
A Maplet for Modular Reduction
A Maplet for Shift Ciphers
Cryptanalysis of Shift Ciphers
A Maplet for Cryptanalysis of Shift Ciphers
A Maplet for Affine Ciphers
Cryptanalysis of Affine Ciphers
A Maplet for Cryptanalysis of Affine Ciphers
Alberti and Vigenère Ciphers
A Maplet for Alberti Ciphers
A Maplet for Vigenère Keyword Ciphers
The Friedman Test
A Maplet for the Friedman Test
The Kasiski Test
A Maplet for the Kasiski Test
Cryptanalysis of Vigenère Keyword Ciphers
A Maplet for Cryptanalysis of Vigenère Keyword Ciphers
A Maplet for Matrix Multiplication
A Maplet for Hill Ciphers
Cryptanalysis of Hill Ciphers
A Maplet for Cryptanalysis of Hill Ciphers
Introduction to Public-Key Ciphers
Introduction to RSA Ciphers
The Euclidean Algorithm
Maplets for the Euclidean Algorithm
A Maplet for Modular Exponentiation
Maplets for RSA Ciphers
Cryptanalysis of RSA Ciphers
A Maplet for Cryptanalysis of RSA Ciphers
The RSA Factoring Challenges
The Diffie–Hellman Key Exchange
Maplets for the Diffie–Hellman Key Exchange
A Maplet for Discrete Logarithms
Maplets for ElGamal Ciphers
Cryptanalysis of ElGamal Ciphers
A Maplet for Cryptanalysis of ElGamal Ciphers
The Advanced Encryption Standard
Representations of Numbers
A Maplet for Base Conversions
A Maplet for Stream Ciphers
A Maplet for AES Ciphers
RSA Signatures with Hashing
Maplets for RSA Signatures
The Man-in-the-Middle Attack
A Maplet for the Man-in-the-Middle Attack
Maplets for X.509 Certificates
Hints or Answers to Selected Exercises