Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

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

Lade die Datei chiffriersystemModulareAddition.py. Diese Datei enthält eine ganze Reihe von Funktionen, die Teilaufgaben beim Verfahren mit modularer Addition übernehmen.

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.

X

Fehler melden

X

Suche