Kryptos Techniken Implementierung Demo Schluss Kryptos Eine Lernplattform zur Kryptologie Marko Krause Universität Oldenburg - Abteilung Parallele Systeme Dimplomarbeit Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Übersicht 1 Kryptos 2 Techniken 3 Implementierung 4 Demo 5 Schluss Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Lernen Ausprobieren Ziel der Arbeit Lernplattform für Kryptologie Webbasiert – keine Software zu installieren Drei Teilgebiete Kryptographie Steganographie Hash-Algorithmen Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Lernen Ausprobieren Ziel der Arbeit Erläuterung einer Vielzahl von Algorithmen in diesen drei Teilbereichen Lernen und Ausprobieren Lernen – anhand von Text, Bild und Animationen Ausprobieren – alle vorgestellten Algorithmen auf der Webseite benutzbar Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Lernen Ausprobieren Lernen Jeder Algorithmus wird auf mehreren sogenannten Infoseiten erläutert ( Was ist das?) Infoseite enthalten ein Navigationsmenü, um alle Infoseiten dieses Algorithmus zu erreichen eine Textbox, die einen Teilaspekt dieses Algorithmus erläutert optional eine Animation Animation soll ergänzend beim Verständnis des Textes helfen Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Lernen Ausprobieren Eine typische Infoseite Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Lernen Ausprobieren Animation 1/3 Animation . . . . . . soll ergänzend beim Verständnis des Textes helfen . . . eignen sich gut, Systeme mit zwei oder mehr Zuständen zu erläutern (Jacob Nielsen) . . . sind gut geeignet, um kryptographische Algorithmen zu erläutern Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Lernen Ausprobieren Animation 2/3 Daten als Würfel Funktionen als Ovale Bewegung, Verschmelzung, Aufspaltung von Elementen Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Lernen Ausprobieren Animation 3/3 Probleme mit SVG-Animationen: Nicht von allen Browsern vollständig unterstützt Mozilla-basierend (z.B. Firefox): Bisher nur statische SVG-Fähigkeit Lösung: FakeSMILE, JavaScript-Bibliothek, die die Animationen emuliert Internet Explorer: Bisher keinerlei Unterstützung für SVG Lösung: Ein selbstentwickeltes Tool, welches SVG-Animationen in GIF-Animationen umwandelt Gute Unterstützung durch Opera und WebKit-basierende Browser (Safari, Chrome) Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Lernen Ausprobieren Ausprobieren 1/2 Algorithmen können selbst ausprobiert werden ( Ausprobieren) Daten können ver- und entschlüsselt werden Daten können in Bilder ein- und aus diesen wieder ausgebettet werden Der Hash-Wert von Daten kann berechnet werden Aber: Nur zu Übungszwecken ohne wichtigen Daten verwenden, da Verschlüsselung serverseitig geschieht Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Lernen Ausprobieren Ausprobieren 2/2 Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django Übersicht 1 Kryptos 2 Techniken 3 Implementierung 4 Demo 5 Schluss Marko Krause Kryptos SVG libstego Keccak Weiteres Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres Python 1991 von Guido van Rossum veröffentlicht Leichte Erlernbarkeit Unterstützt imperative, funktionale und objektorientierte Programmierung Programmcode wird von einem Compiler transparent in Bytecode umgewandelt und interpretiert Blockeinfassung durch Einrückung ⇒ meist bessere Lesbarkeit des Codes Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres Django 1/4 Webframework Ermöglicht es, Webanwendungen in Python zu realisieren Open-Source-Lizenz (BSD-Lizenz) Vergleichbar mit Ruby on Rails Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres Django 2/4 MTV – Model –Template View Abwandlung des Model-View-Controller-Schemas Model – Datenhaltung View – Programmlogik, Was wird dargestellt? Template – Layout, Wie wird es dargestellt? Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres Django 3/4 Unterstützung für verschiedene DBMS: MySQL, PostreSQL, SQLite, Oracle Objektrelationaler Mapper Zugriff auf Datenbank erfolgt über Python-Klassen und -Objekte Keine SQL-Kenntnisse notwendig Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres Django 4/4 Templates – HTML-„Schablonen“ die durch die View „ausgefüllt“ werden Automatisch generierbare HTML-Formulare Automatisch erstellte Administrationsoberfläche Freie Konfigurierbarkeit der URLs mittels regulärer Ausdrücke Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres SVG 1/2 Scalable Vector Graphics Freier XML-basierter Standard für Vektorgrafiken Verabschiedet durch das World Wide Web Consortium (W3C) Ermöglicht auch animierte Grafiken Animationen von Kryptos sind mit SVG realisiert Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres SVG 2/2 Jedes Bildelement wird durch ein Tag mit Attributen realisiert Ein Rechteck: Das <rect>-Tag <rect x=’5’ y=’5’ width=’20’ height=’10’ fill=’black’ > </rect> Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres SVG-Animation Das <animate>-Tag kann Attribute eines Eltern-Tags über einen Zeitraum verändern Ein animiertes Rechteck: Das <animate>-Tag <rect x=’5’ y=’5’ width=’20’ height=’10’ fill=’black’ > <animate attributeName=’x’ from=’5’ to=’20’ begin=’5s’ dur=’3s’ /> </rect> Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres libstego 1/2 Das Ausprobieren der steganographischen Algorithmen wird durch die Bibliothek libstego realisiert Entwickelt im Rahmen einer Projektgruppe an der Universität Oldenburg 2008/2009 Implementiert eine Anzahl steganographischer Algorithmen und Hilfsfunktionen Veröffentlicht unter der GPL Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres libstego 2/2 Implementiert in C Bindings für Python Aufruf von libstego in der View-Funktionen von Kryptos Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres Keccak 1/2 Hash-Algorithmus Runde-2-Kandidat des SHA-3-Wettbewerbs des NIST Entwickelt von Joan Daemen, dem Mitentwickler von AES, Guido Bertoni, Michael Peeters und Gilles Van Assche Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Python Django Keccak 2/2 Referenzimplementierung in C Neuimplementierung in Python Vorteil: Bessere Einbindung in Kryptos Nachteil: Schlechte Performance Marko Krause Kryptos SVG libstego Keccak Weiteres Kryptos Techniken Implementierung Demo Schluss Python Django SVG libstego Keccak Weiteres Weitere Algorithmen Open-Source-Python-Bibliotheken für alle weiteren Algorithmen python-crypto: XOR, DES, AES m2-crypto: RSA hashlib: MD5, SHA-1, SHA-2 Selbst implementiert: Caesar, Atbasch, Affine Chiffre Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Architektur Datenbank Übersicht 1 Kryptos 2 Techniken 3 Implementierung 4 Demo 5 Schluss Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Architektur Datenbank Architektur von Kryptos 1/2 Kryptos ist in vier Teilanwendungen aufgeteilt base_app: Infoseiten crypto: Ausprobieren-Seiten der kryptographischen Algorithmen stego: Ausprobieren-Seiten der steganographischen Algorithmen hash:Ausprobieren-Seiten der Hash-Algorithmen crypto, stego und hash stellen gleichzeitig auch die Schnittstellen zu den Algorithmus-Bibliotheken dar Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Architektur Datenbank Architektur von Kryptos 2/2 Kryptos-Projekt PyCrypto M2Crypto libstego base_app crypto stego Datenbank Manpages Ausprobieren Infopages Marko Krause Kryptos hash Kryptos Techniken Implementierung Demo Schluss Architektur Datenbank Datenbank Alle textuellen Inhalte sind in einer Datenbank gespeichert Ebenso weitere Attribute der Infoseiten Dateiname der SVG-Datei Seitenüberschrift hierarchische Anordnung der Infoseiten zueinander ... Dadurch leichte Erweiterbarkeit um weitere Algorithmen Verwendet wird das SQLite-DBMS von Python Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Übersicht 1 Kryptos 2 Techniken 3 Implementierung 4 Demo 5 Schluss Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Demo Vorführung von Kryptos Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Übersicht 1 Kryptos 2 Techniken 3 Implementierung 4 Demo 5 Schluss Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Zusammenfassung Kryptologie-Lernplattform für den Browser (vgl. beispielsweise CryptTool) Funktionierende Oberfläche für libstego der Projektgruppe Stego Erste allgemein zugängliche Implementierung von Keccak, (SHA-3-Kandidat) Breite Browserunterstützung der SVG-Animationen Bei inkompatiblen Browsern durch JavaScript-Emulation und GIF-Umwandlung realisiert Zu finden unter: http://celan.informatik.uni-oldenburg.de:8000 Quellcode: http://gitorious.org/kryptos Marko Krause Kryptos Kryptos Techniken Implementierung Demo Schluss Fragen Noch Fragen? Marko Krause Kryptos