[Veranschaulichung des Public-Key-Verfahrens]

KRYPTOLOGIE

in der Sekundarstufe I

[Veranschaulichung des Public-Key-Verfahrens]

Spiralcurriculum

Spiralumdrehung 2:     
7. - 8. Jahrgang, 3. Teil

Wiederholung

Dieser dritte Teil folgt eventuell direkt nach dem zweiten Teil. Es ist aber auch möglich, dass nach dem zweiten Teil eine andere Einheit durchgeführt worden ist. Im zweiten Teil ist das System in der Praxis durchgeführt worden. Dabei wurde festgestellt, dass das Caesar-Verfahren nicht mehr ausreichend sicher ist. Vielleicht wurde auch schon von den Schülerinnen und Schülern formuliert, wie das Verfahren verbessert werden kann.

Die konkrete algorithmische Beschreibung und die Implementierung ist allerdings bereits im ersten Teil erfolgt. Daher ist eine Wiederholung sinnvoll.
Man bedenke, dass die Lernenden bis jetzt noch nicht vielfältige Erfahrungen mit algorithmischen Beschreibungen haben und daher die Wiederholung des Caesar-Verfahrens beispielsweise in Pseudocode und Implementierung auch eine Verfestigung des algorithmischen Denkens prinzipiell bedeutet.

Algorithmisierung und Implementierung

Am Ende im ersten Teil der zweiten Phase der Spirale wurde das Caesar-Verfahren in Pseudocode entwickelt und anschliessend in einer Programmiersprache implementiert. Als Wiedereinstieg sollte zu Beginn daher der Pseudocode erinnert werden. Anschliessend sollte die Implementierung in der gewählten Programmiersprache erneut kurz besprochen werden.

Vigenère - Verfahren

Es ist den Lernenden deutlich geworden, dass mit dem Caesar-Verfahren verschlüsselte Nachrichten vor allem mit heutigen Mitteln sehr leicht entschlüsselt werden können. Die Schwäche des Caesar-Verfahrens kann nur dadurch beseitigt werden, wenn wir nicht jeden Buchstaben mit demselben Versatz verschlüsseln. Es ist naheliegend, dass wir jeden Buchstaben mit einem anderen Versatz verändern.

Damit mit dem Empfänger relativ einfach ein Schlüssel mitgeteilt werden kann, bietet es sich an, ein Verschlüsselungswort (Codewort, Passwort) festzulegen. Der 1. Buchstabe des Klartextes wird mit dem ersten Buchstaben des Codewortes verschlüsselt. Ein 'A' entspricht dabei dem Versatz 1, ein 'B' dem Versatz 2 usw. Aus Vereinfachungsgründen beschränken wir uns auf Grossbuchstaben. Wir müssen also nur aus dem ASCII-Code des Buchstabens die entsprechende Zahl ermitteln. Ist bisher im Unterricht der ASCII-Code nicht behandelt worden, muss das hier erfolgen.
Dieses Prinzip sollte dann von den Lernenden schriftlich fixiert werden (evtl. als umgangssprachliche Formulierung des Vorgehens für den gesamten Text).

Nach der inhaltlichen Analyse kann dann anschliessend aus dem Caesar-Verfahren der Pseudocode und anschliessend die Implementierung in der gewählten Programmiersprache erstellt werden. Wie im 1. Teil der Spiralumdrehung 2 kann dann der Quelltext in Funktionsform im Computer eingegeben werden und anschliessend mit geeigneten Beispielen in der jeweiligen Programmierumgebung getestet werden.

Progamm SMS 2

Die Vigenère- Ver- und Entschlüsselungsroutinen sind an Stelle der Caesarroutinen in das schon bekannte Anwendungsprogramm   SMS    eingebaut worden. Wie bisher, kann in diesem Programm menügesteuert ein Satz, genannt SMS, eingelesen, ver- und auch entschlüsselt sowie auf einem (gemeinsamen) Verzeichnis gespeichert bzw. von diesem geladen werden.
Auch bei dieser Version geben sich die Teilnehmer beim Start des Programms einen Namen. Die gespeicherten Dateien können dann vom (korrekten) Empfänger geladen werden.

Die Oberfläche des Programmes SMS 2 hat das bekannte Aussehen:

       --------------------------------------------------

       Programm SMS 2 *** Teilnehmer: erwin
       Die SMS ist derzeit:   Dies ist mein Satz!
       ==================================================
       ==================================================

       Bitte gib Deinen Namen an:   erwin

       ==================================================
       E: Einlesen         **        A: Ausgeben
       S: Senden           **        H: Holen
       V: Verschlüsseln    **        D: Entschlüsseln
       Z: Zeigen alle SMS  **        C: Codewort eingeben
       Q: QUIT

       Bitte wählen:   

       --------------------------------------------------
--------------------------------------------------

Programm SMS 2 *** Teilnehmer: erwin
Die SMS ist derzeit:   Dies ist mein Satz!
==================================================
==================================================

Bitte gib Deinen Namen an:   erwin

==================================================
E: Einlesen         **        A: Ausgeben
S: Senden           **        H: Holen
V: Verschlüsseln    **        D: Entschlüsseln
Z: Zeigen alle SMS  **        C: Codewort eingeben
Q: QUIT

Bitte wählen:   

--------------------------------------------------

Dieses Programm ist nicht von den Lernenden erstellt worden. Da sie die Funktionsweise schon bisher kennengelernt haben, kann relativ schnell damit gearbeitet werden. In der Praxis wird nun deutlich, dass die Verschlüsselung praktisch nicht mehr geknackt werden kann.

