This extremely reader-friendly textbook covers a broad range of practical topics in the intersection of abstract algebra and computer science. Cryptography is its primary focus, and it is an ideal self-study resource for well-prepared math majors, or graduate students in mathematical disciplines who have taken at least one course in algebra and want to find out more about applications in a computational setting.

First among these applications is public-key cryptography, and the (apparently) difficult problems on which their security depends. The presentation is logically self-contained: Chapter 1 covers all of the general algebraic facts that are used in the later work, while the relevant number theory and elliptic curves are introduced in Chapters 3 and 5 respectively. The results are developed rigorously, but without losing track of the practical details of implementation. For example, since we can’t use the RSA cryptosystem without generating large prime numbers, we learn the specifics of probabilistic and deterministic primality tests. When the necessary work has been done, the authors reliably pause to summarize, from beginning to end, the steps involved in solving a given problem as efficiently as possible.

In later chapters, the focus shifts to other discrete problems with a computer-science flavor: the combinatorics of words, automata, and combinatorial group theory. Throughout, the authors have shown admirable discipline by consistently presenting proofs of their claims in full detail, resisting the tempting shortcuts that can frustrate students hearing about a topic for the first time. The text is conversational and easy to read, and full of fruitful examples. The reader will also appreciate the book’s absolute accuracy (I could not find a single typo), its well-chosen notation, and its extensive index.

Each chapter ends with a well-chosen set of approachable problems, valuable to instructors and students alike. The authors have chosen to include full solutions to all of these problems in an appendix, a decision which will be welcomed by students and readers, though possibly not by instructors considering adopting the textbook.

Overall, authors Diekert, Kufleitner, Rosenberger, and Hertrampf have given us an excellent book on a fascinating area of mathematical practice. I warmly recommend it to readers interested in these topics.

James A. Swenson is a professor of mathematics at the University of Wisconsin-Platteville, where he spends most of his time teaching future engineers. He earned the Ph.D. at the University of Minnesota (Twin Cities), studying algebraic topology under the direction of Mark Feshbach. In his spare time, he sings in one choir and directs another.