# Praktikum im Wintersemester 2018/2019

Lehrveranstaltung:
| Praktikum: Kryptographie |

Veranstaltungsform:
| P4 / 4 SWS / 6 CP (ECTS) |

Hochschullehrer:
| Prof. Johannes Buchmann / Dr. Moritz Horsch |

Beginn:
| 1. Vorlesungswoche |

Voraussetzungen:
| Grundkenntnisse in Java, C/C++ und Kryptographie |

Bewerbung: |
PDF-Formular ausfüllen und per E-Mail verschicken an lab@cdc.informatik.tu-… Wunschthema bitte angeben (bei 'Anmerkungen'). Teamwünsche ebenfalls im Feld 'Anmwerkungen' angeben. Deadline: Benachrichtigung: |

Anmeldung:
| TUCaN |

Abgabe:
| (Ende 1. Woche im letzten Semestermonat) |

Turnus: | regelmäßig |

## Betreuer / Thema / Material

# | Betreuer | Beschreibung |
---|---|---|

1 | Patrick Struck |
(Post-)Quantum Security Models for Public Key EncryptionIn Public Key Encryption (PKE), we use security notions like IND-CPA or IND-CCA to model the power of an adversary equipped with a classical computer. However, these definitions do not model the power of an adversary that has access to a quantum computer. Therefore, new security notions, like IND-qCPA or pq-IND-CPA, have emerged which consider adversaries with quantum computing power. The goal of this lab is to (1) identify what (post-)quantum security models for PKE exist, (2) compare them with respect to the power and the goal of the adversary, and (3) analyze how realistic these models are. This task is intended for one or two people. Basic knowledge of linear algebra is required. |

2 | Nabil Alkeilani Alkadri |
Investigating and describing applications of ring signaturesAn important cryptographic primitive for preserving privacy is ring signatures. They allow any member to form a ring of any possible signers including himself in oder to sign any message using his secret key and public keys of other ring members such that it is infeasible to determine which of the ring members' keys was used to produce the signature. In other words, the group for a ring signature can be improvised. One of the most interesting privacy-preserving applications of ring signatures is whistleblowing. For example, a high-ranking government official can sign a document with respect to the ring of all similarly high-ranking officials. The signature can then be verified without exposing the actual signer. The goal of this task is to describe how ring signatures are used in cryptographic applications. To this end, these applications have to be identified. The task is intended for one person. The candidate must have basic knowledge in cryptography, especially, digital signatures. This can be realized for example by attending lectures in cryptography such as “Introduction to Cryptography” or “Post-Quantum Cryptography”. |

3 | Nabil Alkeilani Alkadri |
Investigating and describing applications of blind signaturesBlind signatures allow to sign messages for users such that the signer gets no information about the message being signed while the user is not able to compute any additional signature without interacting with the signer. Blind signatures are fundamental for privacy-preserving cryptographic applications such as Bitcoin transactions and e-voting systems, where authorities blindly sign public keys that are used by voters to anonymously cast their votes. The goal of this task is to describe how blind signatures are employed in which cryptographic applications. The task is intended for one person. The candidate must have basic knowledge in cryptography, especially, digital signatures. This can be realized for example by attending lectures in cryptography such as “Introduction to Cryptography” or “Post-Quantum Cryptography”. |

4 | Nina Bindel and Johannes Braun |
Post-Quantum Secure Public-Key InfrastructureCryptographic primitives, e.g., signature schemes, used today will no longer be secure as soon as large quantum computers can be built. Hence, applications of signature schemes in our current public-key infrastructure (PKI), such as certificates and/or the Transport Layer Security (TLS) protocol, will no longer be trustworthy. So-called hybrid schemes offer a solution: they combine two or more algorithms of the same kind such that the combined scheme is secure as long as one of the two components remains secure. When such hybrid schemes are instantiated as a combination of currently used schemes, such as the RSA signature schemes, and signatures schemes that are secure even in the presence of quantum computers, hybrid schemes offer an approach to mitigate the risk of quantum attacks and to preserve current security guarantees. The goal of this software lab is to implement existing theoretical hybrid signature schemes for applications in our PKI, e.g., hybrid certificates in TLS. To this end, existing crypto libraries such as Bouncycastle or OpenSSL will be extended such that hybrid certificates can be generated and accepted during the TLS protocol. In this project the students will get insight to the usage and implementations of the above-mentioned crypto libraries, real-world implementations of PKI, and state-of-the-art quantum-resistant signature schemes. Requirements: We require that the students are skilled in implementing in C or Java and that they have knowledge of public-key infrastructures (for example, students who attended the lecture about public-key infrastructures). Ideally, students have already worked with Bouncycastle or OpenSSL and attended the lecture about post-quantum cryptography. The project is suitable for two students. |

5 | Moritz Horsch |
Password Generator for KeePassPasswords are the most widely used authentication scheme for granting access to user accounts at services on the Internet. Secure passwords are essential, because they are the sole barrier protecting the multitude of personal data stored in user accounts. The creation of secure passwords, which resist brute-force, dictionary, and social engineering attacks, is difficult. Users often tend to use passwords that are simple and easy to remember. Therefore, security experts recommend the usage of password generators in order to create secure passwords. However, generated passwords often get rejected by services because they do not comply with the various password requirements of services. They are for instance too short, too long, or do not contain a special character. The problem is solved by Password Policy Descriptions (PPD) which describe the password requirements of services in a standardized format. Password generators can process PPDs and adapt their password generation rules. The objective of this task is to enhance the existing open-source password manager KeePass by a PPD-based password generator. The extension should use PPDs in order to create secure passwords that comply with the password requirements of services. Users should only enter the URL of a service in order to generate a password for it. |

## Modalitäten

- Vorbesprechung, Abgabeform und Notenvergabe werden alle von den Betreuern festgelegt
- Allgemein gilt der Termin für die letzte mögliche Abgabe (siehe oben)

## Voraussetzungen

- Kenntnisse der entsprechenden Programmiersprache bei Programmieraufgaben
- Kenntnisse in Kryptographie sind von Vorteil

## Inhalt

- Weitere Programmierkenntnisse
- Erfahrung in der Softwareentwicklung
- Vertiefung von Sicherheitskonzepten und kryptographischen Kenntnissen
- Erfahrung im Umgang mit verschiedenen Entwicklungswerkzeugen

## Lernziele

Die Fähigkeit, eine professionelle Aufgabe aus den genannten Bereichen in einem Team erfolgreich nach Vorgabe zu bearbeiten und die Ergebnisse angemessen zu präsentieren. Der Schwerpunkt ergibt sich aus der konkreten Aufgabenstellung. Beispiele sind:

- Praktischen Entwicklung von sicherheitsrelevanter Software
- Effiziente Programmierung, i.e. erkennen und beseitigen von Flaschenhälsen
- Lesen und Verstehen von wissenschaftlicher Literatur und technischer Dokumentation
- Programmieren und Dokumentieren komponentenbasierter Software
- (Java, C, C++ UML, Java-Beans)
- Authentifikationsmechanismen und Protokolle (SSL / TLS)
- Zertifikats- uns Schlüsselmanagement in einer PKI (LDAP)