Informatik

Caesar-Verschlüsselung

Die Caesar-Verschlüsselung, benannt nach dem römischen Kaiser Julius Caesar, ist eine der ältesten und einfachsten Formen der Verschlüsselung, die in der Geschichte der Kryptographie eine bedeutende Rolle spielt. Diese Methode wurde von Caesar im ersten Jahrhundert v. Chr. verwendet, um vertrauliche Nachrichten vor unbefugtem Zugriff zu schützen. Die Idee hinter der Caesar-Verschlüsselung ist äußerst simpel: Jeder Buchstabe in einer Nachricht wird um eine feste Anzahl von Positionen im Alphabet verschoben, wodurch eine verschlüsselte Botschaft entsteht. In dieser Einleitung werden wir uns näher mit den Grundlagen, der Funktionsweise und den historischen Aspekten dieser Verschlüsselungsmethode befassen. Caesar-Verschlüsselung mag heutzutage zwar nicht mehr für sicherheitsrelevante Zwecke geeignet sein, sie dient dennoch als ein faszinierendes Beispiel dafür, wie die Menschheit über die Jahrhunderte hinweg versucht hat, Informationen zu schützen und zu übermitteln.

Aufgaben

  1. Mache dich mit der Caesar-Verschlüsselung vertraut und bearbeite die Aufgaben auf der folgenden Webseite: https://www.inf-schule.de/kryptologie/historischechiffriersysteme/station_verschiebeverfahren

  2. Beschreibe das Verfahren der Caesar-Verschlüsselung in eigenen Worten.

  3. Modelliere mit einem Klassendiagramm und Struktogrammen zum Verschlüssen und Entschlüsseln die Caesar-Verschlüssung. Teste deine Struktogramme mit Mitschüler:innen.

Du kannst die Modellierung entweder auf dem Papier, am Whiteboard oder digital (https://struktog.openpatch.org und https://mermaid.live) durchführen.

  1. Setze deine Modellierung um und implementiere eine Klasse CaesarCipher in dem Projekt frglib. Nutze diese Seite, um deine Implementierung zu testen: https://www.cryptool.org/de/cto/caesar

  2. 🚀: Eine typische Chatnachricht vor dem Emoji-Zeitalter sah oftmals so aus: "(̿▀̿ ̿Ĺ̯̿̿▀̿ ̿)̄". Beurteile, inwiefern sich die Caesar-Verschlüssung für solche Nachrichten eignet.

  3. 🚀: Erweitere die Caesar-Verschlüsselung und deine Implementierung so, dass auch Sonderzeichen und Zahlen verschlüsselt werden. (Tipp: Der Datentyp char ist ein numerischer Datentyp)