Official course description:

Preliminary info last published 15/03-24
Course info
ECTS points:
Course code:
Participants max:
Offered to guest students:
Offered to exchange students:
Offered as a single subject:
Price for EU/EEA citizens (Single Subject):
10625 DKK
BSc in Software Development
Course semester
Forår 2025
27 January 2025
30 May 2025
This course will introduce basic concepts and techniques for designing and analysing cryptographic protocols with a focus on privacy preserving computation and blockchain protocols. We will cover both the main constructions of such protocols and the theoretical models used for proving their security.

In a modern cryptographic protocol, a group of users perform complex tasks that require privacy and/or authenticity guarantees against an attacker by exchanging messages and using cryptographic schemes. These protocols can be used for a multitude of applications, such as computing on private data you cannot see and agreeing on data with the guarantee that it becomes immutable. In order to construct powerful cryptographic protocols and mathematically prove that they are indeed secure, we use special techniques and theoretical models different from those used for obtaining simpler cryptographic primitives (such as public key encryption).

In this course, we will introduce both the main techniques for constructing cryptographic protocols and the theoretical models used for mathematically proving their security. We will focus on protocols for secure multiparty computation (MPC) and blockchain based consensus, which are now used for many applications. Besides exploring the features  that these protocols provide and how they work, we will also understand why they securely provide these features and how to prove their security.

We will cover the following topics:
  • Adversarial Models
  • Simulation Based Proofs
  • Secure Multiparty Computation (MPC)
  • Secret Sharing
  • Commitments
  • Oblivious Transfer
  • Zero Knowledge Proofs
  • Byzantine Agreement
  • Blockchains based on Proof-of-Work
  • Blockchains based on Proof-of-Stake
  • Blockchain Applications
Formal prerequisites

1. Discrete Mathematics
2. Security 1

Students should be familiar with basic cryptography (hash functions, pseudorandom functions, message authentication codes, public key encryption and digital signatures) and discrete mathematics (models of computation, probability, number theory and group theory).

Intended learning outcomes

After the course, the student should be able to:

  • Identify the properties of a cryptographic protocol
  • Define protocol security using simulation based notions
  • Describe building blocks for cryptographic protocols (commitments, oblivious transfer, zero knowledge proof)
  • Analyse the security of building blocks for cryptographic protocols (commitments, oblivious transfer, zero knowledge proof)
  • Describe Secure Multiparty Computation protocols
  • Analyse the security of Secure Multiparty Computation protocols
  • Identify the properties of consensus protocols
  • Describe protocols for Proof-of-Work based Blockchains
  • Analyse the security of protocols for Proof-of-Work based Blockchains
  • Describe protocols for Proof-of-Stake based Blockchains
  • Describe Blockchain Applications
Ordinary exam
Exam type:
D: Submission of written work with following oral, Internal (7-point scale)
Exam variation:
D2M: Submission for groups or individual with following oral exam supplemented by the submission.