Teaching courses

Formale Methoden im Softwareentwurf

Content:

  • Modelling of concurrent software with the ProMeLa language
  • Formalisation of safety and liveness properties in propositional temporal logic
  • Theoretical Foundations of Model Checking
  • Verification of ProMeLa programs using the model checker SPIN
  • Syntax, semantics, and sequent calculus for typed first-order logic
  • Foundations of the contract-based software specification language JML
  • Dynamic logic as a first-order program logic
  • Formal software verification by symbolic execution and invariant reasoning
  • Tool-based verification of Java programs with the verification system KeY

Recommended:

  • Programming with Java and familiarity with propositional logic is expected.
  • Participation of lecture “Aussagen- und Prädikatenlogik”
  • Fundamental mathematical knowledge

Link to Moodle

PidL – Formale Methoden im Softwareentwurf

Lab Blockchain

Content:

This course is aimed at students who have attended the Blockchain Technology (resp. Cryptocurrencies) lecture or have otherwise studied blockchain technologies and want to understand and examine some aspects of this topic in more detail. It provides a platform to learn about novel applications based on Blockchain technology for their feasibility and usefulness.

After an introduction in the topics Blockchain concepts, decentralized finance (DeFi) and Blockchain development, the students should understand and implement complex cryptographic systems and building blocks from the field Cryptocurrencies, DeFi and Blockchain Technology. The project will be carried out by students in a team. This will involve the design of a project, which will be planned and implemented by the students during the course. In addition, there will be guest lectures during the course of the lab which will further explore some selected topics.

The students get first experiences with the implementation of a more complex development project. and integrate them into their project.

Required:

This course is directed at students with interest and basic knowledge in Blockchain Technology. Additionally, they should have good programming skills, innovative ideas and be interested in the implementation of complex software projects. Successful completion of the Blockchain Technology (resp. Cryptocurrencies) lecture is helpful.

Dates and more detailed information on the scope and form of the lab will be provided in the corresponding Moodle course.

Link to Moodle

Blockchain Project Lab

Content:

This course is aimed at students who have attended the Blockchain Technology (resp. Cryptocurrencies) lecture or have otherwise studied blockchain technologies and want to understand and examine some aspects of this topic in more detail. It provides a platform to learn about novel applications based on Blockchain technology for their feasibility and usefulness.

After an introduction in the topics Blockchain concepts, decentralized finance (DeFi) and Blockchain development, the students should understand and implement complex cryptographic systems and building blocks from the field Cryptocurrencies, DeFi and Blockchain Technology. The project will be carried out by students in a team. This will involve the design of a project, which will be planned and implemented by the students during the course. In addition, there will be guest lectures during the course of the lab which will further explore some selected topics.

The students get first experiences with the implementation of a more complex development project. As part of the project lab, students develop more advanced concepts in blockchain, defi, and blockchain development, such as performance and security aspects, present them to the group, and integrate them into their project.

Required:

This course is directed at students with interest and basic knowledge in Blockchain Technology. Additionally, they should have good programming skills, innovative ideas and be interested in the implementation of complex software projects. Successful completion of the Blockchain Technology (resp. Cryptocurrencies) lecture is helpful.

Dates and more detailed information on the scope and form of the lab will be provided in the corresponding Moodle course.

Link to Moodle

20-00-1010-iv Blockchain Technology

Content:

Main concepts of blockchain technologies:

  • Cryptographic building blocks: cryptographic hash functions, signatures, commitments
  • Distributed systems and fault tolerance
  • Broadcast and consensus protocols
  • Introduction to Bitcoin and Nakamoto consensus
  • Mining, Incentives and Wallets
  • Anonymity and Privacy of blockchains
  • Attacks on cryptocurrencies
  • Smart contracts and applications
  • Scalability of blockchains
  • Blockchain ecosystem (in particular DeFi and atlcoins)

Recommended:

Lecture on “Introduction to Cryptography / Einführung in die Kryptographie” or comparable knowledge

20-00-1126-pr Research in Cryptography

Content:

Modern cryptography offers a variety of innovative tools and techniques that can be used to solve complex security problems. The aim of the course is to learn the scientific methodology of modern cryptography. For this purpose, a scientific paper in cryptography will be written in a small group together with the lecturers. The entire process from the initial research idea to the submission of a publication will be carried out. Among other things, techniques for literature research, discussion of research questions and writing scientific papers will be covered. Prerequisite for the course is the lecture “Introduction to Cryptography”. Attendance of other special courses in the field of cryptography and IT security is advantageous. In particular, participants should be familiar with the basic concepts of modern cryptography (cryptographic building blocks, security definitions, reduction proofs).

Recommended:

Lecture “Introduction in Cryptography” is recommended.

Formale Methoden im Softwareentwurf

Content:

  • Modelling of concurrent software with the ProMeLa language
  • Formalisation of safety and liveness properties in propositional temporal logic
  • Theoretical Foundations of Model Checking
  • Verification of ProMeLa programs using the model checker SPIN
  • Syntax, semantics, and sequent calculus for typed first-order logic
  • Foundations of the contract-based software specification language JML
  • Dynamic logic as a first-order program logic
  • Formal software verification by symbolic execution and invariant reasoning
  • Tool-based verification of Java programs with the verification system KeY

Recommended:

  • Programming with Java and familiarity with propositional logic is expected.
  • Participation of lecture “Aussagen- und Prädikatenlogik”
  • Fundamental mathematical knowledge

PidL – Formale Methoden im Softwareentwurf

Lab Blockchain

Content:

This course is aimed at students who have attended the Cryptocurrencies lecture or have otherwise studied blockchain technologies and want to understand and examine some aspects of this topic in more detail. It provides a platform to learn about novel applications based on Blockchain technology for their feasibility and usefulness.

After an introduction in the topics Blockchain concepts, project management and Blockchain development, the students should understand and implement complex cryptographic systems and building blocks from the field Cryptocurrencies and Blockchain Technology. The project will be carried out by students in a team. This will involve the design of a project, which will be planned and implemented by the students during the course.

The students get first experiences with the implementation of a more complex development project.

Required:

This course is directed at students with interest and basic knowledge in Blockchain Technology. Additionally, they should have good programming skills, innovative ideas and be interested in the implementation of complex software projects.

The lab is offered exclusively digitally. All appointments will be held via Zoom (with webcam turned on). Please register early in the linked Moodle course, read the information posted there and register there for participation no later than Sunday 11.04.2021.

Link to Moodle

Blockchain Project Lab

Content:

Participants of this course will learn about the technical and practical implications of distributed cryptographic systems. These include first hands-on experience in the following areas:

  • Development of smart contracts and distributed applications
  • Communication of systems through distributed peer-to-peer networks
  • Development of software using cryptographic building blocks
  • Security and anonymity of users of cryptographic currencies
  • Possible attacks on smart contracts and cryptocurrencies

Required:

This course is directed at students with interest and basic knowledge in Blockchain Technology. Additionally, they should have good programming skills, innovative ideas and be interested in the implementation of complex Software projects

The lab is offered exclusively digitally. All appointments will be held via Zoom (with webcam turned on). Please register early in the linked Moodle course, read the information posted there and register for participation no later than Sunday 11.04.2021.

Link to Moodle


Lecture: 20-00-0085-iv Introduction to Cryptography


Perfect Security

  • Different definitions
  • One Time Pad and its security
  • Limitations

Private Key Encryption

  • Computationally secure Priv. Key Encryption
  • Pseudo Random Generators (PRG)
  • Building secure Encryption scheme from PRG
  • Practical PRGs – Stream Ciphers
  • Stronger security notions
  • Pseudo Random Functions (PRF)
  • CPA security
  • Pseudorandom Permutation (PRP) and Block Cipher
  • Practical construction of Block Ciphers

Message Authentication Codes
Hash Functions
Cryptographic Assumptions
Key Agreement
Introduction to Public Key Encryption
Public Key Encryption Schemes – RSA
Signatures

PidL: Introduction to the Cryptography

Lab: BOOTS – BUILD YOUR OWN TECH STARTUP

In the coming winter semester 20/21 we are offering the new practicum 'BOOTS – BUILD YOUR OWN TECH STARTUP'. This course is about entrepreneurship in the HIGH-TECH sector and students can obtain all the necessary skills for a successful start-up project should be imparted, from brainstorming to developing a business model and estimating technical feasibility:

BOOTS – BUILD YOUR OWN TECH STARTUP

Entrepreneurship means more than just having an idea in the drawer. Especially in the HIGH-TECH area, skills such as entrepreneurial thinking, innovative action, convincing communication and the ability for team-work are required. With BOOTS, we offer students a practical format to run through a business start-up from the initial idea to founding their own start-up. In addition to business model development we also look at the technical feasibility. You can find out how much entrepreneur there really is in yourself.

