This text introduces cryptography, from its earliest roots to cryptosystems used today for secure online communication.

Beginning with classical ciphers and their cryptanalysis, this book proceeds to focus on modern public key cryptosystems such as Diffie-Hellman, ElGamal, RSA, and elliptic curve cryptography with an analysis of vulnerabilities of these systems and underlying mathematical issues such as factorization algorithms. Specialized topics such as zero knowledge proofs, cryptographic voting, coding theory, and new research are covered in the final section of this book.

Aimed at undergraduate students, this book contains a large selection of problems, ranging from straightforward to difficult, and can be used as a textbook for classes as well as self-study. Requiring only a solid grounding in basic mathematics, this book will also appeal to advanced high school students and amateur mathematicians interested in this fascinating and topical subject.

#### About the authors

**Simon Rubinstein-Salzedo** received his PhD in mathematics from Stanford University in 2012. Afterwards, he taught at Dartmouth College and Stanford University. In 2015, he founded Euler Circle, a mathematics institute in the San Francisco Bay Area, dedicated to teaching college-level mathematics classes to advanced high-school students, as well as mentoring them on mathematics research. His research interests include number theory, algebraic geometry, combinatorics, probability, and game theory.