Cryptography
Course info
Programme
Staff
Course semester
Exam
Abstract
This course provides an introduction to the fundamental concepts of cryptography, the practice of protecting information and securing communication in computer systems. We start with classical encryption techniques, and consider modern private-key and public-key crypto systems and study their security against eavesdroppers or attackers, who tamper with network traffic. The course is aimed at students with a background in computer science or mathematics, and will include both theoretical and programming exercises.
Description
In Cryptography, you learn about basic cryptographic tools to secure data and computations, including private and public-key cryptography, and cryptographic protocols. You will learn how to define what it means to be secure and relate different notions of security. More specifically:
- Perfectly secret encryption
- Symmetric encryption and the computational model
- Stream ciphers, pseudo-random functions, and reduction proofs
- Block ciphers and message authentication
- Secure Hash functions
- Practical constructions of symmetric-key primitives
- Number theory and cryptographic hardness assumptions
- El Gamal cryptosystem
- Elliptic curve cryptography
- Digital signatures
- Key encapsulation mechanisms and TLS
- Secret sharing
Formal prerequisites
Intended learning outcomes
After the course, the student should be able to:
- Design and analyze cryptographic protocols for adversarial environments
- Analyze basic cryptographic protocol designs in the computational model
- Explain and apply proofs by reduction to prove the security of cryptographic constructions
- Explain cryptanalysis and differential privacy
Ordinary exam
Exam type:A: Written exam on premises, External (7-point scale)
Exam variation:
A33: Written exam on premises on paper with restrictions