CITS » Lehre » Liste der Abschlussarbeiten

Liste der offenen Abschlussarbeiten

  • Implementing high-performance lattice algorithms for cryptanalysis (Master) (A. May)
  • Implementation of sieving algorithms for lattice-based cryptography (Master) (A. May)
  • CUDA Implementierung des Pollard's Rho Algorithmus (Bachelor, Master) (A. May)

  • 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): 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.

    CUDA Implementierung des Pollard's Rho Algorithmus

    Ziel dieser Arbeit ist eine effiziente GPU CUDA Implementierung des bekannten Pollard Rho Algorithmus um das diskrete Logarithmus Problem auf Elliptischen Kurven zu berechnen. Im Mittelpunkt dabei stehen nicht nur eine parallele Ausführung des Algorithmus, sondern auch die parallele Berechnung der zugrunde liegende Finiten Körper Arithmetik. Das bedeutet, dass die Addition, Multiplikation oder Exponentation parallel implementiert werden sollte. Als Grundlage könnten die Bibliotheken [cuda-fixnum]( oder [CGBN]( dienen. Darüber hinaus sollten verschiedenen Optimierungen genutzt werden (Sedgewick, Szymanski, and Yao) + Distinguished Points. Falls keine Erfahrung mit CUDA vorhanden ist, kann darüber nachgedacht werden, diese Arbeit auch mir OpenMP oder Intels SPMD Compiler ISPC zu implementieren.