Station - Implementierung
Aufgaben zur Auswahl
Du kannst dich auf ganz unterschiedliche Weise mit der Implementierung des Verfahrens mit modularer Addition auseinandersetzen. Wähle selbst die für dich geeignete Aufgabe aus.
Aufgabe 1: Eine Implementierung nutzen
Lade die Datei chiffriersystemModulareAddition.py. Diese Datei enthält eine ganze Reihe von Funktionen, die Teilaufgaben beim Verfahren mit modularer Addition übernehmen.
Mit diesen Funktionen kann man jetzt interaktiv das Verfahren mit modularer Addition durchspielen, z.B. so:
>>> abc = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> block = 2
>>> oeffentlicherSchluessel = (2102, 3000)
>>> privaterSchluessel = (898, 3000)
>>> quelltext = 'ASTERIX'
>>> quellcode = codierung(quelltext, block, abc)
>>> quellcode
[119, 2005, 1809, 2400]
>>> geheimcode = verschluesselung(quellcode, oeffentlicherSchluessel)
>>> geheimcode
[2221, 1107, 911, 1502]
>>> entschluesseltercode = verschluesselung(geheimcode, privaterSchluessel)
>>> entschluesseltercode
[119, 2005, 1809, 2400]
>>> entschluesseltertext = decodierung(entschluesseltercode, block, abc)
>>> entschluesseltertext
'ASTERIX'
Alternativ kann man auch ein kleines Testprogramm wie das folgende erstellen:
from chiffriersystemModulareAddition import *
# Vorgaben
abc = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ'
block = 2
oeffentlicherSchluessel = (2102, 3000)
privaterSchluessel = (898, 3000)
# Verarbeitung
quelltext = 'COSINUS'
quellcode = codierung(quelltext, block, abc)
geheimcode = verschluesselung(quellcode, oeffentlicherSchluessel)
entschluesseltercode = verschluesselung(geheimcode, privaterSchluessel)
entschluesseltertext = decodierung(entschluesseltercode, block, abc)
# Ausgaben
print('Quelltext:')
print(quelltext)
print('Quellcode:')
print(quellcode)
print('Geheimcode:')
print(geheimcode)
print('entschlüsselter Code:')
print(entschluesseltercode)
print('entschlüsselter Text:')
print(entschluesseltertext)
Teste das Chiffriersystem mit selbst gewählten Beispielen. Dokumentiere die Ergebnisse.
Aufgabe 2: Eine Implementierung testen
Teste alle Funktionen und beschreibe das Verhalten der Funktionen in Worten. Passende Funktionsaufrufe sind als Docstrings bereits angegeben.
Aufgabe 3: Eine Implementierung abändern
Die Implementierung aus Aufgabe 1 benutzt zur Codierung die Zuordnung
' ' -> 00 'A' -> 01 ... 'Z' -> 26
und das Aneinanderfügen von Codes bei Zeichenblöcken:
' ' -> 0000 ' A' -> 0001 ' B' -> 0002 ... ' Z' -> 0026 'A ' -> 0100 'AA' -> 0101 ... 'ZZ' -> 2626
Ändere die Implementierung so ab, dass der ASCII-Code zur Umwandlung von Zeichen in Zahlen benutzt wird.
Bei Zeichenblöcken sollen die Codezahlen durch systematisches Durchzählen ermittelt werden.
In CrypTool wird hierzu die Einstellung b-adisch
gewählt. Experimentiere erst mit CrypTool und
passe dann die Implementierung der Codierung geeignet an.
Aufgabe 4: Eine Implementierung selbst entwickeln
Entwickle selbst eine Implementierung zum Chiffrierverfahren mit modularer Addition. Du kannst die folgende Datei als Grundgerüst verwenden: chiffriersystemModularesAddierenAufgabe4.py