**Dies ist eine alte Version des Dokuments!**
Verschlüsselung
Caesar-Verschlüsselung
Bei der Caesar-Verschlüsselung werden alle Buchstaben um eine Anzahl Stellen verrückt:
Aufgabe 1: Caesar-Verschlüsselung in Python
Schreibe eine Funktion caesar(klartext, n)
, die die Cäsar-Verschlüsselung umsetzt.
- Gebe nur Grossbuchstaben aus.
- Zeichen, die keine Buchstaben sind, sollen nicht verändert werden.
- Wie kannst du das Chiffrat (den Ciphertext) entschlüsseln?
Ein paar Tipps
Du kannst über die Buchstaben eines Strings laufen wie über die Elemente einer Liste:
s = "Hallo KSR" for buchstabe in s: print(buchstabe)
Einen String in Grossbuchstaben umwandeln:
print("Hallo KSR".upper()) >>> HALLO KSR
Alle Grossbuchstaben können in string.ascii_uppercase
abgefragt werden. Mit str.find() können wir den Index (oder -1) finden:
import string for buchstabe in "HALLO": print(string.ascii_uppercase.find(buchstabe)) >>> 7 0 11 11 14
Der Modulo-Operator %
gibt uns den Rest der Ganzzahl-Division zurück. Das ist praktisch, um den Index wieder bei A
starten zu lassen, wenn er grösser als Z
wird:
import string klartext = "Z" index = string.ascii_uppercase.find(klartext) index += 3 index = index % len(string.ascii_uppercase) ciphertext = string.ascii_uppercase[index] print(ciphertext) >>> C
Aufgabe 2 (Optional): Substitution
Statt einer fixen Verschiebung soll jeder Buchstabe durch einen beliebigen anderen ersetzt werden. Der Schlüssel ist also nicht mehr einfach eine Zahl n
, sondern ein String mit Länge 26, der für jeden Buchstaben A-Z dessen Entsprechung enthält.
Wie gross ist der Schlüsselraum der monoalphabetischen Substitution?
Schreibe eine Funktion substitution(klartext, schluessel)
, die den so verschlüsselten Text zurückgibt. Braucht es eine separate Funktion für die Dechiffrierung?
Häufigkeitsanalyse.
Nicht alle Buchstaben kommen gleich oft vor in einer Sprache. Dies können wir nutzen, indem wir das Buchstabe-Histogramm des Chiffrats mit dem der vermuteten Klartext-Sprache vergleichen.
Was sind die Probleme und Voraussetzungen?
Aufgabe 3: Monoalphabetische Substitution knacken mit Häufigkeitsanalyse.
Versuchen Sie, das Chiffrat eines englischen Klartexts zu knacken.