Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m183:learningunits:lu05:aufgaben:08 [2025/09/02 07:06] – angelegt - Externe Bearbeitung 127.0.0.1modul: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:** 40 Minuten
 +  * **Sozialform:** Einzelarbeit
 +  * **Hilfsmittel:**
 +    * Programmierumgebung
 +    * Codeeditor Ihrer Wahl
 +    * Programmiersprachen: JS, Python, BASH, SHELL, ...
 +    * <color #ed1c24>Keine AI oder Google-Suchen →  Sie haben genug Programmierkenntnisse, um den Algorithmus selbst zu programmieren.</color>
 +  * **Erwartetes Ergebnis:** Script, das eine Cäsar-Verschlüsselung realisiert. In beide Richtungen: Klartext → Chiffretext, Chiffretext → Klartext.
 +
 +==== 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: Die Buchstaben bleiben gleich, nur ihre Reihenfolge ändert sich.
 +
 +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: Klartext zeilenweise einfüllen, spaltenweise auslesen
 +Entschlüsseln: genau umgekehrt
 +
 +Beispiel mit HALLOWELT und k = 3:
 +<code>
 +H A L      Zeilenweise füllen
 +L O W
 +E L T
 +</code>
 +
 +Spaltenweise gelesen: <color #ed1c24>HLE AOL LWT</color> → <color #ed1c24>HLEAOLLWT</color>
 +
 +**Anforderungen:**
 +  - Das Programm soll
 +    * vom Benutzer eine Nachricht (Text) einlesen.
 +    * vom Benutzer einen ganzzahligen Wert k (Anzahl Zeilen der Speichermatrix) einlesen.
 +    * verschluesseln(text, k) → gibt den verschlüsselten Text zurück
 +    * entschluesseln(text, k) → gibt den entschlüsselten Text zurück
 +  - 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:  HALLO WELT
 +  k:    3
 +  Verschlüsselt:  HLEAOLLWT
 +  Entschlüsselt:  HALLOWELT
 +  
 +
 +
 +===== Solution =====
 +[[modul:m183:learningunits:lu05:loesungen:08|Lösung]]
 +
 +
 +----
 +[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Volkan Demir