The purpose of this course is to give the students extended knowledge about cryptography and its applications. After the course the students should acquire:
- mathematical fundamentals needed to understand the most commonly used cryptographic algorithms.
- understanding how cryptology is used to achieve confidentiality, integrity, non-repudiation and authentication.
- understanding of the application of cryptographic algorithms and their limitations.
- understanding of how an encipherment algorithm can be designed and analyzed.

Course contents

The following topics are covered by the curriculum of the course:

1. Stream ciphers - finding irreducible and primitive polynomials, the Berlekamp - Massey algorithm, common pseudorandom generator schemes, analysis of period and linear complexity, computing algebraic normal form, statistical testing, cryptanalysis of stream ciphers.

2. Block ciphers - almost perfect non-linear functions, generating S-boxes, examples: KASUMI, RIJNDAEL, differential and linear cryptanalysis of block ciphers.

3. Public key ciphers - intractability and NP-completness, primality testing, factoring large integers, complexity and security of RSA, discrete log, the Diffie-Hellman key exchange algorithm.

Contact information

Professor Slobodan Petrovic (slobodanp(at) lectures the course. He is available by e-mail, by phone (61 13 52 48), or physically in the room A124H.