In the information age, one of the most common applications of mathematics is cryptography. Throughout the twentieth century, mathematicians tried to develop a cogent theory to explain the various encryption schemes and try to measure their security. This book gives a nice overview of this theory. It mentions some of the history and presents the mathematical ideas in a precise manner.

The topics covered include: the key principles that an encryption scheme should satisfy as well as attack scenarios that they should survive, Shannon’s Theorem on perfect secrecy, Computationally-Secure Encryption, the use of pseudorandom functions to create CPA-Secure Encryption Schemes, creating Secure Message Authentication Codes and collision resistant hash functions (including the Markle-Damgård transform), combining encryption and authentication, design principles for constructing (modern) block ciphers, the theory behind the constructing pseudorandom objects, primality testing and implications for the RSA system, discrete logarithms and Diffie-Hellman problems, elliptic curve groups, algorithms for factoring (Pollard’s p–1 method, Pollard’s rho method, and the Quadratic Sieve, algorithms for computing discrete logarithms (the baby-step/giant-step method and the Pohlig-Hellman algorithm) , management and distribution of private keys, the Diffie-Hellman key exchange, Public-Key Encryption (including the issue of security), combinations of public- and private-key schemes, the RSA and El Gamal Encryption schemes, the use of trapdoor permutations, other Public-Key Encryption schemes (the Goldwasser-Micali scheme, the Rabin scheme, and the Paillier scheme), digital signatures , digital certificates, message integrity, and the Random Oracle Model in validating cryptographic schemes.

The book contains enough information to serve as a textbook for an undergraduate course as well as a graduate course. Also, since the authors intend for the material to be mathematically rigorous, appendices with appropriate mathematical background are included. Each chapter ends with a collection of exercises and a list of 149 references is included. If I could change one thing, it would be this; the authors use many acronyms (such as CPA for “chosen plaintext attack”), and while there is a list of common notation just before the appendices, not all terms are included. I think a more complete list might have been handy .

However, the greatest attribute is the fact that the material is presented in such a unified way. These are not just a collection of topics from cryptography, thrown together at random. One topic leads effortlessly to the next. As such, this is a virtually indispensible resource for modern cryptography.

Donald L. Vestal is an Assistant Professor of Mathematics at South Dakota State University. His interests include number theory, combinatorics, spending time with his family, and working on his hot sauce collection. He can be reached at Donald.Vestal(AT)sdstate.edu.