Cryptography is a great course to teach at the undergraduate level because it combines beautiful mathematics with a subject matter that most people seem to find inherently interesting. The allure of cryptography has led to a proliferation of books on the subject, ranging from fairly mathematics-oriented texts that are intended for an upper-level audience of mathematics majors (e.g., *Introduction to Mathematical Cryptography* by Hoffstein, Pipher and Silverman) to books that are comprehensible to a general reader (e.g., *Cyptology: Classical and Modern with Maplets* by Klima and Sigmon) and which focus on history and interesting stories. The book under review is, on this scale, somewhere in the middle; it is intended to be comprehensible to non-majors, but it does address some fairly sophisticated mathematics.

The author describes the prerequisites for the book as “high school algebra and a willingness to think really hard about it. There’s no trigonometry here, no calculus, no differential equations.” I think this is generally true, with some mild caveats. First, calculus actually does appear briefly in the book, in a section on elliptic curves, but the appearance is quick and can easily be skipped. Second, the quoted statement, notwithstanding the “think really hard about it” qualification, may underestimate the extent to which some real mathematics is discussed here. Based on my experiences teaching general-education audiences at Iowa State University, for example, I think that many of these students will have more difficulty with the mathematics than the quoted statement might suggest.

This isn’t the fault of the author, who has taken pains to make the material as clear as possible while remaining honest about it. The fact is, the author wants to discuss some real mathematics, and a great many non-majors who don’t have an affinity for mathematics might find the material heavy going. People whose idea of a mathematical challenge is using the quadratic formula might be taken aback by concepts such as Fermat’s Little Theorem or elliptic curves, no matter how substantial the expository skills of the author.

The book begins with the simplest kind of ciphers, based on substitution, in chapter 1 and then generalizes this to polyalphabetic substitution ciphers in chapter 2. Subsequent chapters discuss transposition ciphers, stream ciphers, ciphers based on exponentiation, and various public-key ciphers (RSA, ElGamal, and elliptic curve ciphers). Of course, these are broad categories, and within each one, the author discusses a number of different ciphers, giving both interesting historical discussions and mathematical analysis. A final chapter is entitled “The Future of Cryptography” and discusses, among other issues, quantum computing and quantum cryptography.

The mathematics necessary to understand these ideas is developed as necessary. This includes basic divisibility theory (including the Euclidean algorithm), modular arithmetic (including Fermat’s little theorem, the Euler phi function, and discrete logarithms), permutations, basic probability and statistics, and some elementary theory of elliptic curves.

There is also a lot of interesting stuff at the end of the book, including about 40 pages of detailed notes for each chapter, an annotated list of books suggested for further reading, and, in addition, an extensive bibliography. I thought the “Suggestions for Further Reading” was quite informative, and wish that more authors engaged in the practice of discussing, rather than just listing, other things for students to read.

One thing, however, that this book *lacks *is exercises. There are none at all, which could pose a serious drawback to anybody thinking of using this as a text for a course.

To summarize and conclude: the author covers a lot of interesting topics, and he does so with considerable clarity and enthusiasm. Notwithstanding this, however, this book may well be too demanding for use as a text for a “general mathematics” course (such as one offered to give non-majors a chance to fulfill a graduation requirement without taking calculus). It might work more satisfactorily, though, as a text for an honors seminar or other course for higher-ability students.

Mark Hunacek (mhunacek@iastate.edu) teaches mathematics at Iowa State University.