(M)PSE: PORTUNUS
Projekt Systementwicklung
Im Projekt Systementwicklung bearbeiten Studierende im Team unter praxisnahen Bedingungen eine gegebene Themenstellung aus der Informatik. Inhaltlich arbeitet die Projektgruppe selbständig an aktuellen praxisrelevanten Fragestellungen. Der Dozent nimmt hierbei die Rolle des Auftraggebers / Kunden ein. Gleichzeitig unterstützt er das Team aber, um insbesondere in der Anfangsphase die Weichen richtig zu stellen und das Projekt ins Rollen zu bringen.
In einer Einführungsveranstaltung wird zunächst die Aufgabenstellung dargelegt und die Rahmenbedingungen erläutert. Während des Projekts finden wöchentliche Projektsitzungen statt, in denen die Ergebnisse der vergangenen Woche vorgestellt und die Ziele der kommende(n) Woche(n) festgelegt werden.
Themenstellung
Die Fortschritte bei der Entwicklung von kryptografischen Verfahren, die gegen Quantencomputer resistent sind, schreiten zügig voran. Die Anzahl kryptografischer Algorithmen ist in den letzten Jahren kontinuierlich angestiegen. Dieser Anstieg ist auf verschiedene Ereignisse zurückzuführen, darunter insbesondere den von der NIST initiierten Prozess zur Identifizierung von Post-Quantum-Algorithmen. Zusätzlich existiert eine hohe Variantenvielfalt von kryptografischen Algorithmen und kryptografischen Bibliotheken.
Für eine effiziente, praktische Nutzung muss ein Dreiklang zwischen Kryptografen, die PQC-Algorithmen entwickeln, Experten für Plattform-Integration, die diese Algorithmen auf der Hardware implementieren und Softwareentwicklern, die diese einsetzen wollen, harmonisiert werden. Diesem Thema widmen sich im Projekt PORTUNUS die Partner der TU Darmstadt und der Hochschule Darmstadt.
Im Kontext der Thematik widmet sich die TU-Darmstadt der theoretischen Fragestellung, wie aufkommende PQC-Algorithmen effektiver beschleunigt werden können. Weiterhin wird ebenfalls an einer praktischen Umsetzung in Form einer hardwarenahe Implementierung seitens der TU-Darmstadt geforscht. Das beinhaltet im Wesentlichen die Entwicklung von Multi-Level Intermediate Representation (MLIR) Compiler-Optimierungen für CPU, GPU, ASICs und FPGAs.
Die Hochschule Darmstadt entwickelt eine Plattform zur Integration dieser Compiler-optimierten Algorithmen. Dafür wird eine API entwickelt, welche eine flexible und benutzerfreundliche Verwendung dieser Algorithmen unter den vorgegebenen kryptografischen Anforderungen ermöglicht.
Das konkrete Ziel unseres Projektes ist die Erschaffung eines Frameworks, welches dem Programmierer über eine Zwischenschicht Zugriff auf die darunterliegenden Algorithmen bereitstellt. Das Framework versteckt dabei die Hardwaredetails und erlaubt es auch unerfahrenen Programmierern Post-Quanten Kryptografie einfach und sicher zu nutzen. Der Programmierer spezifiziert dabei nur, was er tun möchte, z.B. Daten verschlüsseln. Die Auswahl des konkreten Algorithmus und der Sicherheitsparameter erfolgt automatisch in der Zwischenschicht.
Aufgabenstellungen
Studierende haben bereits in den vergangenen Semestern einen Prototyp der PORTUNUS API entwickelt. Diese API wurde im letzten Semester um einen JAVA-Wrapper erweitert, um so neben der C++ Anbindung ebenfalls JAVA Plattformen zu unterstützen. Zusätzlich wurde ein JCA-Provider erstellt. Weiterhin gelang es, die Portunus Library auf Android mit den entsprechenden Dependencies zu cross-compilen, um so eine Grundlage zu schaffen, in Zukunft mit Mobile Messenger-Apps zu agieren. Allerdings existiert derweil kein funktionales Beispiel. Das primäre Ziel ist es, einen ersten Prototyp zu entwickeln, welcher die Portunus API in einer passenden Anwendungssoftware verwendet. Unter anderem gibt es die Möglichkeit auf der Arbeit der vorangegangenen Semestergruppe aufzubauen oder eine eigene Idee zu entwickeln. Empfehlungen sind unter anderem die Integration in einen E-Mail-Client, die Erstellung eines eigenen Messengers (beispielsweise mit qxmpp) oder das Verändern von bestehenden open-source Messenger Apps wie Conversions. Das Projekt verwendet Linux-basierte Dependencies und ist in C++ geschrieben.
Weitere Aufgabenmöglichkeiten:
- Sicherer Speicher für die Schlüsselverwaltung
- Ersetzen der CSV-File durch eine Datenbank, welche die Algorithmeninformationen beinhaltet
- Python Wrapper mit zugehörigen Providern und Third-Party Beispiel
- PORTUNUS Provider Erstellung für verschiedene Anwendungssoftware
- Integration von Algorithm Selection Tool
- Verbesserung des Dependencie Stacks mit bspw. Conan
Vorkenntnisse
- Gute Programmierkenntnisse in C/C++/JAVA sind notwendig.
- Erfahrungen im Umgang mit einschlägigen Tools (insbesondere GIT und Scrum) sind hilfreich
- Inhalte weiterführender Veranstaltungen der IT-Sicherheit (z.B. Kryptographie, Netzwerksicherheit) sind hilfreich.
- Es sind KEINE Vorkenntnisse im Bereich Post-Quanten-Kryptographie notwendig.
Rahmenbedingungen
Als Vorgehensmodell für agile Systementwicklung soll Scrum zum Einsatz kommen. Es werden die üblichen Entwicklungstools eingesetzt, vorzugsweise solche, die bereits am Fachbereich vorhanden sind, z.B. GIT Repository, Scrum-Board, etc. Wir knüpfen an die Vorarbeiten vorheriger Semester an, es ist geplant, das Projekt in zukünftigen Veranstaltungen weiterzuführen. Das Projekt steht unter der MIT-Lizenz.
Für weitere Fragen zum Projekt kontaktieren Sie uns gerne per E-Mail.
Prof. Dr. A. Wiesmaier, Gero Knoblauch, Erik Mauß
Hochschule Darmstadt
Kontakt
Kommunikation
Schöfferstraße 10
64295 Darmstadt
Büro: D19, 2.09
+49.6151.533-60185
alexander.wiesmaier@h-da.de
1
Sprechstunde
Nach Vereinbarung / by appointment