CrypTool im Überblick Martin Schütte 3. Juni 2012 Inhaltsverzeichnis I. Erste Schritte 2 1. Programm-Aufbau 2 2. Symmetrische Verschlüsselungen 2 3. Asymmetrische Verfahren 3 4. Hashfunktionen 3 5. Tools 3 6. Analysen 4 7. Demos & Visualisierungen 5 II. Use Cases 6 8. Klassische Verschlüsselung 6 9. AES-Verschlüsselung 7 10.Dokument signieren 8 11.Hashkollision 8 12.Klassische Kryptoanalyse 9 1
2. Symmetrische Verschlüsselungen Teil I. Erste Schritte 1. Programm-Aufbau CrypTool ist eine Sammlung von Algorithmen, Hilfsmitteln und Lehrmaterialien zur Kryptographie. Der Funktionsumfang gliedert sich in die Bereiche: Symmetrische Verschlüsselungen (klassische und moderne) Asymmetrische Verfahren (Verschlüsselungen und Signaturen) Hash-Funktionen Tools Analysen Visualisierungen und Demos Hinsichtlich der Oberfläche ist CrypTool Dokument-basiert, das heißt wie in einem Texteditor können mehrere Dateien (mit Text und Binärdaten) geöffnet werden (Abb. 1). Die meisten Aktionen wirken auf das aktive Dokument und erzeugen ein neues Dokument. Um den Überblick zu behalten bekommen alle Dokumente bzw. Unterfenster einen beschreibenden Titel. Beispiel: wenn das Dokument blindtext.txt aktiv ist und die Histogramm-Funktion benutzt wird dann öffnet sich ein neues Dokument, das ASCII- Histogramm von <blindtext.txt> ; wenn das Dokument verschlüsselt wird, so erscheint der Geheimtext in einem neuen Dokument RC4-Verschlüsselung von <blindtext.txt>, Schlüssel <12 AB>. 2. Symmetrische Verschlüsselungen Unter Ver-/Entschlüsseln sind die verschiedene kryptographische Verfahren erreichbar, dabei sind die symmetrischen Verschlüsselungen aufgeteilt in klassische und moderne Verfahren. Abbildung 1: Fenster beim Programmstart 2
(a) Parameter- und Schlüsseleingabe für Playfair-Verschlüsselung (b) Verschlüsselter Text (Caesar und DES) Abbildung 2: Verschlüsselung Dabei haben die meisten klassischen Verfahren gestaltete Dialogfenster mit Kurzbeschreibung des Verfahrens und Eingabe spezieller Schlüsselparameter, während die modernen Verfahren als Eingabe stets nur den Schlüssel bekommen. 3. Asymmetrische Verfahren CrypTool implementiert asymmetrische Verschlüsselung mit RSA (Ver-/Entschlüsseln Asymmetrisch), hybride Verschlüsselung mit RSA-AES und ECC-AES (Ver-/Entschlüsseln Hybrid), sowie digitale Signaturen (Digitale Signaturen). Vor der Benutzung der asymmetrischen Verfahren müssen public/private Schlüsselpaare erzeugt werden. Dafür beinhaltet CrypTool eine eigene Verwaltung unter Digitale Signaturen PKI hier können RSA-, DSA- und ECC-Schlüssel erzeugt werden, zudem gibt es einen PKCS #12-Import/Export. 4. Hashfunktionen Unter Einzelverfahren Hashverfahren lassen sich die gebräuchlichen Hashfunktionen berechnen. Zudem lassen sich Schlüssel aus Passwörtern generieren (PKCS #5) und verschiedene Hash Message Authentication Codes (HMAC) berechnen. 5. Tools Ein paar Funktionen haben nicht direkt mit Kryptographie zu tun, sind aber manchmal sehr nützlich: Die Editor-Ansicht lässt sich zwischen Text-Ansicht und Hexadezimal-Ansicht für Binärdaten umschalten; sie kann Zeilenende und Zeilenumbrüche anzeigen sowie die Zeichen markieren die nicht im aktuellen Alphabet enthalten sind (Umlaute, Ziffern, Sonderzeichen). Zudem können Sonderzeichen entfernt und Text in Groß-/Kleinschreibung konvertiert werden (Abb. 3a). (Alles unter Menüpunkt Ansicht.) 3
6. Analysen (a) Einfache Textkonvertierungen, Ansicht Textdokument formatieren... (b) Einzelverfahren Tools Codierungen Base64- Codierung/Decodierung Abbildung 3: Tools (a) Histogramm eines Texts (b) Analyse Zufallsanalyse 3D- Visualisierung... eines Geheimtexts (links) und eines ASCII-Texts (rechts) Abbildung 4: Analyse-Tools Im Menü unter Einzelverfahren Tools finden sich mehrere im Internet gebräuchliche: Base64 (Abb. 3b), UU, ASN.1 (nur Dekodieren), und Kompression mit GnuZip. Außerdem können Zufallsdaten erzeugt werden und es gibt Tools zur Qualitätsmessung und Erzeugung von Passwörtern. 6. Analysen Die Analyse umfasst drei Bereiche: einfache Tools zum Bestimmen der Texteigenschaften (Entropie, Histogramm, N- Gramme, Autokorrelation, Periodizität) unter Werkzeuge zur Analyse; automatische und manuelle Kryptoanalyse der einzelnen Verfahren; Zufallsanalyse mit verschiedenen Tests für die Gleichverteilung in Geheimtexten. 4
(a) Signaturdemo (b) DES-Visualisierung Abbildung 5: Demo und Visualisierung 7. Demos & Visualisierungen Für einige Verfahren gibt es Demonstrationen, d. h. eine detailliertere Darstellung der Schritte: RSA-Verfahren mit selbstgewählten Parametern p, q, n (Ver-/Entschlüsseln Asymmetrisch RSA-Demo... ), Hashfunktionen und Veränderung der Hashwerte (Einzelverfahren Hashverfahren Hash-Demo... ), Signieren eines Dokuments Schritt-für-Schritt (Digitale Signaturen Signaturdemo (Signaturerzeugung)... ), DH-Schlüsselaustausch (Einzelverfahren Protokolle Diffie-Hellman-Demo... ), Challenge-Response im Netzwerk (Einzelverfahren Protokolle Authentisierungsverfahren im Netz... ). Über den Menüpunkt Einzelverfahren Visualisierungen finden sich einige Java-Applets um die Funktionsweise einiger Algorithmen (Caesar, Vigenère, DES vgl. Abb. 5b, AES) in Animationen zu erklären. 5
8. Klassische Verschlüsselung (a) Schlüsseleingabe, Ver- /Entschlüsseln Symmetrisch (klassisch) Caesar/Rot-13 (b) Texteinstellungen (c) Geheimtext Abbildung 6: Dialoge für die Caesar-Verschlüsselung Teil II. Use Cases 8. Klassische Verschlüsselung 8.1. Caesar-Verschlüsselung Als einfachstes Beispiel verschlüsseln wir einen Text durch Buchstabenrotation (Cäsar- Chiffre). Den Ausgangstext öffnen wir als Dokument bzw. tippen ihn als neues Dokument ein. Der Menüpunkt Ver-/Entschlüsseln Symmetrisch (klassisch) Caesar/Rot-13 öffnet die Schlüsseleingabe, wir wählen den Schlüssel F bzw. 5 (Abb. 6a). Der Button Textoptionen erlaubt zusätzliche Einstellungen zum benutzten Alphabet, z.bsp. ob Groß-/Kleinschreibung beibehalten wird und ob Leer-/Sonderzeichen als Teil des Alphabets betrachtet und mitverschlüsselt werden (Abb. 6c). Das Ergebnis der Verschlüsselung wird als neues Dokument geöffnet, dessen Titel die wichtigsten Informationen wiedergibt (Abb. 6c). 6
8.2. Permutations-Verschlüsselung (a) Ver-/Entschlüsseln Symmetrisch (klassisch) Permutation/Transposition... (b) Zwischendialog mit der inversen Permutation (optional) (c) Geheimtext Abbildung 7: Dialoge für die Permutations-/Transpositions-Verschlüsselung 8.2. Permutations-Verschlüsselung Ganz analog lässt sich der Text durch Permutation verschlüsseln unter Ver-/Entschlüsseln Symmetrisch (klassisch) Permutation/Transposition.... Neben der Eingabe von ein oder zwei Permutationen bzw. Schlüsseln können wir einstellen ob die Eingabe aus Binärdaten oder Text besteht (wir wählen hier Text, Abb. 7a). Optional werden noch die Permutationen und ihre Inversen angezeigt (Abb. 7b), dann sehen wir den Geheimtext als Ergebnis (Abb. 7c). 9. AES-Verschlüsselung Die modernen Verfahren (unter Ver-/Entschlüsseln Symmetrisch (modern)) sind in der Benutzung alle gleich; als Beispiel wählen wir AES. Bei Auswahl des Algorithmus unter Ver-/Entschlüsseln Symmetrisch (modern) Rijndael (AES) muss der Schlüssel hexadezimal eingegeben werden (Abb. 8a) und weil das Verfahren auf Binärdaten arbeitet ist auch der Geheimtext stets binär (Abb. 8b). 7
11. Hashkollision (a) Ver-/Entschlüsseln Symmetrisch (modern) Rijndael (AES) (b) Geheimtext Abbildung 8: AES-Verschlüsselung 10. Dokument signieren Die asymmetrischen Verfahren benutzen eine Liste von public/private-schlüsselpaaren, so dass wir zuerst unter Digitale Signaturen/PKI PKI Schlüssel erzeugen/importieren ein Schlüsselpaar erzeugen oder aus einer PKCS #12-Datei importieren müssen (Abb. 9a). Unter Digitale Signaturen/PKI PKI Schlüssel anzeigen/exportieren lassen sich die vorhandenen Schlüsselpaare auflisten, im Detail anzeigen sowie exportieren (Abb. 9b). Ein bestehendes Dokument lässt sich mit einem eigenen Schlüssel signieren (Menüeintrag Digitale Signaturen/PKI Dokument signieren..., Abb. 9c). Wenn wir sowohl unseren öffentlichen Schlüssel (als PKCS #12-Datei) und das Dokument mit Signatur weitergeben, so kann der Empfänger die Signatur überprüfen (Digitale Signaturen/PKI Signatur überprüfen, Abb. 9d) Um die Einzelschritte einer Signatur zu sehen gibt es auch eine Visualisierung als Flussdiagramm (Digitale Signaturen/PKI Signaturdemo (Signaturerzeugung), Abb. 5a). 11. Hashkollision Um ein Verfahren mit Hashfunktion anzugreifen wollen wir eine Hashwert-Kollision suchen; um den Aufwand überschaubar zu halten starten wir einen Angriff auf MD5 und es reicht uns wenn die ersten 40 Bits des Hashwerts gleich sind. Die CrypTool-Funktion dazu findet sich unter Analyse Hashverfahren Angriff auf den Hashwert der digitalen Signatur. Als Eingabe benötigen wir zwei Texte, hier benutzen wir die vorgeschlagenen Beispieltexte (Abb. 10a). Außerdem geben wir unter Optionen (Abb. 10b) an welche Hashfunktion wir benutzen (MD5), wieviele Bits signifikant sind (40) und wie wir die Texte modifizieren wollen (mit Leerzeichen). Mit Nachrichtenpaar suchen startet die Suche, die mit wenigen signifikanten Bits nicht allzulange dauern sollte, und sobald eine Kollision gefunden wurde erscheint eine Statistik (Abb. 11a) über die benötigte Rechenzeit und Anzahl der Operationen. Optio- 8
(a) Schlüssel erzeugt, Digitale Signaturen/PKI PKI Schlüssel erzeugen/importieren (b) Detailanzeige, Digitale Signaturen/PKI PKI Schlüssel anzeigen/exportieren (c) Digitale Signaturen/PKI Dokument signieren... (d) Digitale Signaturen/PKI Signatur überprüfen... Abbildung 9: Signieren nal können wir auch diese Statistik als Dokument sichern ( Statistik ausgeben ) bevor wir als Ergebnis die beiden Dokumente angezeigt bekommen (Abb. 11b). 12. Klassische Kryptoanalyse 12.1. klassische Verfahren Für mehrere klassische Verschlüsselungen sind automatisierte Angriffe implementiert. Wenn wir einen Geheimtext haben und wissen dass er Vigenère-verschlüsselt ist, dann reicht in CrypTool ein Aufruf der Fuktion Analyse Symmetrische Verschlüsselung (klassisch) Ciphertext-Only Vigenère. Die einzelnen Schritte der Kryptoanalyse werden dann automatisch abgearbeitet: Bestimmen der Schlüssellänge mittels Autokorrelation (Abb. 12a), Suche des Schlüssels mittels Häufigkeitsverteilung (Abb. 12b) und Entschlüsseln des Texts (Abb. 12c). 9
12. Klassische Kryptoanalyse (a) Analyse Hashverfahren Angriff auf den Hashwert der digitalen Signatur (b) Optionen: Hashwertfunktion und Art der Nachrichtenveränderung Abbildung 10: Start der Hashwert-Kollisionssuche (a) Hash-Kollision gefunden (40 bits) (b) gefundene Texte und Statistik Abbildung 11: Ergebnis der Hashwert-Kollisionssuche 12.2. moderne Verfahren Falls wir einen Geheimtext haben, der mit einem modernen Verfahren verschlüsselt wurde, so können wir einen Brute-Force-Angriff starten wenn wir den Algorithmus und die Schlüssellänge kennen. Die CrypTool-Funktionen finden wir im Menü unter Analyse Symmetrische Verschlüsselung (modern). Angenommen wir haben ein Dokument von dem wir nur wissen dass es mit RC2 und einem 16-bit Schlüssel verschlüsselt ist, also öffnen wir Analyse Symmetrische Verschlüsselung (modern) RC2 (Abb. 13a). Falls wir zusätzliche Informationen hätten, so könnten wir den Suchraum einschränken indem wir hier einzelne Schlüsselbytes eingeben. Nach Ausprobieren aller Schlüssel werden die Resultate mit geringster Entropie angezeigt (Abb. 13b). Normalerweise ist das Resultat mit geringster Entropie der Klartext (falls dieser nicht vorher schon komprimiert wurde). Nach Auswahl eines Ergebnisses wird der Text entschlüsselt. 10
12.2. moderne Verfahren (a) Bestimmen der Schlüssellänge, Analyse Symmetrische Verschlüsselung (klassisch) Ciphertext-Only Vigenère (b) Bestimmen des Schlüssels (c) Entschlüsselter Text Abbildung 12: Automatisierte Vigenère-Entschlüsselung (a) Analyse Symmetrische Verschlüsselung (modern) RC2... (b) Ergebnis des Brute-Force- Angriffs Abbildung 13: Automatisierte RC2-Entschlüsselung Zum Autor: Martin Schütte ist Systemadministrator und Programmierer. Sein Arbeitsschwerpunkt ist Netzwerksicherheit auf allen Schichten vom Paket- bis zum Spamfilter. Dieser Text steht unter Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. 11