CS60094 Computational Number Theory |
Spring 2018 |

Instructor:Abhijit Das and Debdeep Mukhopadhyay

Time:Wednesday 11:00–11:55, Thursday 12:00–12:55, Friday 08:00–08:55

Venue:CSE-119

Teaching Assistants:Abhay Rajendra Daga and Sayandeep Saha

We will assume that a student registering for this course is equipped with rudimentary knowledge ofdiscrete mathematical structures(groups, rings, fields),algorithms(design and analysis techniques), andprobability. Students lacking one or more of these backgrounds may find the exposition difficult to follow. We will, under no circumstances, entertain requests to cover these elementary topics in this course. Note, however, that no prior acquaintance with number theory (elementary, analytic, or algebraic) is necessary for attending this course.

**Algorithms for integer arithmetic:**Divisibility, gcd, modular arithmetic, modular exponentiation, Montgomery arithmetic, congruence, Chinese remainder theorem, Hensel lifting, orders and primitive roots, quadratic residues, integer and modular square roots, prime number theorem, continued fractions and rational approximations.**Representation of finite fields:**Prime and extension fields, representation of extension fields, polynomial basis, primitive elements, normal basis, optimal normal basis, irreducible polynomials.**Algorithms for polynomials:**Root-finding and factorization, Lenstra-Lenstra-Lovasz algorithm, polynomials over finite fields.**Elliptic curves:**The elliptic curve group, elliptic curves over finite fields, Schoof's point counting algorithm.**Primality testing algorithms:**Fermat test, Miller-Rabin test, Solovay-Strassen test, AKS test.**Integer factoring algorithms:**Trial division, Pollard rho method,*p*`-`1 method, CFRAC method, quadratic sieve method, elliptic curve method.**Computing discrete logarithms over finite fields:**Baby-step-giant-step method, Pollard rho method, Pohlig-Hellman method, index calculus methods, linear sieve method, Coppersmith's algorithm.**Applications:**Algebraic coding theory, cryptography.

[1] A. Das, Computational number theory, Chapman and Hall/CRC.[2] V. Shoup, A computational introduction to number theory and algebra, Cambridge University Press.[3] M. Mignotte, Mathematics for computer algebra, Springer-Verlag.[4] I. Niven, H. S. Zuckerman and H. L. Montgomery, An introduction to the theory of numbers, John Wiley.[5] J. von zur Gathen and J. Gerhard, Modern computer algebra, Cambridge University Press.[6] R. Lidl and H. Niederreiter, Introduction to finite fields and their applications, Cambridge University Press.[7] A. J. Menezes, editor, Applications of finite fields, Kluwer Academic Publishers.[8] J. H. Silverman and J. Tate, Rational points on elliptic curves, Springer International Edition.[9] D. R. Hankerson, A. J. Menezes and S. A. Vanstone, Guide to elliptic curve cryptography, Springer-Verlag.[10] A. Das and C. E. Veni Madhavan, Public-key cryptography: Theory and practice, Pearson Education Asia.[11] H. Cohen, A course in computational algebraic number theory, Springer-Verlag.

- Mid-Semester Test: 23-Feb-2018 (Friday), 9:00–11:00am, CSE-107 [Questions with solutions]
- End-Semester Test: 25-Apr-2018 (Wednesday), 9:00am–12:00noon, CSE-107 [Questions with solutions]