Einleitung

Wie kann sichergestellt werden, dass eine Nachricht für Drittpersonen unlesbar übermittelt wird und unverfälscht am richtigen Ort ankommt – respektiv beim Empfangen vom korrekten Absender stammt?

Begriffe

Die Kryptologie setzt sich aus den beiden Gebieten Kryptographie und Kryptoanalyse zusammen. Ende des Ersten Weltkrieges wurde diese Einteilung von William Friedman festgelegt und die Begriffe so wie wir sie heute kennen definiert. Die Kryptographie beschäftigt sich mit der Entwicklung und Anwendung der einzelnen Verfahren und die Kryptoanalyse mit deren Stärken und Schwächen. Anders formuliert, befasst sich die Kryptographie mit der Sicherheit der eigenen geheimen Kommunikation gegen unbefugte Entzifferung, während die Kryptoanalyse, quasi als Gegenspielerin der Kryptographie, die Informationsgewinnung aus verschlüsselten Nachrichten, also das Brechen der geheimen Kommunikation, zum Ziel hat. Kryptographie und Kryptoanalyse werden daher auch als defensive und offensive Kryptologie bezeichnet.

Der Begriff «Kryptologie»

Ursprünge

Bevor Nachrichten verschlüsselt wurden, wurden geheime Botschaften zwar im sogenannten Klartext, dafür aber versteckt übermittelt: In den Hochkulturen von Ägypten, Indien und Mesopotamien wurde Sklaven der Schädel kahl rasiert und mit einer Geheimbotschaft tätowiert. Sobald das Haar nachgewachsen war, wurden sie zum Empfänger geschickt. Dieser konnte nach einer erneuten Kahlrasur des Sklaven die Botschaft entziffern.

Die ersten richtig verschlüsselten Begriffe findet man in alt-testamentarischen Schriften. So wurde in den Büchern Jeremiah das Wort «Babel» an mehreren Stellen durch den Ausdruck «Sheshech» ersetzt, welcher sich aus einer speziellen Substitution namens «Atbash» ergibt. Dabei wird der erste Buchstabe des Alphabetes durch den letzten ersetzt, der Zweite durch den Zweitletzten, usw. (Beispiel für unseres Alphabet: abc würde zu zyx werden.)

Aus der Zeit um 475 v. Chr. ist das erste militärisch genutzte System bekannt. Dabei wurden die Nachrichten auf einen Papyrusstreifen geschrieben, welcher um einen Holzstab mit einem bestimmten Durchmesser («Skytale») gerollt wurde. Diese Nachricht bestand anschliessend aus einer Reihe von Buchstaben, welche erst einen Sinn ergab, wenn der Empfänger den Papyrusstreifen um einen Holzstab mit demselben Durchmesser wickelte.

Skytale (Lurigen, https://commons.wikimedia.org/wiki/File:Skytale.png)

Julius Caesar benutzte während seiner Regentschaft ein einfaches Substitutionsverfahren: In diesem Verfahren werden die Buchstaben im Alphabet um eine gewisse Anzahl Stellen verschoben (man sagt auch «rotiert»). So entspricht z.B. der Schlüssel \(D\) einer Verschiebung um drei Buchstaben: \(A\) wird auf \(D\) verschoben, \(B\) auf \(E\), usw. So wird aus dem Klartext Caesar bei Verschlüsselung mit Schlüssel \(D\) der Geheimtext Fdhvdu.

Caesar-Verschlüsselung mit 3 – Quelle: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Caesar3.svg)
  1. Suche weitere Beispiele von versteckten Nachrichten. Wo werden Nachrichten immer noch versteckt?
  2. Handelt es sich bei der Skytale um eine versteckte oder eine verschlüsselte Nachricht? Wie wird die Nachricht versteckt, resp. was ist der Schlüssel?
  3. Zu zweit: Jeder verschlüsselt einen kurzen Satz (3-5 Wörter) mittels Caesar-Verschlüsselung mit einem beliebigen Schlüssel. Anschliessend werden die verschlüsselten Nachrichten, zusammen mit dem Schlüssel, ausgetauscht und entschlüsselt. Welche Hilfsmittel beschleunigen die Ver- und Entschlüsselung? Kannst du sowas basteln?
  1. Die oben erstellten verschlüsselten Nachrichten werden von einer Drittperson abgefangen. Diese besitzt aber den Schlüssel nicht. Schafft sie es die Nachricht zu entziffern? Welche Möglichkeiten bieten sich? (Jeder schreibt seinen verschlüsselten Satz aufs Wiki, so dass alle versuchen können die Nachricht zu entschlüsseln)
  2. Versuche den im Wiki gegebenen Text zu analysieren und zu «hacken».

Für die Programmieraufgaben existiert auf dem Wiki eine Vorlage (crypto.zip). Diese besteht aus einer HTML-Datei mit einem Inline-Javascript und einem Python-Skript. Du kannst selbst wählen mit welcher Sprache du die Aufgabe lösen möchtest.

  1. Entpacke crypto.zip und öffne entweder die HTML-Datei im Browser oder die Python-Datei in TigerJython. Teste die Verschlüsselung aus und versuche die folgenden Fragen zu beantworten: Wie wird verschlüsselt?
  2. Kopiere die Datei crypto. und benenne sie nach crypto_caesar. um. Passe anschliessend die Funktionen encrypt und decrypt so an, dass der Inhalt mittels Caesar-Verschlüsselung ver- und entschlüsselt wird.