====== LU05.A07 - Vigénere-Verschlüsselung programmieren ====== ==== Lernziele ==== * Ich kann den Vigénere-Algorithmus mittels einer Programmiersprache umsetzten. ==== Rahmenbedingungen ==== * **Zeitbudget:** 40 Minuten * **Sozialform:** Einzelarbeit * **Hilfsmittel:** * Lernvideo [[https://studyflix.de/informatik/vigenere-verschlusselung-1607|Studyflix: Vigénere-Verschlüsselung]] * Programmierumgebung * Codeeditor Ihrer Wahl * Programmiersprachen: JS, Python, BASH, SHELL, ... * Keine AI oder Google-Suchen → Sie haben genug Programmierkenntnisse, um den Algorithmus selbst zu programmieren. * **Erwartetes Ergebnis:** Script, das eine Vigénere-Verschlüsselung realisiert. In beide Richtungen: Klartext → Chiffretext, Chiffretext → Klartext. ==== Ausgangslage ==== Die Vigenère-Verschlüsselung ist ein historisches, symmetrisches Verschlüsselungsverfahren aus dem 16. Jahrhundert. Im Gegensatz zur einfachen Caesar-Verschlüsselung, bei der jeder Buchstabe um den exakt gleichen Wert verschoben wird, nutzt Vigenère ein Schlüsselwort. Dadurch ändert sich der Verschiebewert von Buchstabe zu Buchstabe, was das Verfahren als polyalphabetisch klassifiziert [Quelle: Wikipedia.com] ==== Arbeitsauftrag ==== Schreiben Sie ein Script bzw. Programm, das eine Nachricht mit Hilfe der Vigenère-Verschlüsselung verschlüsselt und entschlüsselt. **Anforderungen:** - Das Programm soll * vom Benutzer eine Nachricht (Text) einlesen. * vom Benutzer einen das Keywort einlesen * Das Keywortn auf die Länge des Plaintextes anpassen. * Gross- und Kleinbuchstaben getrennt verarbeiten (A–Z, a–z), alle anderen Zeichen unverändert lassen. - Implementieren Sie zwei Funktionen: * verschluesseln(text, shift) → gibt den verschlüsselten Text zurück * entschluesseln(text, shift) → 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 Keyword: Ist Verschlüsselt: Psetg Pmdm Entschlüsselt: Hallo Welt **Hinweis** * Das Keywort muss Wiederholt werden, wenn es zu kurz ist. * Das Keywort muss gekkürzt werde, wenn es zu lang ist. ===== Solution ===== [[modul:m183:learningunits:lu05:loesungen:07|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