Accessibility Tools

Skip to main content

COURSES

Applied Cryptography

About the course

Content

In this course we will use various cryptographic primitives to implement security protocols in Python 3. Basic programming skills are a critical prerequisite. The use of cryptographic libraries for encrypting files and communication, authentication methods, integrity protection, public key infrastructures, composition of secure protocols, secure methods for obtaining random bits, smartcards, digital signatures. 

Learning outcomes

Students will learn how to use popular programming tools to implement various cryptographic constructions. Additionally, they gain practical experiences on how to employ cryptographic protocols and public key infrastructure for enforcing practical security goals.

Programme

Topics covered in the course include: 

1. Randomness, PRNG, One-Time Pad, Stream Cipher

2. Abstract Syntax Notation One (ASN.1)

3. Hash functions

4. Block ciphers (AES)

5. Public Key Cryptography (RSA)

6. Elliptic Curve Cryptography (ECC)

7. Public key certificates (X.509)

8. Revocation checking (CRL/OCSP)

9. Digital signatures (XAdES), eIDAS Regulations

10. Smart cards (EstEID)

11. Smart cards (JavaCard)

12. Transport Layer Security (TLS)

13. Transport Layer Security (TLS)

14. The Onion Router (Tor)

15. Bitcoin 

Teaching format

100% self-learning with non-mandatory practice sessions

The course consists of pre-recorded online lectures and intensive homework tasks. Cryptography concepts will be explained as we proceed.

The E-learning environment is UTartu Moodle.

Assessment method(s)

Differentiated (A, B, C, D, E, F, not present)

Final grade consists of homework (70%) and test (30%).

Home exercises will be given each week, requiring implementation of some cryptographic functionality discussed at that week's lecture. The solutions usually must be submitted within a week.

The test consists of 70 open-ended questions that must be answered in a concise manner.

Lecturers

Arnis Paršovs

Course dates

This course takes place in the second semester of the academic year 2026/2027. It starts in the week of February 8.  

This is 100% self-learning course with weekly homework deadlines. Info on course schedule is available here.

ENLIGHT students will be able to take the test remotely via Internet in May, exact time will be specified.   


Entry requirements: Basic programming skills are a critical prerequisite.

Type: virtual course

Level: Bachelor, Master, PhD

Host: University of Tartu

Focus area: Digitalisation

Study field: Science and Technology

Apply by: 15 January 2027

ECTS: 6

Registration status: Open

Number of places available: Not limited