ENIGMA

Vielleicht hast Du schon einmal von der Verschlüsselungsmaschine "ENIGMA" (Foto rechts) gehört. Mit ihr haben die deutschen Truppen im zweiten Weltkrieg ihre Nachrichten verschlüsselt. Viele sehr kluge Engländer haben lange daran gearbeitet, die Codes zu entschlüsseln und dabei auch die ersten Computer entwickelt. Als es ihnen gelungen war, wussten Sie, wo die deutschen U-Boote waren und konnten sich erfolgreich verteidigen.*

Auch heute werden vielen Nachrichten verschlüsselt, z.B. im Internet, wenn man Online-Banking o.Ä. macht.

Deine Aufgabe ist es jetzt, eine Verschlüsselungsmaschine zu programmieren, die auf einen Klick Deine geheime Nachricht so verschlüsselt, dass sie keiner mehr versteht!

Denke aber daran, auch eine Entschlüsselungsmaschine zu programmieren, damit dein Freund / Deine Freundin Deine Nachricht auch lesen kann.

Hierfür benötigst Du eine umfangreichere Programmierumgebung als Scratch. Sie heißt BYOB und funktioniert genauso einfach wie Scratch, hat aber einige Befehle mehr. Am wichtigsten für Dich sind dabei jetzt die Befehle, mit denen Du Buchstaben in Zahlen umwandeln kannst. Du findest Sie unter "Operatoren" und dort "ASCII-Wert von ..." und "ASCII ... als Buchstabe". Hier wird gemäß dem "ASCII-Code"** jedem Buchstaben eine Zahl zugeordnet.

  1. Lade Dir die Vorlagendatei herunter. Dort ist bereits vieles vorbereitet.
    Schaue Dir genau an, wie die ASCII-Codes der Buchstaben Deines Eingabetextes in die Liste kommen.
    Überlege Dir dann, wie Du aus den Codes in der Liste wieder einen lesbaren Text machst, der ausgegeben wird, wenn Taste a (für Ausgabe) gedrückt wird.
    Einige wichtige Elemente liegen schon daneben, aber nicht in der richtigen Reihenfolge.

  2. Füge jetzt einen Thread hinzu, der, wenn Taste e (für Encode, engl.: Verschlüsseln) gedrückt wird, die Zahlen so bearbeitet, dass bei der Ausgabe nicht mehr der Originaltext herauskommt, sondern ein verschlüsselter Text. Füge auch einen Thread hinzu, der, wenn Taste d (für Decode, engl.: Entschlüsseln) geddrückt wird, die Zahlen so bearbeitet, dass, wenn man den verschlüsselten Text eingibt, wieder der Originaltext herauskommt.

  3. Wenn Du fertig ist, erstelle einen kurzen Text, verschlüssele ihn und gib ihn an Dein Gegenüber. Dein Gegenüber tut das Gleiche. Jetzt versucht, um die Wette, den Text zu entschlüsseln. Wer zuerst fertig ist, hat gewonnen!

    * Ändert das Programm so, dass man möglichst schnell viele Codes durchprobieren kann, und macht einen zweiten Contest!

  4. Wahrscheinlich taucht das Problem auf, dass im verschlüsselten Text viele Zeichen enthalten sind, die man schlecht aufschreiben kann. Woran liegt das? Ändere das Programm so, dass es nur normale Buchstaben ausgibt. So kann man den verschlüsselten Text leicht aufschreiben oder als SMS versenden

    Tipp: Gehe zweischrittig vor:
    - Baue in das Programm einen Abschnitt ein, der dafür sorgt, dass aus Kleinbuchstaben Großbuchstaben werden.
    - Wenn das geklappt hat, füge noch einen Abschnitt ein, der dafür sorgt, dass, wenn der Code eines Buchstabens hinter dem großen Z entsteht, daraus wieder ein Buchstabe am Anfang des Alphabets entsteht. Also aus "Eckige Klammer auf" ein "A", aus dem Backslash ein "B" usw.

  5. *-Aufgabe: Wahrscheinlich habt Ihr alle recht leicht den Code des anderen knacken können. Dass muss anders werden! Ändere die Verschlüsselungsmaschine so, dass man einen längeren Code eingeben kann, mit dem die Nachricht verschlüsselt wird.

    Prinzip: Verwende statt eines festen Wertes ein Schlüsselwort. Lass Deine Enigma die ASCII-Codes des Schlüsselwortes zu denen Deines Geheimtextes Buchstabe für Buchstabe addieren. Da das Schlüsselwort wahrscheinlich kürzer ist als der Geheimtext, wiederhole es einfach immer wieder.
    Beispiel:
    Geheimtext "Alte Fabrikhalle"
    Schlüsselwort: "Papagei"
    (Erst Großbuchstaben erstellen)
    Dann: ASCII von A = 65; ASCII von P=80; 65+77 = 142, das ist zu groß, also 26 abziehen, immer noch zu groß, also nochmal 26 abziehen. Das ergibt 90, also ein Z aufschreiben.

    Weiter: ASCII von L (zweiter Buchstabe von ALTE)= 76; ASCII von A (zweiter Buchstabe von PAGAGEI=65; 76+65 = 141, das ist zu groß, also 26 abziehen, immer noch zu groß, also nochmal 26 abziehen. Das ergibt 89, also ein Y aufschreiben.

    ...

Viel Erfolg!

* Mehr dazu findest Du, wenn Du ENIGMA bei Google eingibst.
** ASCII: American Standard Code for Information Interchange. Eine Übersicht findest Du hier.




Enigma Vorlage