CrypTool-Buch

Neues Kapitel 13: Lightweight Introduction to Lattices, Juni 2020

Dieses 90-seitige Kapitel (momentan nur in Englisch) behandelt die Theorie von Gittern in einer leicht verständlichen Weise. Die Theorie wird begleitet von vielen praktischen Beispielen, SageMath-Code und kryptografischen Challenges. Die Eingabedaten der Challenges sind in Textdateien in chal_i_helper.zip gebündelt.

Neues Kapitel 14: CUDA Tutorial – Cryptanalysis of Classical Ciphers Using Modern GPUs and CUDA, April 2021

Dieses 90-seitige Kapitel (momentan nur in Englisch) enthält eine praktische Einführung in das Schreiben von CUDA-Programmen unter Linux und Windows. Es erläutert die Konzepte, die Überwindung von Problemen (Threads, Shared Memory, Debugging) und den Umgang mit Kompromissen. Die Theorie wird von praktischen Beispielen begleitet und es werden zwei komplette eigenständige GPU-Tools zur automatischen Entschlüsselung von Geheimtexten (Ciphertext-Only-Angriff) implementiert. Diese Tools zielen auf Geheimtexte, die durch monoalphabetische Substitution oder durch einfache Spalten-Transposition verschlüsselt sind.

Aktuelle Buch-Version: 12. Auflage, Mai 2018

In diesem kostenlosen, über 500 Seiten umfassenden Buch, das mit den CT-Programmen ausgeliefert wird, finden Sie eher mathematisch orientierte Informationen über das Lernen, Experimentieren und Nutzen von kryptografischen Verfahren. Die 12. Auflage ist ein umfangreiches Update des Buches.

Die Hauptkapitel wurden von verschiedenen Autoren verfasst und sind in sich abgeschlossen.

  • Das erste Kapitel beschreibt die Prinzipien der symmetrischen und asymmetrischen Verschlüsselung und erläutert kurz die aktuellen Entschlüsselungs-Rekorde bei modernen symmetrischen Verfahren. Es stellt Definitionen für die Widerstandsfähigkeit von Verfahren vor und erklärt kurz die Bedeutung der Kryptologie.

  • Im zweiten Kapitel wird – aus didaktischen Gründen – eine ausführliche Übersicht über Papier- und Bleistiftverfahren gegeben.

  • Kapitel 3 widmet sich ausführlich dem faszinierenden Thema der Primzahlen.

  • In Kapitel 4wird anhand vieler Beispiele bis hin zum RSA-Verfahren in die modulare Arithmetik und die elementare Zahlentheorie eingeführt.

  • Kapitel 5 liefert Einblicke in die mathematischen Konzepte und Ideen hinter der modernen Kryptografie.

  • Kapitel 6 gibt einen Überblick zum Stand der Attacken gegen moderne Hash-Algorithmen und widmet sich dann kurz den digitalen Signaturen: Sie sind unverzichtbarer Bestandteil von E-Business-Anwendungen.

  • Kapitel 7 stellt Elliptische Kurven vor: Insbesondere bei der Implementierung in Hardware bietet Elliptische-Kurven-Kryptografie eine sehr effiziente Alternative zur RSA-basierten Signatur-Generierung.

  • Kapitel 8 führt in die Boolesche Algebra ein. Diese ist Grundlage der meisten modernen, symmetrischen Verschlüsselungsverfahren, die auf Bitströmen und Bitblöcken operieren. Prinzipielle Konstruktionsmethoden dieser Verfahren werden beschrieben und in SageMath implementiert.

  • Kapitel 9 stellt homomorphe Kryptofunktionen vor, die insbesondere im Cloud-Umfeld an Bedeutung gewinnen.

  • Kapitel 10 gibt einen breiten Überblick und Vergleich über die zur Zeit besten Algorithmen für (a) das Berechnen diskreter Logarithmen in verschiedenen Gruppen, für (b) das Faktorisierungsproblem und für (c) Elliptische Kurven. Dieser Überblick wurde zusammengestellt, nachdem ein provozierender Vortrag auf der Black Hat-Konferenz 2013 für Verunsicherung sorgte, weil er die Fortschritte bei endlichen Körpern mit kleiner Charakteristik fälschlicherweise auf Körper extrapolierte, die in der Realität verwendet werden.

  • Kapitel 11 diskutiert die Gefahren für bestehende kryptografische Verfahren und stellt alternative Forschungsansätze (Post-Quantum-Kryptografie) für eine langfristige kryptografische Sicherheit vor.

Außerdem befindet sich im Anhang eine Auflistung zu Filmen und Büchern, in denen Kryptografie explizit eine Rolle spielt.

Viele Algorithmen sind anhand kleiner lauffähiger Codebeispiele in Python, SageMath, OpenSSL oder anhand einer der CrypTool-Versionen erläutert. Den Code der SageMath-Skripte finden Sie hier. Den Code von OpenSSL finden Sie hier.

Zum Erstellen des CrypTool-Buchs wurden SageTeX und PythonTeX verwendet. SageTeX ist im CTB selbst im Anhang zu SageMath kurz beschrieben. Zu PythonTeX haben wir unsere Erfahrungen anhand vieler Beispiele in ff. Dokument PythonTex-by-Examples.pdf beschrieben (rund 60 Seiten, Dokument nur in englisch). Mit beiden Tools lassen sich Berechnungen in LaTeX-Dokumenten schön automatisieren.