Universität Duisburg-Essen
Verteilte Systeme
Verteilte Berechnungen in CrypTool 2.0
Prüfer Prof. Dr.-Ing. Torben Weis
Betreuer Dipl.-Inform. Matthäus Wander, Dr. Arno Wacker
Bearbeiter Christian Arnold
Beginn Oktober 2009
Dauer 6 Monate

CrypTool 2.0 – der Nachfolger der bekannten e-Learning Anwendung für Kryptographie und Kryptoanalyse CrypTool – ist ein Open-Source Projekt welches Lernenden, Lehrenden und Entwickler mit Interesse an der Kryptographie die Möglichkeiten eröffnet selbst verschiedene kryptographische und kryptoanalytische Verfahren anzuwenden und auszuprobieren. Die moderne Benutzeroberfläche ermöglicht per einfachem und intuitiven Drag & Drop das Erstellen von einfachen bis hin zu sehr komplexen kryptographischen Algorithmen. Die geschieht dabei mit einer graphischen Programmiersprache, welche speziell für diesen Zweck entwickelt wurde. Der Benutzer kann dabei ohne besondere Programmierkenntnisse die Algorithmen miteinander verbinden und so eigene, neue Algorithmen und Abläufe erschaffen und testen.
CrypTool 2 basiert auf modernsten Techniken wie z.B. das .NET Framework (zurzeit 3.5 SP1) und der Windows Presentation Foundation (WPF). Darüber hinaus ist die Architektur von CrypTool 2.0 vollständig Plug-In-basiert und modular aufgebaut wodurch die Entwicklung neuer Funktionalitäten stark vereinfacht wird. Im Rahmen dieses Projekts wurden bereits eine Mehrzahl von kryptographischen Algorithmen wie z.B. AES, SHA1 oder die Enigma als Plug-Ins entwickelt.

Alle bisher entwickelte Plug-Ins im Rahmen des CrypTool 2.0 Projekte werden vollständig lokal auf einem Rechner ausgeführt. Dabei nutzen einige Plug-Ins bereits mehrere Kerne insofern diese vorhanden sind. Es ist leicht einzusehen, dass insbesondere bei der Kryptoanalyse das Verwenden von mehreren Rechner, die alle an dem gleichen Problem arbeiten, eine starke Beschleunigung von rechenintensiven Problemen zur Folge haben kann. Daher sollen in dieser Arbeit verschiedene Möglichkeiten untersucht werden, wie man im Rahmen der von CrypTool 2.0 gegebenen Möglichkeiten die zurzeit lokal durchgeführten Berechnungen auf eine beliebige Anzahl von Rechner ausweiten kann. Dabei soll allerdings nicht ein zentraler Server zur Verwaltung aller Rechner eingesetzt werden. Vielmehr soll das System sich vollständig selbst in einem sogenannten peer-to-peer Netzwerk organisieren.
Eine Möglichkeit dies zu erreichen besteht in der Verwendung des peers-at-play-Frameworks (pap), welches auch an dem Lehrstuhl Verteilte Systeme entwickelt wird. Das pap-Framework könnte dazu genutzt werden um Daten von einem Rechner zu einem anderen zu transportieren – vollständig transparent für den Benutzer. Dafür müssten zwei Plug-Ins entwickelte werden: das „Verteilte Speichern“ und das „Verteilte Laden“. Das „Verteilte Speichern“-Plug-In würde alle Daten, die zu dem Plug-In geschickt werden über das pap-Framework an alle „Verteilte Laden“-Plug-Ins verteilen und jeder Empfänger kann nun selbst entscheiden was mit den Daten geschehen soll – im einfachsten Fall führt der Empfänger eine Berechnung durch, während der Sender eine spezielle Aufgabe an verschieden Empfänger verteilt. Natürlich ist diese nur ein Grundbaustein welcher noch erweitert werden muss um ein vollständiges, selbst-organisierendes verteiltes Berechnen zu ermöglichen.

Die entwickelten Plug-Ins im Rahmen dieser Arbeit müssen in das bestehen Versionierungssystem (SVN) von CrypTool 2.0 als Open-Source integriert werden. Dabei ist angestrebt, dass die entwickelten Plug-Ins bei Abschluss der Arbeit einen so hohen Qualitätsstand erreichen, so dass diese in einem zukünftigen Release der Software mit veröffentlich werden können. Zusätzlich wird zu jedem Plug-In eine durchgehende Dokumentation im Quelltext und eine Hilfeseite, welche durch den Benutzer abrufbar ist erwartet. Abschließend muss die gesamte Arbeit, insbesondere die Problembeschreibung, Anforderungen, Ergebnisse und getroffene Entscheidungen in Form einer schriftlichen Ausarbeit – der Diplomarbeit – zu dem festgesetzten Zeitpunkt beim Prüfungsamt eingereicht werden. Zusätzlich besteht die Möglichkeit die Arbeit im Rahmen eines Kolloquiums vorzustellen.
Voraussetzungen: Sehr gute Kenntnisse im Bereich der verteilten bzw. peer-to-peer Systeme und gutes Hintergrundwissen über verschiedene kryptographische und kryptoanalytische Methoden. Zusätzlich ist Wissen über verteilte Berechnungen notwendig bzw. muss im Rahmen dieser Arbeit erworben werden. Programmiererfahrung in objektorientierten Sprachen ist eine grundlegende Voraussetzung für diese Arbeit. Vorkenntnisse von .NET C# und WPF sind von Vorteil.

 

© Universität Duisburg-Essen, Verteilte Systeme - Kontakt: webmaster@vs.uni-due.de

Impressum - Datenschutz