Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m183:learningunits:lu05:aufgaben:08 [2025/09/02 07:06] – angelegt - Externe Bearbeitung 127.0.0.1 | modul:m183:learningunits:lu05:aufgaben:08 [2026/09/02 10:01] (aktuell) – vdemir | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== LU05.A08 - Skytale -Verschlüsselung programmieren - TBD ====== | ||
| + | |||
| + | ==== Lernziele ==== | ||
| + | * Ich kann den Skytale-Algorithmus mittels einer Programmiersprache umsetzten. | ||
| + | |||
| + | ==== Rahmenbedingungen ==== | ||
| + | * **Zeitbudget: | ||
| + | * **Sozialform: | ||
| + | * **Hilfsmittel: | ||
| + | * Programmierumgebung | ||
| + | * Codeeditor Ihrer Wahl | ||
| + | * Programmiersprachen: | ||
| + | * <color # | ||
| + | * **Erwartetes Ergebnis:** Script, das eine Cäsar-Verschlüsselung realisiert. In beide Richtungen: Klartext → Chiffretext, | ||
| + | |||
| + | ==== 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 ==== | ||
| + | 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: | ||
| + | - Das Programm soll | ||
| + | * vom Benutzer eine Nachricht (Text) einlesen. | ||
| + | * vom Benutzer einen ganzzahligen Wert k (Anzahl Zeilen der Speichermatrix) einlesen. | ||
| + | * 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 | ||
| + | |||
| + | ** Beispiel:** | ||
| + | Eingabe: | ||
| + | k: 3 | ||
| + | Verschlüsselt: | ||
| + | Entschlüsselt: | ||
| + | | ||
| + | |||
| + | |||
| + | ===== Solution ===== | ||
| + | [[modul: | ||
| + | |||
| + | |||
| + | ---- | ||
| + | [[https:// | ||