Klassische Verfahren #
Einführung #
Zurückblickend betreffen die Verschlüsselungsmethoden das C (Confidentiality) in CIA.
Die Übertragung und die Speicherung von vertraulichen Nachrichten kann in zwei Kategorien unterteilt werden. In einer Grafik ist das dargestellt:
graph TD; uvn[Übertragung und Speicherung von vertraulicher Nachrichten]-->Steganographie; uvn[Übertragung und Speicherung von vertraulicher Nachrichten]-->Kryptographie; Kryptographie-->Substitution; Kryptographie-->Transposition; Substitution-->cw["Codierung (Wörter ersetzen)"]; Substitution-->cb["Chiffrierung (Buchstaben ersetzen)"];
Die Steganographie ist das bedeckte Schreiben auf einem Träger. Einem unbeteiligtem Dritten ist nicht klar, dass eine Nachricht auf dem Träger verborgen ist.
Die Kryptographie betrifft das geheime Schreiben, sodass ein Dritter die Nachricht nicht interpretieren kann. Die Kryptographie lässt sich noch weite unterteilen in Substitution (Ersetzung) und die Transposition (Vertauschung).
Wichtige Prinzipien der Kryptographie #
- Kerckhoffs-Prinzip: Die Sicherheit des Verschlüsselungsverfahrens darf nur von der Geheimhaltung des Schlüssels, nicht jedoch von der Geheimhaltung des Algorithmus abhängen.
- Shannon-Prinzipien:
- Konfusion (Mischen): Der Chiffretext muss möglichst gut einer Zufallsfolge gleichen, die statistische Verteilung im Klartext soll im Chiffretext nicht mehr ersichtlich sein.
- Diffusion (Verteilen): Eine Änderung eines Teils des Klartextes oder des Schlüssels soll den gesamten Chiffretext beeinflussen.
Sicherheit der Kryptographie #
Kryptosysteme sind unsicher, wenn sie mit weniger Aufwand als mit einer Brute-Force-Attacke geknackt werden können.
Diese Definition kann jedoch auch genauer formuliert werden. Ertel beschreibt es wie folgt:
- Es soll der Geldaufwand für das Knacken der Verschlüsselung den Wert der verschlüsselten Daten übersteigen.
- Ausserdem soll die erforderliche Zeit zum Knacken der Verschlüsselung grösser als die Zeit sein, die die Daten geheim bleiben müssen.
- Das mit einem bestimmten Schlüssel chiffrierte Datenvolumen soll kleiner sein als die zum Knacken erforderliche Datenmenge.
Um die Sicherheit bestimmen zu können, wird eine Kryptoanalyse durchgeführt. Dabei werden verschiedene Annahmen getroffen.
- Ciphertext-Only Analyse: Kennt nur Chiffrate
- Known-Plaintex Analyse: Kennt gewisse Klartext-Chiffrat Paare
- Choosen-Plaintext Analyse: Kann Klartexte wählen und die resultierenden Chiffrate analysieren.
- Brute-Force: Der Angreifer kann alle Schlüssel durchprobieren.
- Angriff auf den Geheimnisträger: Der Angreifer beschafft sich den Schlüssel durch Gewalt, Erpressung oder Social Engineering.
Informationstheorie #
Die Informationstheorie beschäftig sich mit theoretischen Problemen, die bei der Aufbewahrung, Verschlüsselung und Übertragung von Informationen auftreten. Die Grundlage dazu legte Claude Shannon bereits im Jahre 1948.
Der Informationsgehalt kann auch mit dem Überraschungsgrad umschrieben werden. Je kleiner dieser ist, desto eher kann das nächste Zeichen vorhergesagt werden. Die Formel dazu lautet: \(I_i (x_i) = -log_2(p_i)\) wobei Ii = Informationsgehalt des Zeichen i und pi = Auftretungswahrscheinlichkeit des Zeichen i ist.
Entropie #
Die Definition der Entropie in der Informationstheorie geht auch auf Shannon zurück. In der Thermodynamik, wie auch in der Informationstheorie, ist es ein Mass für die Unordnung. In der Informationstheorie gibt die Entropie einer Zeichenfolge den durchschnittlichen Informationsgehalt der Zeichen an und wird dementsprechend in Bit pro Zeichen gemessen. Wenn alle Zeichen in der Zeichenfolge gleich häufig auftreten, ist die Entropie maximal. Die Differenz zwischen der effektiven und maximalen Entropie ist die Redundanz. In einem Alphabet (base64) mit 64 Zeichen hat ein Zeichen einen Informationsgehalt von 6 Bit. Die maximale Entropie einer Zeichenkette ist dementsprechend:
\( \sum_{i=0}^{n} (\frac{1}{64} * 6) = 64 * (\frac{1}{64} * 6) = 6 Bit/Zeichen \) \( \sum_{i=0}^{n} (p_i * I_i) \)oder
\( \sum_{i=0}^{n} (p_i * -log_2(p_i)) \)Zu beachten ist, dass n = die Anzahl Zeichen im Alphabet sind, es also für jedes Zeichen eine Auftrittswahrscheinlichkeit gibt. Die Auftrittswahrscheinlichkeit kann natürlich auch 0 sein.
Shannon berechnete, dass die Entropie bei englischen Texten unter Berücksichtigung der Einzelbuchstabenstatistik 4.19 Bit/Zeichen beträgt. Wenn die Zusammenhänge von aufeinanderfolgenden Buchstaben und Worten berücksichtigt werden, liegt diese noch bei 0.6 bis 1.3 Bit/Zeichen.
Transpositionverfahren #
- Gartenzaun-Chiffre - Die Buchstaben werden abwechselnd in mehrere Zeilen geschrieben. Das so entstehende Zickzack-Muster ist der Klartext und die einzelnen Zeilen können sind einfach verschlüsselt.
- Skytale von Sparta - Um einen Stab mit Kanten wird ein Papierstreifen gewickelt. Nun wird zeilenweise um den Stab die Nachricht aufgeschrieben.
Substitutionsverfahren #
- Caesar Code - Jeder Buchstabe wird durch den n-ten Buchstaben ersetzt. Bei n = 1 wird das A zu B, bei n = 2 wird das A zu C. Es gibt also 26 Schlüssel zum Probieren.
- Vigenère - Es werden so viele Alphabete verwendet, wie der Schlüssel Zeichen hat. Der Klartextbuchstabe bestimmt die Zeile und der Schlüsselbuchstabe bestimmt die Spalte. In die Felder dieser Hilfstabelle wird das Alphabet spaltenweise hineingeschrieben.
- One-Time-Pad - Ist eine Vigenère Verschlüsselung mit einer Schlüssellänge = Klartextlänge.
- Enigma - Ist eine Maschine, die lange als sehr sicher galt.
Das bekannte Verschlüsselungsverfahren AES (Advanced Encryption Standard) verwendet sowohl Transpositionsverfahren wie auch Substitutionsverfahren.
Referenzen #
- Wolfgang Ertel, “Angewandte Kryptographie”, 239 Seiten, ISBN 978-3-446-45468-2
- Bruce Schneier, “Applied Cryptography: Protocols, Algorithms, and Source Code in C, 2nd Edition”, 784 Seiten, ISBN 0-471-11709-9
- Simon Sing, “The Code Book, a history of codes and code breaking from Ancient Egypt to the Internet", https://simonsingh.net/The_Black_Chamber/index.html
- Dan Boneh and Victor Shoup, “A Graduate Course in Applied Cryptography”, https://toc.cryptobook.us/