Kryptos Eine Lernplattform zur Kryptologie

Werbung
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
Herunterladen