Funktionen

Print[PRINT]
.  Home  .  Lehre  .  Studentische Arbeiten  .  Bachelorarbeiten  .  ba-raspberry-gpu-crypto

Bachelor-Arbeit

Parallelisierung kryptografischer Algorithmen auf der Raspberry-Pi GPU

Der Raspberry-Pi ist ein 2012 erschienener Single-Board Computer mit großem aber kaum genutztem GPU Potential. Eine beispielhafte Nutzung der von der Raspberry-Pi GPU bereitgestellten Leistung von theoretischen 24 GFLOPS ist die Parallelisierung geeigneter Verschlüsselungs- und Signaturalgorithmen.

Es existiert bereits eine Vorarbeit des Lehrstuhls zu diesem Thema (Parallelization of AES on Raspberry Pi GPU in Assembly). In dieser Arbeit erfolgt die Parallellisierung von AES unter direkter Ansteuerung der 12 QPUs mithilfe von Assemblercode. Da die GPU des Raspberry-Pis ursprünglich als proprietäre Hardware veroeffentlicht wurde - und Broadcom 2014 nur den Architecture Reference Guide veröffentlichte - ist ein offizieller Assembler oder sonstige Hilfsmittel nicht verfügbar.

Allerdings existiert inzwischen eine C++ Bibliothek QPULib, die eine Domain Specific Embedded Language für die GPU des Rapberry-Pis darstellt. Diese Biblothek ermöglicht es, Code für die GPU des Raspberry-Pis in C++ zu schreiben statt, wie in der Vorarbeit, direkt mit Assembler arbeiten zu müssen. Um mit der QPULib kryptografische Algorithmen implementieren zu können, muss diese allerdings noch um weitere Datentypen erweitert werden. Aktuell sind nur die Typen Int, Ptr(Int), Float und Ptr(Float) implementiert.

Ziel dieser Bachelorarbeit ist es, die QPULib zu erweitern, so dass verschiedene kryptografische Algorithmen damit implementiert werden können. Anschließend soll die erweiterte Implementierung der QPULib genutzt werden, ausgewählte kryptografische Algorithmen für die GPU des Raspberry-Pis zu parallelisieren und zu implementieren. Abschließend sollen die Implementierungen durch ausführliche Benchmarks mit Referenzimplementierungen auf der CPU verglichen werden.

Für das Benchmarking wurde die genannte Vorarbeit bereits prototypisch in die openssl-Bibliothek integriert. Dieser Ansatz soll nach Möglichkeit fortgeführt werden um die Vergleichbarkeit der Ergebnisse zu gewährleisten.

Voraussetzungen

  • Fähigkeit und Wille, sich tiefgehend mit der Architektur der Raspberry Pi GPU auseinanderzusetzen.
  • Gutes Verstaendnis der Programmiersprachen C und C++, GPU-Treibern, sowie der Assembly-Language
  • Gutes Verstaendnis der Einschraenkungen hinsichtlich GPU-Assembly und GPU-Memory
  • Gutes Verstaendnis kryptografischer Algorithmen

Überblick der Aufgaben:

  1. Einarbeitung GPU Architektur
  2. Erweiterung der QPULib
  3. Parallelisierung und Implementierung kryptografischer Algorithmen mittels der QPULib
  4. Benchmarking der Implementierung mit Hilfe der OpenSSL-Bibliothek

Aufgabensteller:
Prof. Dr. D. Kranzlmüller

Dauer der Bachelor-Arbeit: 3 Monate

Anzahl Bearbeiter: Mehrere Bearbeiter möglich

Betreuer: