Accessibility Tools

Skip to main content

COURSES

Applied Cryptography

Applied cryptography is a hands-on course for IT engineers. The course introduces cryptographic concepts and their use in real-world applications without delving into formal definitions and math. In this course we will use various cryptographic primitives to implement security protocols in Python 3.  Basic programming skills are a critical prerequisite.

About the course

Content

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

Upon successful completion of the course, students will be able to:

  • Use cryptographic libraries and Python tools to implement practical security mechanisms.
  • Apply hash functions, MACs, symmetric encryption, and public-key cryptography correctly.
  • Use digital signatures, certificates, PKI, and revocation checking in real-world systems.
  • Explain and implement core ideas behind TLS, smart cards, Tor, and blockchain-based systems.
  • Evaluate how cryptographic protocols support practical security goals in software engineering.

Programme

Topics to be covered:
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)
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

The course is 100% web-based and can be completed asynchronously. The course consists of pre-recorded online  lectures and intensive homework tasks. Cryptography concepts will be explained as we proceed.

Assessment method(s)

Grade system: 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 have to be answered in a concise manner.

Lecturers

Arnis Paršovs

Course dates

This course takes place in the first semester of the academic year 2026-2027. It starts in the first week of September and runs until mid-December.

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 December (exact time to be specified).


Entry requirements: basic programming skills

Type: virtual course

Level: Bachelor, Master, PhD

Host: University of Tartu

Focus area: Digitalisation

Study field: Science and Technology

Course dates: Sep 1 - Dec 18, 2026

Apply by: August 17, 2026

ECTS: 6

Registration status: Open

Number of places available: unlimited