# Cryptography

##### Objectives and outcomes

Acquiring general knowledge of cryptography and cryptanalysis. Upon completion of the course,
students have a basic knowledge of cryptography. Students know various classes of cryptosystems.
They also know the techniques for creating a digital signature and key exchange.

##### Lectures

Students are introduced to the subject of cryptography. A brief overview of knowledge related to number
theory. The most well-known algorithms for factoring large numbers and the most well-known
algorithms for checking whether a large number is prime. Several most well-known
algorithms for determining a discrete logarithm. The most famous cryptosystems. The basic characteristics of cryptosystems with symmetric and asymmetric keys. The representatives of cryptosystems with symmetric and asymmetric keys. The notion of a hash function. The most well-known digital signature algorithms. The key exchange procedures.

##### Practical classes

Solving computational problems related to number theory using some knowledge and algorithms
covered in lectures: determining the greatest common divisor using the Euclidean algorithm, applying
Bezout’s theorem, determining the multiplicative inverse, calculating the value of Euler’s function,
applying Euler’s and Fermat’s theorem, using the Chinese remainder theorem. Implementation of
algorithms for checking whether a number is a prime number, as well as algorithms for factorisation of natural
numbers. Implementation of algorithms for determining discrete logarithm. Implementation of some well-
known classical and modern cryptosystems (Vigenere’s, Playfair’s, transposition, substitution, RSA, DES,
AES, etc.). Application of hash function. Implementation of digital signature algorithms.