Liste der offenen Abschlussarbeiten
Implementing high-performance lattice algorithms for cryptanalysis using i.e. multithreads, vectorization, GPU instructions
fplll 5.1.0, an implementations of several, fast lattice algorithms was released on 26 March 2017 and now supports interfacing external enumeration libraries. This paves the way for functions in multithreaded/MPI/GPU enumeration libraries called during execution. For example, one can enable an external enumeration library with set_external_enumerator(&external_enumeration_function) and if the external enumerator returns -1 fplll automatically falls back to the internal enumeration routine, indicating it can't run the job externally. That the code works as expected can be seen when using it i.e. in combination with an example external library (by Marc Stevens): https://github.com/cr-marcstevens/fplll-extenum where the extenum library gives similar yet not identical results.
Implementation of sieving algorithms for lattice-based cryptograph
Sieving algorithms for finding shortest vectors (SV) in high-dimensional lattices is a theoretically studied field also in cryptography. While little is known about practical performance, the heuristics of finding approximate SV with sieving algorithms are currently giving the asymptotically best algorithms for this task. This is important for estimating the computational hardness of solving the shortest vector problem (SVP) in dimensions suitable for lattice-based cryptography. Overestimating the hardness would prohibit accurately choosing parameters making schemes inefficient, while underestimation computational cost (i.e. time/memory needed) can result in insecure systems that give rise to cryptographic attacks. Part of this thesis can be a proof-of-concept implementation (in sage, Python) and a fast C++ version of latest sieving algorithms.
Text: Implementierung von k-Listen Algorithmen auf Grafikkarten (CUDA)
Im aktuellen Wettbewerb der NIST [1] zur Auswahl eines PK Verfahrens ist Classic McEliece einer der Finalisten. In dieser Arbeit soll es darum gehen, ein Programm in CUDA zu schreiben, dass das zugrunde liegende Problem des Syndrom Decodierens von Goppa Codes löst [2]. Der wichtigste Baustein dieses Programms wird eine effiziente Implementierungs des k-Listen Algorithmus sein [3, S.33-42]. Zum bearbeiten dieser Arbeit ist es Sinnvoll vorher Kryptanalyse I gehört zu haben, ist aber nicht Notwendig. Außerdem sind sehr gute Programmierkenntnisse von C++/CUDA unabdingbar.
[1]: https://csrc.nist.gov/projects/post-quantum-cryptography/round-3-submissions
[2]: https://decodingchallenge.org/goppa
[3]: https://www.cits.ruhr-uni-bochum.de/imperia/md/content/may/kryptanalyse_ii.pdf