Universität Duisburg-Essen
Verteilte Systeme
Kryptoanalyse des Vigenère-Autokey Verfahrens in CrypTool 2.0
Prüfer Prof. Dr.-Ing. Torben Weis
Betreuer Dr. Arno Wacker
Bearbeiter Dennis Nolte
Dauer 3 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. Dies 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.

Blaise de Vigenère veröffentlichte im 16ten Jahrhundert die später nach ihm benannte Vigenère-Chiffre. Es handelt sich dabei um eine polyalphabetische Verschlüsselungsmethode, bei der man das Passwort wiedeholt über den zu verschlüsselnden Text schreibt. Anschließend wird jeder Buchstabe des Klartextes mit dem Caesar-Verfahren verschlüsselt, wobei der Schlüssel zu dem Caesar-Verfahren jeweils durch den darüberstehenden Buchstabe aus dem Passwort gegeben ist. Diese Verschlüsselung galt für ca. drei Jahrhunderte als sicher und wurde auch als „Le chiffre indéchifrable“ bezeichnet. Sie wurde erstmalig durch den Briten Charles Babbage im Jahre 1854 durch die Ausnutzung der Periodizität des Passworts gebrochen. Die Vigenère-Autokey-Chiffre (Vigenère-Selbstschlüssel-Verfahren), welche tatsächlich von Vigènere erfunden wurde, verhindert genau diesen Angriff und ist somit deutlich schwerer zu brechen. Anstelle von dem sich wiederholenden Passwort wird oberhalb des zu verschlüsselnden Textes das Passwort einmal und danach der Klartext geschrieben. Dadurch, dass sich das Passwort nicht wiederholt sind alle Ciphertext-only-Angriffe, die auf der Periodizität des Passwortes basieren, nicht anwendbar, wodurch die Kryptoanalyse deutlich aufwändiger wird. Es gibt dazu aber trotzdem verschiedene Ansätze. So macht man sich zu Nutze, dass bestimmte N-Gramme in der natürlichen Sprache gehäuft auftreten. Diese versucht man nun als Schlüssel an allen möglichen Stellen einzusetzen. Erhält man dadurch sinnvoll klingende Klartextsilben, hat man zum einen den wahrscheinlichen Klartext an dieser Stelle, damit aber auch den Schlüssel für eine Folgestelle und aus der eingesetzten Schlüsselsilbe selbst den Klartext einer vorherigen Stelle gefunden. Es ist dann nur noch die Länge der Verschiebung (Schlüsselwortlänge) zu ermitteln, um die passenden Stellen zum Einsetzen zu finden. Im Rahmen dieser Arbeit soll ein Vigenère-Autokey Plug-In für CrypTool 2.0 erstellt werden (oder die erweiterte Funktionalität in das bestehende Vigenère-Plug-In eingebunden werden). Anschließend sollen die verschiedenen Angriffsmöglichkeiten der Autokey-Verschlüsselung untersucht werden. Der oder die vielversprechendsten Angriffe sollen auch als Plug-In für CrypTool 2.0 entworfen und implementiert werden. Dabei sollen sowohl Ciphertext-only als auch Known-Plaintext-Angriffe in untersucht werden. Abschließend sollen die implementierten Angriffe evaluiert werden.

Die entwickelten Plug-Ins im Rahmen dieser Arbeit müssen in das bestehende 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 Bachelorarbeit – zu dem festgesetzten Zeitpunkt beim Prüfungsamt eingereicht werden. Zusätzlich besteht die Möglichkeit die Arbeit im Rahmen eines Kolloquiums vorzustellen.

 

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

Impressum - Datenschutz