Effizientes Lösen linearer Gleichungssysteme über GF(2) - CDC ...
Effizientes Lösen linearer Gleichungssysteme über GF(2) - CDC ...
Effizientes Lösen linearer Gleichungssysteme über GF(2) - CDC ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Da für die Verwendung von Grafikkarten die Daten erst an diese <strong>über</strong>tragen<br />
werden müssen, ist es wichtig im Vorfeld zu prüfen, ob die Komplexität<br />
der Berechnungen die Latenz, welche durch den Datentransfer entsteht, ausgleichen<br />
kann. Ein wichtiger Wert ist in diesem Zusammenhang die Menge<br />
der ausgeführten Operationen pro Datenelement. Bei <strong>Gleichungssysteme</strong>n<br />
hängt die Anzahl der Rechenschritte auf einem Feld von dessen Position in<br />
der n × m- Matrix ab und liegt zwischen einer und m Operationen. Die<br />
genaue Dimension der aus kryptoanalytischen Methoden hervorgehenden linearen<br />
<strong>Gleichungssysteme</strong> ist unklar, da diese z.B. bei Attacken auf Stromverschlüsselungen<br />
von der Umwandlung des polynominalen in das lineare<br />
System abhängen. Dennoch kann davon ausgegangen werden, dass die Matrizen<br />
sehr groß sind und die Anzahl ihrer Elemente nicht selten sechsstellig<br />
ist.<br />
Im ersten Schritt wurde das Gaußsche Eliminationsverfahren umgesetzt, da<br />
es sich dabei um einen einfachen Algorithmus handelt, der schnell parallelisiert<br />
werden kann. Des Weiteren ist er Teil eines anderen, schnelleren Algorithmus,<br />
der “Method of Four Russians“ Inversion. Dieser war das eigentliche<br />
Ziel der Arbeit.<br />
In Kapitel 2 soll ein grober Überblick <strong>über</strong> CUDA sowie Grafikarten von<br />
NVIDIA gegeben und die geschichtliche Entwicklung dargestellt werden. Für<br />
eine optimale Programmierung ist es unerlässlich die genaue Architektur und<br />
Funktionsweise der GPUs zu kennen. Beispielsweise kann die volle Bandbreite<br />
bei einem Zugriff auf den globalen Speicher nur erreicht werden, wenn<br />
das Programm bestimmte Rahmenbedingungen einhält. Neben diesem Off-<br />
Chip-Speicher wird auch ein On-Chip-Speicher angeboten, welcher als Cache<br />
fungiert und von dem Anwender selbst verwaltet wird. Mit diesem können<br />
Verzögerungszeiten bei einem mehrmaligen Zugriff auf die selben Daten im<br />
RAM vermieden und so eine bessere Performanz erreicht werden.<br />
Kapitel 3 beschreibt die “Method of Four Russians“ Inversion und erläutert<br />
die genaue Umsetzung. Wird ein Algorithmus, welcher normalerweise auf<br />
der CPU arbeitet, auf der GPU ausgeführt, so ist es sinnvoll diesen zuvor<br />
anzupassen. Zum einen sollte das Verfahren so modifiziert werden, dass es<br />
aus verschiedenen autonomen Blöcken besteht, die parallel bearbeitet werden<br />
können, und zum anderen dürfen zwischen diesen Ausführungseinheiten<br />
keine Datenabhängigkeiten vorliegen, da es sonst zu falschen Ergebnissen<br />
3