Mehrparteienberechnungen sind Berechnungen zwischen 2 oder mehr Usern, bei denen jeder User eine Eingabe beiträgt und am Ende alle Benutzer das gleiche Ergebnis berechnen. Im Internet sind solche Berechnungen heutzutage allgegenwärtig: Benutzer und WLAN-Accesspoint haben ein Passwort und möchten einen Schlüssel berechnen, um zukünftige Kommunikation abzusichern. Benutzer einer Kryptowährung wie Bitcoin haben unterschiedliche Versionen aller bisherigen Transaktionen und möchten zusammen herausfinden, welche Version zukünftig verwendet werden soll.

Exemplarische Auswahl der Themen:
- Was ist sichere Mehrparteienberechnung?
- Wie kann man mit blockchains Konsens erreichen?
- Kryptographische Bausteine für sichere Mehrparteienberechnung (Garbled Circuits, blockchain, Oblivious Transfer).
- Sichere Mehrparteienberechnung zur Verhinderung von Seitenkanalangriffen.

Das Seminar richtet sich an Masterstudierende. Grundlagenvorlesung IT-Sicherheit oder Grundlagenwissen in Kryptografie sind empfehlenswert.


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.

The seminar is targeted at master level students. Being familiar with foundations of cryptography or having attended the IT-Security lecture is recommended.

Grundlagen der Geometrischen Modellierung, Modelle in der graphischen Datenverarbeitung (Kurven, Oberflächen und Volumen), Displaymethoden, Renderingtechniken, Datenstrukturen und Algorithmen für Netze und Netzkonvertierung

Kurven und Oberflächen (Polynome, Splines, RBF) Interpolation und Approximation, Displaytechniken, Algorithmen: de Casteljau, de Boor, Oslo,... Volumen und implizite Oberflächen Visualisierungstechniken, Iso-Surfaces, MLS, Oberflächen-Rendering, Marching-Cubes,... Netze Kompression , Netz-Vereinfachung, Multiskalen Darstellung, Subdivision,...

Vorwissen: Algorithmen und Datenstrukturen, Grundlagen aus der Höheren Mathematik, Graphische Datenverarbeitung I

The course Network Security covers the principles and practice of computer and telecommunication network security with particular emphasis on Internet security. After transferring the fundamentals of IT security and cryptography to the networking domain, we follow a top-down approach to network security. Starting with the application layer, the course provides a detailed discussion of network security principles and protocols. In addition to well known mechanisms, recent developments in the area of network security (e.g., peer-to-peer security, mobile network security, etc.) will be thoroughly examined. Further static course information can be found on the SEEMOO homepage.

This course is directed at students that finished the cryptocurrencies lecture with good marks and programming skills. If completed successfully you will receive 6 CP and you will have the opportunity to take a deeper look at some topics that were introduced in the lecture.

The goal is to work in small groups of 2-3 and jointly implement a project.

Some example topics include, but you can be creative:

·        Find, describe and implement an attack on a real-world cryptocurrency, a smart contract, an ICO, …

·        Build a (complex) decentralized secure application on top of the Ethereum Blockchain using smart contracts.

·        Connect IoT devices with the blockchain, i.e. a door lock which is only opened when payed, payment for a coffee machine, etc. …

·        Build or extend a wallet i.e. in order to include more complex security measures (i.e. hot/cold wallet, threshold crypto, hardware wallet...)

·        Build a block explorer with advanced properties or a deanonymization tool for some cryptocurrencies.

·        Secure Ethereum oracles with MPC, trusted hardware,….

You can freely choose the topic as well as the programming language and details of your project. It only has to be somehow related to cryptocurrencies and be non-trivial.



You should find a group and topic before you start this course. It is important that you propose the topic of your project and explain and motivate it well in your project proposal. Make sure your group is able to handle scope and goal of your project. This course is not aimed to teach you how to do either of the proposed topics, but gives you a platform to independently work on your own project. The basic tools that you need and that shall inspire you to develop a project you shall have learnt via the Cryptocurrency class.

The project -- including a final presentation and a final report -- will be graded. The grade will include four weighted sub-grades:

·        contribution of the project

·        project management

·        status reports and final report

·        status project presentations and final presentation

There will not be an overall test or exam. Only choose this course, if you are interested in cryptocurrencies and have fun and skills to work on a complex project.


There is only a limited number of 35 places available for this course, so please register early. Make sure you and your group manage to join the praktikum. We will provide a forum in the cryptocurrencies moodle course to help you with finding group partners and topics.

Kick-off meeting

The first meeting is mandatory for all students that want to participate. Here you will get further details about the tasks, the grading and potential projects. There will not be any lecture in the traditional sense. Please tell us here already, if you need any hardware which we need to order for your project.

Project proposal

In the second meeting all groups will present their project. What is your goal and how do you plan to achieve this goal? You will be asked to hand in a project proposal report one week before the meeting (max 4 pages + references). The project proposal shall contain the following information:

1.     Motivation and goals: what problem does your project solve? Who can benefit from your project? What are the goals that you plan to achieve? (approx. 1 page)

2.     Background: what is the current state of the art? Do there already exist projects that solve a similar problem? If yes, please outline what is the advantage of your approach? (max. 1 page)

3.     Project plan: explain how you plan to achieve your goals? What tools, software and methodology will you use? What are the milestones? (approx. 2 pages)

A latex template will be provided. You will receive individual feedback about your project during the meeting. Please keep the description concise and focus on the main aspects of your project.

We will grade the outcome of your project according to these rules. If you do not manage to achieve some of the goals that you describe in your project proposal, make sure to explain later during execution of the project why this was the case.

Progress presentation meeting

There will be two meetings, where you are asked to present on the progress of your project (10-15 mins each project). You will also be asked to hand-in one week before the meeting a short status report of your project (max. 1 page).  What did you already achieve? Did you run into any problems? What remains to be done?

Final presentation and demonstration

This is the last meeting, where you will present your project`(30-45 mins each project) at the end of the semester.

You will be asked to hand in a report (min. 5 pages without references) where you should respond to the following questions (a template will be provided):

·        Explain your project and describe how it works.

·        What is new or improved about this project in comparison with existing tools?

·        How did you manage your project?

·        What milestones did you have?

·        How did your group organize?

·        How can your tool be extended or improved?

If you have an idea, which is too big to fit into the scope of this praktikum, we are happy to discuss the possibility of writing a Master’s thesis about it, or split work between a larger team.

In diesem Praktikum erstellen die Student*innen mittels des Animal-Systems zwei eigene "Generatoren", die anhand von Nutzereingaben das Verhalten von Algorithmen visualisieren oder animieren. Es werden gute Java-Kenntnisse und die Bereitschaft zur Einarbeitung in das System vorausgesetzt.

Die Einschreibung ist erst mit Freigabe des neuen Vorlesungsverzeichnisses zum 1.3.2018 möglich.