Cryptography and Security

The course is not on the list Without time-table
Code Completion Credits Range Language
BIE-KAB.21 Z,ZK 5 2P+2C English
Garant předmětu:
Department of Information Security

Students will understand the mathematical foundations of cryptography and gain an overview of current cryptographic algorithms. They will be able to use cryptographic keys and certificates in systems based on them and learn the basics of safe use of symmetric and asymmetric cryptographic systems and hash functions in applications. Within labs, students will gain practical skills in using standard cryptographic methods with an emphasis on security and will also get acquainted with the basic procedures of cryptanalysis. Students are expected to be competent programmers in C/C++ (on a small scale). Basic Python knowledge is an advantage.


Fundamentals of linear algebra and discrete mathematics, basics of number theory. Programming beyond the basic level (C/C++). Knowledge of time and memory complexities.

Syllabus of lectures:

1. Basic concepts in cryptology and computer security. Historical ciphers.

2. Exponential cipher, shared key establishment, and discrete logarithm problem.

3. Taxonomy of ciphers. Stream ciphers - RC4, A5/1, ChaCha20.

4. Block ciphers - 3DES, AES, Twofish. Operating modes of block ciphers.

5. Hash functions, SHA-x and HMAC.

6. Factorization problem, asymmetric cryptography, RSA, ElGamal.

7. Primality testing, Rabin-Miller test, key generation.

8. Security of cryptographic systems in terms of information theory and computational complexity.

9. Basics of elliptic curve cryptography.

10. Pseudorandom and true random number generators.

11. Quantum cryptography and post-quantum cryptography.

12. Public key infrastructure.

13. IT security.

Syllabus of tutorials:

1. Basics of modular arithmetic (repetition), historical ciphers.

2. Block ciphers (Hill, exponential cipher), Diffie-Hellman algorithm.

3. Stream ciphers. Hash functions.

4. Information theory (entropy, distance of uniqueness).

5. Block ciphers (AES), modes of operation.

6. Asymmetric cryptography (RSA, ElGamal).

7. Random number generators. Primality testing.

8. Use of cryptographic libraries.

9. Certificates. TLS encryption on the network.

10. Current trends in cryptography.

Study Objective:

The module provides the fundamental theory and practical skills in using cryptographic systems. Students will understand the principles of basic crypto algorithms and the basics of secure programming and IT security. A key point is the understanding of the concept of security in the context of mathematical principles of cryptographic primitives, as well as their use in complex systems. In the seminars, students gain practical skills in using standard cryptographic methods with emphasis on security and learn the elementary cryptanalysis methods.

Study materials:

1. Padhye S., Sahu R. A., Saraswat V. : Introduction to Cryptography. CRC Press, 2018. ISBN 9781138071537.

2. Aumasson J.-P. : Serious Cryptography. A Practical Introduction to Modern Encryption. No Starch Press, 2017. ISBN 978-1593278267.

3. Rosen K. H. : Elementary Number Theory (5th Edition). Addison Wesley, 2004. ISBN 321237072.

4. Sadler T. L. : Cybersecurity for Everyone: Securing Your Home or Small Business Network. Signalman Publishing, 2014. ISBN 9781940145365.

5. Paar CH., Pelzl J. : Understanding Cryptography. Springer, 2009. ISBN 3642446498.

Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2024-06-16
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet6548906.html