A Computational Introduction to Number Theory and Algebra

(3 reviews)


Victor Shoup, New York University

Pub Date: 2009

ISBN 13: 978-0-5215164-4-0

Publisher: Independent

Read This Book

Conditions of Use



  All reviews are licensed under a CC BY-ND license.

Learn more about reviews.


Reviewed by William McGovern, Professor, University of Washingon, on 8/22/2016.

As promised by the title, the book gives a very nice overview of a side range of topics in number theory and algebra (primarily the former, but with … read more



Reviewed by Michelle Manes, Associate Professor, University of Hawaii, on 8/22/2016.

The text is so comprehensive that it feels overwhelming. The author wanted to include all of the mathematics required beyond a standard calculus … read more



Reviewed by Emily Witt, Assistant Professor, University of Kansas, on 8/22/2016.

This text is an introduction to number theory and abstract algebra; based on its presentation, it appears appropriate for students coming from … read more


Table of Contents

Chapter 1: Basic properties of the integers

Chapter 2: Congruences

Chapter 3: Computing with large integers

Chapter 4: Euclid’s algorithm

Chapter 5: The distribution of primes

Chapter 6: Abelian groups

Chapter 7: Rings

Chapter 8: Finite and discrete probability distributions

Chapter 9: Probabilistic algorithms

Chapter 10: Probabilistic primality testing

Chapter 11: Finding generators and discrete logarithms in Z∗p 

Chapter 12: Quadratic reciprocity and computing modular square roots

Chapter 13: Modules and vector spaces

Chapter 14: Matrices

Chapter 15: Subexponential-time discrete logarithms and factoring

Chapter 16: More rings

Chapter 17: Polynomial arithmetic and applications

Chapter 18: Finite Fields

Chapter 19: Linearly generated sequences and applications

Chapter 20: Algorithms for finite fields

Chapter 21: Deterministic primality testing

About the Book

All of the mathematics required beyond basic calculus is developed “from scratch.” Moreover, the book generally alternates between “theory” and “applications”: one or two chapters on a particular set of purely mathematical concepts are followed by one or two chapters on algorithms and applications; the mathematics provides the theoretical underpinnings for the applications, while the applications both motivate and illustrate the mathematics. Of course, this dichotomy between theory and applications is not perfectly maintained: the chapters that focus mainly on applications include the development of some of the mathematics that is specific to a particular application, and very occasionally, some of the chapters that focus mainly on mathematics include a discussion of related algorithmic ideas as well.

The mathematical material covered includes the basics of number theory (including unique factorization, congruences, the distribution of primes, and quadratic reciprocity) and of abstract algebra (including groups, rings, fields, and vector spaces). It also includes an introduction to discrete probability theory—this material is needed to properly treat the topics of probabilistic algorithms and cryptographic applications. The treatment of all these topics is more or less standard, except that the text only deals with commutative structures (i.e., abelian groups and commutative rings with unity) — this is all that is really needed for the purposes of this text, and the theory of these structures is much simpler and more transparent than that of more general, non-commutative structures.

  • There are a few sections that are marked with a “(∗),” indicating that the material covered in that section is a bit technical, and is not needed else- where.
  • There are many examples in the text, which form an integral part of the book, and should not be skipped.
  • There are a number of exercises in the text that serve to reinforce, as well as to develop important applications and generalizations of, the material presented in the text.
  • Some exercises are underlined. These develop important (but usually simple) facts, and should be viewed as an integral part of the book. It is highly recommended that the reader work these exercises, or at the very least, read and understand their statements.
  • In solving exercises, the reader is free to use any previously stated results in the text, including those in previous exercises. However, except where otherwise noted, any result in a section marked with a “(∗),” or in §5.5, need not and should not be used outside the section in which it appears.
  • There is a very brief “Preliminaries” chapter, which fixes a bit of notation and recalls a few standard facts. This should be skimmed over by the reader.
  • There is an appendix that contains a few useful facts; where such a fact is used in the text, there is a reference such as “see §An,” which refers to the item labeled “An” in the appendix.

About the Contributors


Victor Shoup is a Professor in the Department of Computer Science at the Courant Institute of Mathematical Sciences, New York University.