Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m183:learningunits:lu05:aufgaben:08 [2026/09/02 09:08] – angelegt vdemir | modul:m183:learningunits:lu05:aufgaben:08 [2026/09/02 10:01] (aktuell) – vdemir | ||
|---|---|---|---|
| Zeile 8: | Zeile 8: | ||
| * **Sozialform: | * **Sozialform: | ||
| * **Hilfsmittel: | * **Hilfsmittel: | ||
| - | * Lernvideo [[https:// | ||
| * Programmierumgebung | * Programmierumgebung | ||
| * Codeeditor Ihrer Wahl | * Codeeditor Ihrer Wahl | ||
| Zeile 16: | Zeile 15: | ||
| ==== Ausgangslage ==== | ==== Ausgangslage ==== | ||
| - | ... | + | Die Skytale-Verschlüssellung gehört zu den ältesten Systemen der Welt. Im Kern wird ein Papierband um ein Stab gewickelt und die Nachricht der Länge nach auf das Band geschrieben. |
| + | |||
| + | Der Key dabei ist der Durchmesser des Stabes. | ||
| ==== Arbeitsauftrag ==== | ==== Arbeitsauftrag ==== | ||
| Schreiben Sie ein Script bzw. Programm, das eine Nachricht mit Hilfe der Skytale-Verschlüsselung verschlüsselt und entschlüsselt. | Schreiben Sie ein Script bzw. Programm, das eine Nachricht mit Hilfe der Skytale-Verschlüsselung verschlüsselt und entschlüsselt. | ||
| + | |||
| + | |||
| + | **Idee** | ||
| + | |||
| + | Die Skytale ist eine Transpositionschiffre: | ||
| + | |||
| + | Physikalisch wickelt man einen Lederstreifen um einen Stab und schreibt längs der Stabachse. Abgewickelt steht der Text in verwürfelter Reihenfolge auf dem Streifen. Der Stabdurchmesser ist der Schlüssel. | ||
| + | |||
| + | **Modell im Code** | ||
| + | |||
| + | Der Stab entspricht einer Matrix mit k Spalten, wobei k = Anzahl Buchstaben, die um den Umfang passen. | ||
| + | |||
| + | Verschlüsseln: | ||
| + | Entschlüsseln: | ||
| + | |||
| + | Beispiel mit HALLOWELT und k = 3: | ||
| + | < | ||
| + | H A L Zeilenweise füllen | ||
| + | L O W | ||
| + | E L T | ||
| + | </ | ||
| + | |||
| + | Spaltenweise gelesen: <color # | ||
| **Anforderungen: | **Anforderungen: | ||
| - Das Programm soll | - Das Programm soll | ||
| * vom Benutzer eine Nachricht (Text) einlesen. | * vom Benutzer eine Nachricht (Text) einlesen. | ||
| - | * vom Benutzer einen ganzzahligen | + | * vom Benutzer einen ganzzahligen |
| - | * Gross- und Kleinbuchstaben getrennt verarbeiten (A–Z, a–z), alle anderen Zeichen unverändert lassen. | + | * verschluesseln(text, |
| - | - Implementieren Sie zwei Funktionen: | + | * entschluesseln(text, |
| - | * verschluesseln(text, | + | |
| - | * entschluesseln(text, | + | |
| - Das Programm soll den verschlüsselten Text ausgeben, dann den entschlüsselten Text, um zu zeigen, dass die ursprüngliche Nachricht wiederhergestellt wird | - Das Programm soll den verschlüsselten Text ausgeben, dann den entschlüsselten Text, um zu zeigen, dass die ursprüngliche Nachricht wiederhergestellt wird | ||
| ** Beispiel:** | ** Beispiel:** | ||
| - | Eingabe: | + | Eingabe: |
| - | | + | |
| - | Verschlüsselt: | + | Verschlüsselt: |
| - | Entschlüsselt: | + | Entschlüsselt: |
| | | ||
| - | **Hinweis** | ||
| - | * Den Shift bekommen Sie hin, wenn Sie mit den Ordinalzahlen (Codewerte der Zeichen arbeiten). | ||
| - | * Codiert wird einfach, indem der Ordinalzahl ein Shift addiert wird. | ||
| - | * Bei Dekodieren wird einfach der Ordinalzahl der Shift abgezogen. | ||
| ===== Solution ===== | ===== Solution ===== | ||
| - | [[modul: | + | [[modul: |