Cryptography and Security
Code  Completion  Credits  Range  Language 

BIEKAB.21  Z,ZK  5  2P+2C  English 
 Garant předmětu:
 Lecturer:
 Tutor:
 Supervisor:
 Department of Information Security
 Synopsis:

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.
 Requirements:

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, SHAx and HMAC.
6. Factorization problem, asymmetric cryptography, RSA, ElGamal.
7. Primality testing, RabinMiller 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 postquantum 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), DiffieHellman 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 9781593278267.
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.
 Note:
 Further information:
 No timetable has been prepared for this course
 The course is a part of the following study plans:

 Bachelor specialization, Computer Engineering, 2021 (compulsory course in the program)
 Bachelor specialization, Information Security, 2021 (compulsory course in the program)
 Bachelor specialization, Software Engineering, 2021 (compulsory course in the program)
 Bachelor specialization, Computer Science, 2021 (compulsory course in the program)
 Bachelor specialization, Computer Networks and Internet, 2021 (compulsory course in the program)
 Bachelor specialization Computer Systems and Virtualization, 2021 (compulsory course in the program)