Link to Moodle here

Lecture: Provable Security

TUCaN: Lecture: 20-00-1051-vl Provable Security


Teaching content:

This lecture shows how to formally prove security guarantees of cryptographic protocols. We focus on strong security guarantees and realistic adversary models. We use several different proving techniques. We will apply our knowledge to encryption schemes, some of which are used in practice, to gain a better understanding of their security properties.

  • Introduction to provable security
    • Definition of security
    • Introduction to computation security
    • Concept of a reduction
    • Cryptographic assumptions (OWF, factoring, discrete log, etc.)
    • Introduction to information theory
  • Symmetric encryption
    • Information theoretic secure encryption
    • Computationally secure encryption
    • OWF implies PRG
    • PRG implies encryption
  • Asymmetric encryption
    • IND-CPA security and ElGamal encryption
    • Proof of security of ElGamal
    • Naor/Yung scheme
    • Cramer/Shoup scheme
  • Extended security properties of encryption
    • Leakage resilient encryption
    • Random oracle model
    • Simulation-based security
    • Universal Composability Framework

Requirements: “Introduction to Cryptography” is recommanded but not mandatory.

Seminar: Side-channel resilient cryptography

Link to Moodle


Teaching content:

Cryptographic schemes are classically secure against black-box attacks, where an attacker exploits weaknesses of the underlying cryptographic algorithm. When cryptography is implemented in practice, so-called side-channel attacks are a further threat to their security. Most of cryptography can be broken by side-channel attacks and countless examples illustrate that almost all the devices that are in use today are affected by them. Starting in the late 1990s, when Kocher showed that smart cards can be broken using timing or power analysis attacks, there has been a plethora of different side-channel attacks been discovered. Most recently, examples such as Foreshadow illustrate that even advanced computing machinery is vulnerable to side-channel attacks.

Leakage resilient cryptography is the discipline that formalises these practical attacks in order to use formal methods for demonstrating security against them. In particular, it defines new security models, so-called leakage models, that incorporate side-channel attacks into the classical security models, and design cryptographic schemes that are provable secure within them.


Requisites: The seminar is aimed at master students. Basic lecture IT security or basic knowledge in cryptography are recommended, but not mandatory.
TUCaN: Seminar: 20-00-1088-se Side-channel resilient cryptography

Practicum: Blockchain Practicum: Register on Moodle


Teaching content:

This course is aimed at students who have attended the lecture Cryptocurrencies and want to understand and examine some aspects of this topic in more detail. It provides a platform to check novel applications based on Blockchain technology for their feasibility and usefulness.

Complex cryptographic systems and ideas from the lecture Cryptocurrencies should be understood in team work and implemented in a decentralized system. The students are asked to develop a project plan and outline, which should be implemented over the course of the semester.

The students get first experiences with the implementation of a more complex development project.

Requirements: This course is directed at students that finished the cryptocurrencies lecture with good marks and programming skills.


Announcement: Blockchain Practicum

Due to the current developments regarding the COVID-19 virus, there will be no classic kick-off meeting. However, we will offer a Question & Answer session online.

For the internship it is important that you inform yourself early, ideally before the Question & Answer Session, and look for a group for your project. For this purpose the corresponding Moodle course with all necessary information will be activated for self-registration from April 1st.

Register to Moodle
Practicum: 20-00-1031-pr Blockchain Practicum


Lecture: 20-00-0085-iv Introduction to Cryptography


Perfect Security

  • Different definitions
  • One Time Pad and its security
  • Limitations

Private Key Encryption

  • Computationally secure Priv. Key Encryption
  • Pseudo Random Generators (PRG)
  • Building secure Encryption scheme from PRG
  • Practical PRGs – Stream Ciphers
  • Stronger security notions
  • Pseudo Random Functions (PRF)
  • CPA security
  • Pseudorandom Permutation (PRP) and Block Cipher
  • Practical construction of Block Ciphers

Message Authentication Codes
Hash Functions
Cryptographic Assumptions
Key Agreement
Introduction to Public Key Encryption
Public Key Encryption Schemes – RSA
Signatures


Lecture: 20-00-1010-iv Cryptocurrencies

