This is a text for an upper undergraduate/lower graduate course in mathematical cryptography. For background information and a description of the book’s contents, please see our review of the first edition.

In addition to the usual changes one associates with a new edition (some rearrangement of topics, improvements in exposition, correction of minor errors, additional exercises), there has been some new textual material added, specifically two new sections in the final “additional topics” chapter on digital cash and bitcoin, and homomorphic encryption. The sections in this final chapter are quite short, only about three or four pages each, and are intended to provide a quick introduction to some topics that could not be developed extensively in the main text. All told, this new edition is about 15 pages longer than the first.

In view of the review of the first edition, there is no need here for an extended discussion of the book, but a few comments seem appropriate. First, there is the matter of prerequisites for the book. The authors state in the preface that “the book can be used in courses for students with no previous exposure to abstract algebra or number theory” and in fact go so far as to say that “this book makes a good text for an introduction-to-proofs course.” I think the first statement needs to be taken with a dose of skepticism and the second should be disregarded altogether.

With regard to the first statement, it is true that a lot of background material is covered in the text, but it is done at a pace and with a degree of sophistication that would, I think, put somebody with no prior experience with the material at something of a disadvantage. In chapter one, for example, the authors review, in the space of about 25 pages, a selection of topics in basic number theory that would probably take many weeks to cover in an introductory course on that subject: divisibility, the Euclidean algorithm (complete with a discussion of the efficiency of the algorithm), greatest common divisor, modular arithmetic, primes, congruences, Fermat’s little theorem, primitive roots, and finite fields. (This first chapter also contains additional material, including a brief overview of the history of cryptography and some of the more basic cryptosystems.)

As for the second statement, I cannot seriously imagine this book being used as a text for an ”introduction to proofs” course. There is no real discussion of basic logic or proof techniques, and the proofs that appear, though clearly presented, are not done as slowly and with the degree of hand-holding that one would expect to see in such an introductory course. The very first theorem that appears in this book, for example, summarizes basic facts about divisibility, and its proof is left to the reader as an exercise. A page or two later, the authors mention the division algorithm, but also leave the proof of the existence and uniqueness of the quotient and remainder as an exercise for the reader. That’s asking an awful lot of a student with no prior exposure to proofs at all.

Another point that needs to be emphasized is that the focus of this book is very much on one particular aspect of the subject, namely public key cryptography. There are certainly good reasons for maintaining such a focus, and the authors provide a cogent explanation for their decision to do so, but it should be noted that this decision necessarily results in other topics being given less attention than some instructors may desire. In particular, there is not a great deal here on classical cryptography or some of the interesting historical aspects of the subject. The World War II Enigma machine, for example, is mentioned briefly but not explored at length. My guess is that many undergraduates would find such historical tidbits quite interesting, and I would thus recommend that any instructor using this book keep close at hand other texts such as *Secret History: The Story of Cryptography* by Bauer or Singh’s *The Codebreakers *as a source of supplementary material to liven up lectures. (In this connection, it should also be noted that the NSA offers a freely available pamphlet on the Enigma machine online.

All that being said, I do wish to make clear that there is a great deal to like about this book. It is very well written and quite clear. Topics are well-motivated, and there are a good number of examples and nicely chosen exercises. (The publisher’s webpage for the first edition had a password-protected solutions manual available, but that seems to have been taken down, and there is no manual linked to the webpage for the second edition.) An instructor of a fairly sophisticated undergraduate course in cryptography who wants to emphasize public key cryptography should definitely take a look at this book. However, the prerequisites for such a course should include, I think, successful completion of a good abstract algebra course that addressed the basic facts about number theory. Instructors of a less demanding course that does not impose such prerequisites might want to consider texts that a less-prepared student might find more accessible, such as Stanoyevitch’s *Introduction to Cryptography with Mathematical Foundations and Computer Implementation*.

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