Introduction to cryptography

I teach Introduction to cryptography [NDMI100] in the summer semester of 2024/2025. The lecture will cover the basics of both theoretical and practical cryptography, focusing on protocols currently used on the Internet.

Lectures will be on Tuesdays from 14:00 in S5.

If you want to consult anything, please write an e-mail to mares+kry@kam.mff.cuni.cz and we will discuss possibilities.

date topics recording
18. 2. Cryptographic primitives: symmetric and asymmetric ciphers, hash functions, random generators. Protocols and roles. Kerckhoffs principle. Simple protocols: multi-party communication, signatures (symmetric and asymmetric) hybrid ciphers, challenge-response authentication. Designing an auction protocol: padding, nonces, sequence numbers, signatures, session IDs. Basic types of cryptographic attacks. Security level.
Exercise: How to toss a coin over a phone call?
video
25. 2. Different kinds of "Birthday attacks". One-time pad and Vernam's cipher. Perfect security and its limits. Secret sharing and threshold schemes (Shamir's construction with polynomials). video
4. 3. Introduction to symmetric ciphers. Block ciphers: trivial examples, an attempt to define security. General constructions: iterated ciphers, substitution-permutation networks, Feistel networks. DES: history, structure, critique, work-arounds (3-DES). AES a.k.a. Rijndael: history, structure, critique.
Exercise: Why is the security level of 2-DES only 57 bits?
Further reading:: EFF DES cracker, details of AES, Serpent (another AES finalist), Twofish (another one).
video (blurred)
11. 3. How to (mis)use a block cipher: padding, modes ECB, CBC, CTR, OFB. Padding oracle attacks on CTR and CBC. Information leaks in CBC and CTR modes. Ciphertext stealing in ECB mode (see here for CBC version). Stream cipher sketches: LFSR-based constructions, eSTREAM project, Trivium, ChaCha20.
Illustrations: Block cipher modes (plaintext, ECB, CBC), visual secret sharing (layer 1, layer 2, both layers put together),
video
18. 3. Plan: Hash functions: requirements, Merkle-Damgård construction by iterating compression function, length extension attacks. Birthday attacks on hash functions: the tortoise, the hare, and the turtle. How to obtain a compression function: Davies-Meyer construction from a block cipher. Practical hash functions: MD5 (broken), SHA1 (broken), SHA2, and SHA3 (sketch).

Sources

This page is maintained by Martin Mareš