Concepts of Cryptocurrencies:

  • Cryptographic building blocks: cryptographic hash functions, signature schemes, blind signatures, commitments
  • Chaum’s eCash scheme
  • Intro to distributed systems and error models
  • Broadcast- and consensus mechanisms
  • Intro to Bitcoin and Blockchain consensus
  • Mining Bitcoins und secure storage of Bitcoins
  • Anonymous cryptocurrencies
  • Attacks on cryptocurrencies
  • Smart contracts and applications
  • Scalability
  • Altcoins and Blockchain ecosystem

No lectures


Vorlesung: 20-00-0085-iv Einführung in die Kryptographie

Math. Grundlagen:

  • Berechnungen in Kongruenz- und Restklassenringen

Grundlagen der Verschlüsselung:

  • Symmetrische vs. Asymmetrische Kryptosysteme
  • Block- und Stromchiffren, AES
  • Kryptoanalyse
  • Wahrscheinlichkeit und Perfekte Sicherheit
  • Verschlüsselung mit öffentlichen Schlüsseln
  • RSA, Diffie-Hellman, ElGamal
  • Faktorisierung großer Zahlen
  • Diskrete Logarithmen
  • Kryptografische Hashfunktionen
  • Digitale Signaturen
  • Identifikation



Vorlesung: 20-00-1051-vl Beweisbare Sicherheit

In dieser Vorlesung wird gezeigt, wie man Sicherheitseigenschaften von kryptografischen Protokollen formal beweisen kann. Dabei konzentrieren wir uns auf starke Sicherheitsgarantien und realistische Angreifermodelle und lernen verschiedene Beweistechniken kennen. Die erlernten Techniken werden wir auf teils real eingesetzt Verschlüsselungsverfahren anwenden und so eine gute Vorstellung von deren Sicherheitseigenschaften erhalten.



Seminar: 20-00-1052-se Zero Knowledge Beweissysteme

Zero Knowledge (ZK) Beweise sind Beweissysteme, mit denen ein Prover einem Verifier gegenüber die Wahrheit von Behauptungen wie z.B. “Ich kenne eine Lösung für ein Kreuzworträtsel” beweisen kann, ohne aber die Lösung des Rätsels zu verraten. ZK Beweise finden vielseitige Anwendung in der Kryptographie, beispielsweise im Bereich von sicherer Verschlüsselung und anonymen Kryptowährungen. In diesem Seminar lernen wir verschiedene Arten von ZK Beweissystemen und deren Anwendungsmöglichkeiten kennen.


Seminar: 20-00-1030-se Secure multi-party computation

Multi-party computations (MPC) are computations between 2 or more users, where every user provides an input and everyone computes the same output. On the internet, such computations are ubiquitous: to establish a secure connection via WiFi, both the user and the access point hold a password and want to compute a long-term key to secure the upcoming communication. Users of a cryptocurrency like Bitcoin hold different versions of the set of all finished transactions and want to determine which version they keep using.

Some topics:

  • What is secure MPC?
  • How can a blockchain be used to achieve consensus?
  • What are cryptographic building blocks for secure MPC (Garbled Circuits, blockchain, Oblivious Transfer)?
  • How to use secure MPC to prevent side channel attacks.



Practicum: 20-00-1031-pr Practicum of Cryptocurrencies

This course is aimed at students who have attended the lecture Cryptocurrencies and want to understand and examine some aspects of this topic in more detail. It provides a platform to check novel applications based on Blockchain technology for their feasibility and usefulness.

Complex cryptographic systems and ideas from the lecture Cryptocurrencies should be understood in team work and implemented in a decentralized system. The students are asked to develop a project plan and outline, which should be implemented over the course of the semester.

The students get first experiences with the implementation of a more complex development project.



Seminar: 20-00-1012-os Applied Cryptography

Content of the lecture: We will discuss current research topics from the field of cryptography.


Seminar: 20-00-1012-os Applied Cryptography

Content of the lecture: We will discuss current research topics from the field of cryptography.



Lecture: 20-00-1010-iv Cryptocurrencies

Concepts of Cryptocurrencies:

  • Cryptographic building blocks: cryptographic hash functions, signature schemes, blind signatures, commitments
  • Chaum’s eCash scheme
  • Intro to distributed systems and error models
  • Broadcast- and consensus mechanisms
  • Intro to Bitcoin and Blockchain consensus
  • Mining Bitcoins und secure storage of Bitcoins
  • Anonymous cryptocurrencies
  • Attacks on cryptocurrencies
  • Smart contracts and applications
  • Scalability
  • Altcoins and Blockchain ecosystem