Einsatz des SMS 2 - Programmes

Es gilt im Wesentlichen das im 2. Teil beschriebene Verhalten des Programmes SMS 1 auch für das Programm SMS 2 und wird hier entsprechend wiederholt:
Je nach schulischen Voraussetzungen wird das Programm nun konkret eingesetzt:

  • Coffeescript:
    Das Programm SMS 2 in Coffeescript ist für die IDE Pencilcode geschrieben. Dort werden alle Eingaben als HTML-Elemente durchgeführt.
    In Pencilcode ist es möglich, mit einem Account zu arbeiten. Dann können dort auch Dateien abgelegt werden, das in diesem Programm SMS 2 möglich sein muss. Es gehen daher alle Lernenden mit einem gemeinsamen Account in das System. Damit kann das Programmm auch durchgeführt werden, wenn im Schulsystem keine Möglichkeit für ein gemeinsames Arbeiten in einem Verzeichnis möglich ist.
    Das Anzeigen aller SMS-e ist (noch) nicht realisiert. In einem weiteren Browser-Tab kann eine Dateiansicht ermöglicht werden, indem dort auch das Programm geladen wird und dann in der URL in die Verzeichnisebene höher gewechselt wird. (Aktualisieren der Ansicht nicht vergessen!) Die SMS-Dateien haben immer den Dateinamen: <empfaenger_absender>.sms
  • Python/Ruby:
    Es muss in einem gemeinsamen Verzeichnis gearbeitet werden. Dazu gibt es folgende Möglichkeiten:
    • Es wird in einem gemeinsamen Verzeichnis auf einem Fileserver gearbeitet. Man starte eine Shell-Sitzung (Kommandozeile), wechsle in das gewünschte Verzeichnis uns starte:  python sms2.py   bzw.   ruby sms2.rb
    • Man starte eine Shellsitzung und starte eine ssh-Sitzung mit einem gemeinsamen Account. In der SSH-Sitzung wechselt man ebensfalls in das gewünschte Verzeichnis uns starte dort ebenso:  python sms2.py   bzw.   ruby sms2.rb
      Als Alternative hat jeder Teilnehmer einen eigenen Account. Jeder Teilnehmer kann aber auf ein gemeinsames Verzeichnis in der SSH-Sitzung wechseln.
    • Man nutzt eine Online-Umgebung für Python bzw. Ruby. Dort nutzt die Gruppe einen gemeinsamen Account und kann dort wie oben bei Coffee-Script beschrieben arbeiten (noch nicht getestet!).
    • Hinweis für Python und Ruby:
      Im Verzeichnis des Programmes sms1 muss in Linux das Shell-Programm verzeichnis.sh und in Windows das Batch-Programm verzeichnis.bat enthalten und ausführbar sein. Sonst kann der Inhalt des Verzeichnisses mit den Messages im Programm nicht angezeigt werden.

Praktische Erfahrung
Die Weitergabe bzw. Mitteilung der Passwörter erweist sich bei diesem Programm als Problem. War die Weitergabe des Versatzes beim Programm SMS 1 schnell (durch ein kurzes Treffen oder durch (kritisches) Zurufen) noch relativ einfach, so ist bei einem intensiven Schriftverkehr in mittelgrossen Gruppen ein permanentes Nachfragen zu beobachten.
Vor allem der relativ gleichzeitige Kontakt mit mehreren Teilnehmern mit den dann verwendeten unterschiedlichen(!) Passwörtern führt regelmässig zu Irritationen. Vor allem, wenn es möglich ist, die Schülerinnen und Schöer auf verschiedene Räume aufzuteilen, zeigt sich dieses Problem sehr deutlich.

Aufgabe:
Praktiziert die beschriebenen Alternativen aus und spielt in der Gruppe das Austauschen von Nachrichten.

Erkenntnisse und Kompetenzen

Durch die Ver- und Entschlüsselung mit Hilfe eines Computers sind einfache Verfahren nicht mehr geeignet. Mit dem Vigenère-Verfahren gibt es allerdings eine Alternative. Wird dabei sogar ein Schlüssel verwendet, der genauso lang wie der Quelltext ist, ist die Decodierung nur noch durch reines Ausprobieren knackbar. Das ist selbst mit heutigen Computern zu zeitaufwendig.

Wie schon zuvor gilt:
Da das Programm alleine bzw. mit der Gruppe/Klasse erarbeitet worden ist, wird die Sinnhaftigkeit einer algorithmischen Bearbeitung und Ausführung handlungsorientiert seitens der Schülerinnen und Schüler direkt erfahren. Sie können also selbst eine Automatisierung vornehmen.
Der erhöhte Umfang in der Implementierung gegenüber dem Caesar-Verfahren ist erstaunlich gering, um auch ein heute noch praktikables Verfahren umzusetzen.

Zusammenfassendes Ergebnis

  • Es gibt unterschiedliche Prinzipien der Ver- und Entschlüsselung.
  • Das Ver- und Entschlüsseln lässt sich mit dem Computer automatisieren.
  • Dazu müssen die Verfahren maschinenverarbeitbar programmiert werden.
  • Beim Ver- und Entschlüsseln ist der Computer deutlich schneller als der Mensch.
  • Nachrichten, die über das Netz ausgetauscht werden, können abgehört werden.
  • Es müssen sichere Verfahren sowie sichere Passwörter verwendet werden.