(M)PSD: PORTUNUS
Project System Development
In the project system development, students work on a given computer science topic in a team under practical conditions. In terms of content, the project group works independently on current issues of practical relevance. The lecturer takes on the role of the client/customer. At the same time, however, he supports the team to set the right course, especially in the initial phase, and to get the project rolling.
In an introductory event, the task is first outlined and the framework conditions explained. During the project, weekly project meetings are held in which the results of the previous week are presented and the objectives of the coming week(s) are defined.
Topic
Progress in the development of cryptographic methods that are resistant to quantum computers is progressing rapidly. The number of cryptographic algorithms has increased steadily in recent years. This increase is due to various events, including in particular the process initiated by NIST to identify post-quantum algorithms. In addition, there is a large number of variants of cryptographic algorithms and cryptographic libraries.
For efficient, practical use, a triad must be harmonized between cryptographers who develop PQC algorithms, experts for platform integration who implement these algorithms on the hardware and software developers who want to use them. The partners at TU Darmstadt and Darmstadt University of Applied Sciences are working on this topic in the PORTUNUS project.
In the context of this topic, TU Darmstadt is dedicated to the theoretical question of how emerging PQC algorithms can be accelerated more effectively. Furthermore, the TU Darmstadt is also researching a practical implementation in the form of a hardware-related implementation. This essentially involves the development of Multi-Level Intermediate Representation (MLIR) compiler optimizations for CPU, GPU, ASICs and FPGAs.
On the other Hand, Darmstadt University of Applied Sciences is developing a platform for integrating these compiler-optimized algorithms. For this purpose, an API is being developed that enables flexible and user-friendly use of these algorithms under the specified cryptographic requirements.
The specific goal of our project is to create a framework that provides the programmer with access to the underlying algorithms via an intermediate layer. The framework hides the hardware details and allows even inexperienced programmers to use post-quantum cryptography easily and securely. The programmer only specifies what he wants to do, e.g. encrypt data. The selection of the specific algorithm and the security parameters is done automatically in the intermediate layer.
Tasks
Students have already developed a prototype of the PORTUNUS API in previous semesters. In the last semester, this API was extended by a JAVA wrapper in order to support JAVA platforms in addition to the C++ connection. A JCA provider was also created. Furthermore, it was possible to cross-compile the Portunus library on Android with the corresponding dependencies in order to create a basis for working with mobile messenger apps in the future. However, there is currently no functional example. The primary goal is to develop an initial prototype that uses the Portunus API in a suitable application software. Among other things, it is possible to build on the work of the previous semester group or to develop your own idea. Recommendations include integration into an email client, building your own messenger (e.g. using qxmpp) or modify given messenger apps, such as Conversions. The project uses Linux-based dependencies and is written in C++.
Other open tasks:
- Secure storage for key management
- Replace the CSV file (containing the algorithm information) with a database
- Python wrapper with associated providers and third-party example
- PORTUNUS various provider creation for application software
- Integration and optimization of Algorithm Selection Tool
- Improvement of the dependency stack with, for example, Conan
Previous knowledge
- Good programming skills in C/C++ are required
- Experience in using relevant tools (especially GIT and Scrum) is helpful
- The contents of advanced IT security courses (e.g., cryptography, network security) are helpful.
- NO prior knowledge of post-quantum cryptography is required
General conditions
Scrum is to be used as the process model for agile system development. The usual development tools will be used, preferably those that are already available by Hochschule Darmstadt, e.g. GIT repository, Scrum board, etc. We will build on the preliminary work of previous semesters and plan to continue the project in future courses. The project is licensed under the MIT-Lizenz.
If you have any further questions about the project, please contact us by e-mail.
Prof. Dr. A. Wiesmaier, Gero Knoblauch, Erik Mauß
Hochschule Darmstadt
Contact
Communication
Schöfferstraße 10
64295 Darmstadt
Office: D19, 2.09
+49.6151.533-60185
alexander.wiesmaier@h-da.de
1
Consultation
Nach Vereinbarung / by appointment