Review of an introduction to mathematical cryptography by Jeffrey Hoffstein, Jill Pipher, and Joseph Silverman Springer-Verlag, 2008

The mathematics underlying public-key cryptography has been growing steadily more complex over the past thirty years. Historically, the math involved in cryptography (public-key cryptography in particular) has been focused primarily on basic number theory and algebra, but with the introduction of lattice-based, elliptic-curve, and most recently pairing-based, cryptography, people in the field are dealing with complex mathematical objects that go far beyond the scope of an introductory algebra course. As a result, it has been quite difficult (in fact, I would say impossible) to find an explanation of all of these different areas of mathematics in the same book. In this book, the authors finally provide us with a clear and approachable explanation of a wide variety of cryptographically relevant areas such as finite fields, polynomial rings, lattices, and elliptic curves. In addition, the authors assume no mathematical background (albeit a fairly high level of mathematical sophistication, especially in later chapters), yet still manage to provide rigorous proofs for almost all of the theorems in the book. Finally, adding to these already significant accomplishments, the authors manage to appeal to the more “computer science” side of things as well. For almost every algorithm they introduce, the authors provide pseudocode, runtime analysis, and multiple sample runs of the algorithm to make sure the reader really understands what is going on. Because of its mathematical nature, the book focuses almost entirely on public-key cryptography, and even more specifically on encryption schemes and, at the end, digital signatures. There are brief sections at the end on other topics such as pseudorandomness, hash functions, quantum computing, etc.; these sections are not meant to be rigorous, however, but to serve as a jumping-off point for any further research into the topic.