Course detail

Foundations of Cryptography

FEKT-BZKRCompulsoryBachelor's (1st cycle)Acad. year: 2015/2016Winter semester1 year of study6  credits

Basic terminology in cryptology, cryptology categorization, algebraic structures used in cryptography. Generation, testing and use of prime numbers. Group arithmetics, bilinear pairing. Complexity theory fundamentals. Computationally hard problems used in cryptography – discrete logarithm, RSA problem, EC discrete logarithm. The overview of basic algorithms used in cryptography. Symmetric and asymmetric cryptosystems (PRESENT, AES, RSA, ECDH, SHA2, 3) and their practical use. Provable security concept – proofs, formal models, zero-knowledge, Sigma-protocols, cryptographic commitments.

Learning outcomes of the course unit

Students will obtain theoretical foundations of cryptography and computer security. Based on these foundations, students will be able to analyze and design security solutions for information and communication technologies (ICT). Students will be able to explain basic principles of algebraic structures used in cryptography, basic cryptographic primitives (hashes, RNG, provably secure protocols), basic algorithms and describe the internals of symmetric and asymmetric algorithms. Students will be theoretically prepared for follow-up courses from data transfer and ICT security areas.


The course is designed as an introduction to the subject of cryptography thus no prerequisites are required. Only high school knowledge and general PC usage experience is expected.


Not applicable.

Recommended optional programme components

Not applicable.

Recommended or required reading

Not applicable.

Planned learning activities and teaching methods

Methods of educations are described in the article 7 of the BUT’s Study and Examination Regulation. Techning methods include lectures and laboratories. Course is taking advantage of e-learning (Moodle) system. Students have to deliver 10 assignments during the course.

Assesment methods and criteria linked to learning outcomes

The maximum of 15 points is given upon completion of the theoretical test in laboratories. The correct completion of all tasks in laboratories adds 15 points. The requirements on the completion of the tasks in laboratories are described in the annual supervisor’s notice. The maximum of 70 points can be gained during the final exam.

Language of instruction


Work placements

Not applicable.

Course curriculum

1. Introduction to cryptography, history
2. Introduction to number theory
3. Primes and their use in cryptography
4. Basic structures used in cryptography I
5. Basic structures used in cryptography II
6. Modular arithmetic
7. Complexity theory, problem classification
8. Cryptography algorithms I
9. Cryptography algorithms II
10. Practical encryption
11. Practical authentication and digital signature
12. Provable security I
13. Provable security II

1. Introduction to labs
2. Basic operations and their software implementation
3. Prime number generation and testing
4. Group generation and their properties
5. Discrete logarithm and its usage in cryptography
6. RSA problem and its usage in cryptography
7. Elliptic curves and their usage in cryptography
8. Basic algorithms
9. Basics of cryptography algorithm simulation
10. Simple cryptosystem simulation
11. Modern encryption algorithm simulation
12. Modern authentication algorithm simulation


The goal of the course is to provide students with the basic knowledge of cryptography and to provide them with information necessary in more advanced courses in information and communication security. During the course, students will study the theoretical foundations (mainly the algebraic structures and their properties), the most common algorithms and concepts used in modern cryptography.

Specification of controlled education, way of implementation and compensation for absences

The conditions for the successful course completion are stated in the yearly updated supervisor’s notice.

Type of course unit



26 hours, optionally

Teacher / Lecturer

Computer exercise

39 hours, compulsory

Teacher / Lecturer