Elective course in graduate program Computer science and mathematics
                            0+0   3+0
The goal of this course is to enable students to understand the role of number theory in modern cryptography and to derive, apply and implement algorithms for solving problems involving congruences, testing primality and factorization of large integers.
There are no formal prerequisites. It would be desirable that the students passed the course Number Theory from the undergraduate mathematics study programme.
Contents
Basic algorithms in number theory.
Algorithms for multiplying large integers. Euclidean algorithm.
Chinese remainder theorem. Continued fractions. Quadratic congruences. Squares and square roots. LLL
algorithm.
Public key cryptography.
Cryptosystems based on the problem of factorization. Cryptosystems based
on the discrete logarithm problem. Other public key cryptosystems. Application of LLL-algorithm in
cryptanalysis.
Testing and proving primality.
Distribution of prime numbers. Pseudoprime numbers. Miller-Rabin,
AKS and other primality tests.