# CSCI-GA.3033-013 Fall 2013

Instructor: Victor Shoup

• Phone: (212) 998-3511
• Office: 418 WWH
• email: shoup@cs.nyu.edu

Mailing List

• It is important that you subscribe to the class mailing list, in order to receive announcements.
• To subscribe to the list, follow these instructions.

Lectures: Wednesdays, 5:10-7pm, room 517 WWH

Text: A Computational Introduction to Number Theory and Algebra (2nd edition), by Victor Shoup. Available for free on line.

Grading: There will be some problem sets.

Course description:

We shall study algorithms for computing with integers, polynomials, and other algebraic objects. These algorithms play an essential role in the technologies underlying modern systems for storing and transmitting data, especially in the areas of error correcting codes and cryptography, and we shall study some of these applications as well.

I'd like to spend most class time focusing on number theory and algorithms. The lectures should be easily accessible to students who have had undergraduate courses in abstract algebra, linear algebra, and probability theory; however, the textbook for the course develops all of the necessary mathematics from scratch, and so students with some gaps in their mathematical background can fill any such gaps by reading the textbook.

It is also assumed that students have some basic background in algorithm design and analysis.

## Course Outline (tentative)

1. Some basic number theory
• Fundamental theorem of arithmetic
• Congruences
2. Arithmetic with large integers and applications
• Basic arithmetic
• Fast exponentiation
• Euclid's algorithm
• Chinese remaindering
• Rational reconstruction (including Chinese remaindering with errors)
• The RSA cryptosystem
3. The distribution of primes
• Chebyshev's theorem
• Bertrand's postulate
• Mertens' theorem
• The prime number theorem
4. Probabilistic algorithms for generating prime numbers and random factored numbers
• Kalai's algorithm
5. Probabilistic primality testing
• The Miller-Rabin test
6. Generators and discrete logarithms
• Finding generators mod p
• Simple algorithm for discrete logarithms mod p
7. Quadratic reciprocity and computing modular square roots
• The Legendre and Jacobi symbols
• Computing square roots mod p
8. Subexponential-time algorithms for discrete logarithms and factoring
• Smooth numbers
• Simple subexponential-time discrete logarithms
• Simple subexponential-time factoring
• Practical improvements (the quadratic sieve)
9. Polynomial arithmetic and applications
• Basic arithmetic
• Fast exponentiation
• Euclid's algorithm
• Chinese remaindering/polynomial interpolation
10. Linearly generated sequences
11. Finite Fields
12. Algorithms for finite fields
• Constructing irreducible polynomials
• Factoring polynomials
13. Deterministic primality testing
• The AKS primality test

Homework

1. Problem Set 1, due Wednesday, Sept. 25.
• Chapter 3: 26, 27, 28, 32, 35, 36, 37, 41
• Chapter 4: 6, 8, 9, 10
2. Problem Set 2, due Wednesday, Oct. 9
• Chapter 4: 18, 20, 21, 22, 23
• Chapter 10: 3, 4
3. Problem Set 3, due Wednesday, Oct. 23
• Chapter 8: 45
• Chapter 11: 5, 6, 7, 8, 9
4. Problem Set 4, due Wednesday, Nov. 13
• Chapter 14: 18, 19, 20
• Chapter 15: 1, 2, 3, 4, 5
5. Problem Set 5, due Wednesday, Nov. 27
• Chapter 17: 3, 19, 21, 22, 23, 24