LU05.A08 - Skytale -Verschlüsselung programmieren - TBD

Lernziele

Rahmenbedingungen

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:

H A L      Zeilenweise füllen
L O W
E L T

Spaltenweise gelesen: HLE AOL LWTHLEAOLLWT

Anforderungen:

  1. 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
  2. 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

Lösung


Volkan Demir