KRYPTOLOGIEin der Sekundarstufe I |
Ausgehend von dieser Annahme gehen wir davon aus, dass entsprechend der zuvor durchgeführten Einheiten ein grundsätzliches Verständis von Kryptologie entwickelt worden ist und zumindest die grundlegenden Verfahren Caesar und Vigenère programmiert worden sind.
Mit den SMS-Programmen ist die Anwendung dieser Verfahren in einer Netzumgebung bei einem einfachen Messenger-System praktiziert worden. Damit ist die Sicherheitsproblematik solcher Systeme erfahren worden. Die begrenzte Praktikabilität eines symmetrischen Verfahrens durch problematische Passwortverwaltung bzw. -Weitergabe ist deutlich geworden und auch besprochen worden.
In dieser Einheit wird darauf aufbauend die Arbeitsweise von Public-Key-Verfahren behandelt.
Eine solche Wiederholung sollte eine Erinnerung der Verfahren im Pseudocode und Quellcode beinhalten. Die Wiederholung der Anwendung der beiden SMS-Programme verdeutlicht erneut die Begrenzheit und Sicherheitsproblematik dieser Verfahren in der Praxis.
Die Idee eines solchen Verfahrens ist eigentlich einfach: Der Klartext wird mit einem (bekannten) Schlüssel, dem Public-Key codiert, für die Decodierung bedarf es aber eines zweiten nur dem Empfänger bekannten Schlüssels, den Private Key. Es versteht sich von selbst, dass dieser Private Key aus dem Public-Key nicht berechnet werden kann. Diese Forderung ist keine einfache Bedingung. Häufig ist die Umkehrung einer Berechnung nicht so aufwändig, sodass diese bei Interesse (notfalls mit einiger Mühe) erledigt werden kann. In der Öffentlichkeit bekannt ist das RSA-Verfahren, dass auf die Zerlegung einer Zahl in seine Primfaktoren beruht. Dieses basiert auf Erkenntnissen der (mathematischen) Zahlentheorie und Algebra und ist in der Schule generell nicht nachzuvollziehen (auch nicht in der Sek II!). Es ist aber nicht das einzige Verfahren.
Für den Unterricht in der Sekundarstufe I ist ein solches mathematisch schwieriges Verfahren auch nicht nötig. Im Gegenteil: Wenn der Private Key in einem solchen schulischen Verfahren ermittelt werden kann, wird deutlich, dass 'in der freien Wildbahn' genau diese oben beschiebene Bedingung gelten muss.
Daher wird hier ein sehr einfaches (knackbares) Verfahren praktiziert: Der Klartext wird wie bisher mit einem Codewort verschlüsselt. Die Entschlüsselung gelingt nur, wenn wir ein zweiten Passwort verwenden, das sich aus der Differenz des ersten Codewortes und eines intern verwendeten zusätzlichen Schlüssels ergibt.
PROZEDUR verschluesseln(satz, codewort) buchstabe <-- "" ; codebuchstabe <-- "" asciizahl <-- 0 ; codeasciizahl <-- 0 zusatz <-- 0 verschluesselter_satz <-- "" stelle <-- 0 codestelle <-- 0 WIEDERHOLE SOLANGE stelle < satzlaenge IST buchstabe <-- satz[stelle] codebuchstabe <-- codewort[codestelle] asciizahl <-- ASCII-Zahl des Buchstabens codeasciizahl <-- ASCII-Zahl des Codebuchstabens zusatz <-- 0 asciizahl <-- asciizahl + codeasciizahl + zusatz - 64 buchstabe <-- Zeichen gemäss ASCII-Zahl verschluesselter_satz <-- verschluesselter_satz + buchstabe stelle <-- stelle + 1 codestelle <-- codestelle + 1 zusatz <-- zusatz + 1 FALLS zusatz > 2 DANN zusatz <-- 0 ENDE von FALLS FALLS codestelle = Länge des Codeworts DANN codestelle <-- 0 ENDE von FALLS ENDE von WIEDERHOLE satz <-- verschluesselter_satz ENDE der PROZEDUR verschluesseln
PROZEDUR verschluesseln (satz, codewort) buchstabe <-- "" codebuchstabe <-- "" asciizahl <-- 0 codeasciizahl <-- 0 zusatz <-- 0 verschluesselter_satz <-- "" stelle <-- 0 codestelle <-- 0 WIEDERHOLE SOLANGE stelle < satzlaenge IST buchstabe <-- satz[stelle] codebuchstabe <-- codewort[codestelle] asciizahl <-- ASCII-Zahl des Buchstabens codeasciizahl <-- ASCII-Zahl des Codebuchstabens zusatz <-- 0 asciizahl <-- asciizahl + codeasciizahl + zusatz - 64 buchstabe <-- Zeichen gemäss ASCII-Zahl verschluesselter_satz <-- verschluesselter_satz + buchstabe stelle <-- stelle + 1 codestelle <-- codestelle + 1 zusatz <-- zusatz + 1 FALLS zusatz > 2 DANN zusatz <-- 0 ENDE von FALLS FALLS codestelle = Länge des Codeworts DANN codestelle <-- 0 ENDE von FALLS ENDE von WIEDERHOLE satz <-- verschluesselter_satz ENDE der PROZEDUR verschluesseln
Die Entschlüsselungsroutine unterscheidet sich durch eine Subtraktion der Code-ASCII-Zahl von der ASCII-Zahl sowie einer unterschiedlichen Zusatz-Verschiebung (statt: 0,1,2 bei der Verschlüsselung 0,2,4 bei der Entschlüsselung) von der Verschlüsselungsprozedur.
Dieses hier vorgestellte Verfahren ist sicher sehr einfach und evtl. auch einfach durchschaubar. Es lässt sich allerdings erheblich verbessern, indem die Zusatzverschiebung auf mehr Stellen verlängert und der Wert der einzelnen Zeichen mehr zufällig gewählt wird.
Die Public-Key - Ver- und Entschlüsselungsroutinen sind an Stelle der Vigenère-Routinen 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 3 hat das bekannte Aussehen:
-------------------------------------------------- Programm SMS 3 *** 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 3 *** 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: --------------------------------------------------
Es gilt im Wesentlichen bereits für die zuvor beschriebenen Programme SMS 1 und SMS 2 auch für das Programm SMS 3 und wird hier entsprechend wiederholt:
Je nach schulischen Voraussetzungen wird das Programm nun konkret eingesetzt:
Das Prinzip des Verfahrens sowie die Arbeitsweise sollte von den Schülerinnen und Schülern am Ende dieser Phase samt Skizze(n) schriftlich fixiert werden.
Aufgabe:
Praktiziert die beschriebenen Alternativen aus und spielt in der Gruppe das Austauschen von Nachrichten.
Die Lösung ist, dass der Klartext zweimal verschlüsselt wird: Zuerst wird der private Schlüssel des Absenders verwendet, dann der öffentliche Schlüssel des Empfängers. Der Empfänger decodiert nun den codierten Text mit seinem privaten Schlüssel und dann mit dem öffentlichen Schlüssel des Absenders und kann dann die Nachricht lesen. Mit diesem Verfahren ist der Text vom Absender also signiert worden und eindeutig einem Absender zuzuordnen.
Die Schülerinnen und Schüler können sich mit dem Programm SMS 3 signierte verschlüsselte Nachrichten zusenden. Das Handling mit den verschiedenen Schlüsseln verlangt aber ein genaues konzentriertes Arbeiten und zeigt in der korrekten Anwendung, in wie weit die Lernenden die Verfahren auch tatsächlich verstanden haben und dann auch praktizieren können.
Anmerkungen
Aufgabe:
Praktiziert das Verschlüsseln und Signieren im Programm SMS 3 und spielt in der Gruppe auf diese Weise das Austauschen von Nachrichten.
Soll mit Schlüsselausgabestellen gearbeitet werden, müssen diese die Authenzität der Personen zumindest einmalig überprüfen, z.B. über amtliche Ausweispapiere. Sind die Ausgabestellen auch für die Erstellung der Schlüssel zuständig, muss auch die Person, die sich authentifizieren lässt, ein Vertrauen zu dieser Stelle haben. Staatliche Organisationen kommen daher nicht in Frage, weil ansonsten der Staat Zugriff auf alle Nachrichten hat. Eine Möglichkeit ist, dass es mehrere Ausgabestellen gibt, aus denen ein Interessent die aussucht, zu der er oder sie ein Vertrauen hat.
Alternativ könnte jemand als potentieller Teilnehmer durch ein Zufallsverfahren selber ein Schlüsselpaar erzeugen und nur den öffentlichen Schlüssel der Ausgabestelle zusenden.
Eine solche datenschutzrechtliche Diskussion und Auseinandersetzung stellt den Abschluss der Kryptologie in der Sekundarstufe I dar. Das betrifft nicht alleine die Messengersysteme, sondern beispielsweise auch die Kommunikation im Web mit dem https-Protokoll und den dazugehörigen Zertifikaten. Damit wird den Lernenden deutlich, dass Kryptologie sowohl eine technische als auch eine gesellschaftliche Dimension hat.
Aufgabe:
Überlegt eine (beispielsweise technische) Struktur, mit der eine Festlegung von Schlüsseln in unserem System praktiziert werden könnte, wenn wir auf den Lehrer oder die Lehrerin als Vertrauensperson verzichten wollen.
Die obigen Erkenntnisse wurden entweder selbst in Algorithmen umgesetzt oder durch die Anwendung eines einfachen Messengerprogrammes erfahren. Dabei musste der Ablauf einer verschlüsselten Kommunikation korrekt praktiziert werden.
Es gilt: