Designed for an undergraduate lecture course, this textbook provides all of the background in arithmetic, polynomials, groups, fields, and elliptic curves that is required to understand real-life applications such as cryptography, secret sharing, error-correcting, fingerprinting, and compression of information. It explains in detail how these applications really work. The book uses the free GAP computational package, allowing the reader to develop intuition about computationally hard problems and giving insights into how computational complexity can be used to protect the integrity of data.
The first undergraduate textbook to cover such a wide range of applications, including some recent developments, this second edition has been thoroughly revised with the addition of new topics and exercises. Based on a one semester lecture course given to third year undergraduates, it is primarily intended for use as a textbook, while numerous worked examples and solved exercises also make it suitable for self-study.