Computational Number Theory and Algebra
CSCIGA.3033013 Fall 2013
Instructor: Victor Shoup

Phone: (212) 9983511

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:107pm, 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)

Some basic number theory

Fundamental theorem of arithmetic

Congruences

Quadratic residues

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

The distribution of primes

Chebyshev's theorem

Bertrand's postulate

Mertens' theorem

The prime number theorem

Probabilistic algorithms for generating prime numbers and
random factored numbers

Probabilistic primality testing

Generators and discrete logarithms

Finding generators mod p

Simple algorithm for discrete logarithms mod p

Quadratic reciprocity and computing modular square roots

The Legendre and Jacobi symbols

Quadratic reciprocity

Computing square roots mod p

Subexponentialtime algorithms for discrete logarithms and factoring

Smooth numbers

Simple subexponentialtime discrete logarithms

Simple subexponentialtime factoring

Practical improvements (the quadratic sieve)

Polynomial arithmetic and applications

Basic arithmetic

Fast exponentiation

Euclid's algorithm

Chinese remaindering/polynomial interpolation

Linearly generated sequences

Finite Fields

Algorithms for finite fields

Constructing irreducible polynomials

Factoring polynomials

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