CS982-O: Computational Number Theory for Cryptographers

Credits: 3-0-0-9

 

Instructor:

Dr. Nitin Saxena / Dr. Manindra Agrawal 

 

· Major, Measurable Learning Objectives

 

Having successfully completed this course, the student will be able to:

 

· Learn how to design algorithms that require algebra

· Use libraries to do fast computations with integers, polynomials, and matrices

· Learn how error-correcting codes work 

· Learn how certain cryptographic primitives are designed and how they are broken

 

· Prerequisites and Co-requisites

 

ESC 101, ESO 207, (mathematical maturity with interest in algebra)

 

· Texts and Special Teaching Aids

 

Course notes, lecture slides, and other documentations will be provided to students by

the instructor. Self-study would be an important component of this course. Useful video tutorials will also be provided to students for self-learning. Programming will not be done formally, but students are encouraged to familiarize themselves with the existing implementations.

 

BOOKS, LECTURES

 

Book, A Computational Introduction to Number Theory and Algebra, Victor Shoup.
 

Book, Algorithmic Number Theory (Lattices, Number Fields, Curves and Cryptography), Edited by Joseph P. Buhler and Peter Stevenhagen.
 
 
Book, Modern Computer Algebra, von zur Gathen & Gerhard.
 
 
Book, Algorithmic Number Theory, Bach & Shallit.
 
 
Book, Finite Fields, Lidl & Niederreiter.
 
 
Course, Algebra and Computation, Madhu Sudan.
 
Course, Computational Number Theory and Algebra, Manindra Agrawal.

 

· Syllabus

 

The students will be exposed to the following topics, roughly in this order of 12 weeks:

1. Outline. Notation. Background.

2. GCD. Chinese remaindering. Fast polynomial multiplication.

3. Fast integer multiplication. Fast integer division. Fast gcd.

4. Fast matrix multiplication. Tensor rank.

5. Factorization over finite fields. 

6. Berlekamp, Cantor-Zassenhaus factoring algorithms.

7. Reed-Solomon code. List decoding. Bivariate polynomial factoring.

8. Kaltofen's blackbox multivariate factoring.

9. Integral polynomial factoring. LLL algo. Shortest vector in lattice. 

10. Lattice-based cryptography: eg. NTRU Cryptosystem.

11. Primality testing. RSA cryptosystem. Diffie-Hellman. Discrete Log.

12. Integer factoring. Pollard, Fermat, Morrison-Brillhart, Quadratic sieve methods. Breaking RSA?

13. Elliptic curves and the cryptography based on it (if time permits)

 

The course will consist of 3 hours of lectures per week, homework, and an optional project.

 

· Grading

 

Semester grades will be based on the following weights.

  • Exercises                            40% 
  • Midterm Exam                 30%
  • Final Exam                         30%

 

Semester grades will be determined after all work is completed and graded. Point ranges for letter grades will be based on several factors, including absolute and relative performance. Letter grades will not be based on a fixed, predetermined curve or point range.

 

Coverage of Topics 

Topics

Lectures

1. Outline. Notation. Background.

2

2. GCD. Chinese remaindering. Fast polynomial multiplication.

4

3. Fast integer multiplication. Fast integer division. Fast gcd.

3

4. Fast matrix multiplication. Tensor rank.

1

5. Factorization over finite fields. 

3

6. Berlekamp, Cantor-Zassenhaus factoring algorithms.

7. Reed-Solomon code. List decoding. Bivariate polynomial factoring.

8. Kaltofen's blackbox multivariate factoring.

9. Integral polynomial factoring. LLL algo. Shortest vector in lattice. 

4

10. Lattice-based cryptography: eg. NTRU Cryptosystem.

1

11. Primality testing. RSA cryptosystem. Diffie-Hellman. Discrete Log.

12. Integer factoring. Pollard, Fermat, Morrison-Brillhart, Quadratic sieve methods. Breaking RSA?

3

13. Elliptic curves and the cryptography based on it (if time permits)

2

Total

40 Lectures (50 minutes each – else 27 Lectures of 75 minutes) 

 

Assignments/ Projects: 

HomeWorks (all weeks) 

Four Assignments, equally spaced, covering the topics covered. 

Project Plan 

               Students are encouraged to read advanced research papers and give a 30mins presentation; focusing on the main ideas.