Chiffre

Kryptologie. Die Kunst Informationen zu verstecken. Klingt schwierig, ist aber eigentlich ganz einfach. Im Grunde geht es immer um einen Text, einen Schlüssel, und einen damit verschlüsselten Text. Und mal ehrlich, wenn die alten Römer das schon konnten, dann können wir das auch.

2008-09 Kaiserschloss Kryptologen.JPG

Cäsar

Die Römer sind auch schon ein gutes Beispiel. Die Cäsar-Chiffre ist nämlich recht einfach, leicht durchzuführen und veranschaulicht das Prinzip sehr gut.

Dabei benötigt man zuerst mal eine Text den verschlüsseln will, und eine Zahl als Schlüssel. Wir nehmen als Schlüssel die 3. Nun verschieben wir jeden Buchstaben in unserem Alphabet um drei Stellen nach hinten. Aus einem „A“ wird ein „D“, aus einem „B“ wird ein „E“ und so weiter. Aus dem Leerzeichen „_“ wird ein „C“. Das sieht dann so aus:

_ABCDEFGHIJKLMNOPQRSTUFWXYZ

CDEFGHIJKLMNOPQRSTUFWXYZ_AB

Jetzt haben wir mit unserem Schlüssel eine Übersetzungstabelle gebaut. Damit verschlüsseln wir nun unseren Text:

DIES IST MEIN TEXT

Aus dem Text wird nach der Übersetzung:

GLHVCLVWCPHLQCWH_W

Wie bekommen wir den Text nun wieder entschlüsselt? Ganz einfach. Der Empfänger braucht den verschlüsselten Text und den Schlüssel. Mit dem Schlüssel kann er sich die gleiche Tabelle bauen:

_ABCDEFGHIJKLMNOPQRSTUFWXYZ

CDEFGHIJKLMNOPQRSTUFWXYZ_AB

Und damit den Text zurück verwandeln. Aus einem „C“ wird ein Leerzeichen „_“, aus einem „D“ wird ein „A“ und so weiter.

GLHVCLVWCPHLQCWH_W

wird wieder zu

DIES IST MEIN TEXT

Eigentlich ganz einfach. Wer das mal ausprobieren möchte kann das unter Tools: Chiffre tun.

Verschlüsselung knacken

Die Cäsar-Chiffre ist recht übersichtlich. Das kann jeder mit einem Blatt Papier nachvollziehen. Der Nachteil liegt aber auch auf der Hand. Das Alphabet hat nur 26 Buchstaben, also gibt es nicht all zu viele Schlüssel. Jeder kann sich einen eigenen Schlüssel ausdenken, aber selbst wenn ich alle 25 Möglichkeiten ausprobiere bekomme ich den Schlüssel relativ schnell raus. Insbesondere heutzutage mit dem Einsatz von Computern ist so ein Verfahren schnell durchschaut.

Mit den Computern kommen auch deutlich komplexere Möglichkeiten ins Spiel einen Code zu brechen. Zum Beispiel die Häufigkeitsanalyse. In jeder Sprache gibt es eine gewisse Häufigkeit mit der Buchstaben in Texten vorkommen. In der deutschen Sprache sind zum Beispiel „E“, „N“ und „I“ die häufigsten Buchstaben. Wenn ich also die Häufigkeit der Zeichen in einem Text zähle, kann ich davon ausgehen das die Häufigsten Zeichen dem „E“, „N“ und „I“ entsprechen, und schon habe ich den Schlüssel. In anderen Sprachen verlagert sich die Häufigkeit der Buchstaben natürlich. Mit den heute verfügbaren Computern ist es allerdings kein Problem die Häufigkeit der Zeichen in einem Text zu ermitteln und mit allen bekannten Sprachen zu vergleichen.

Die Häufigkeitsverteilung ist nur ein Beispiel. Es gibt komplexere Methoden eine Verschlüsselung zu knacken. Daraus folgt aber auch, man braucht bessere Verschlüsselungen. Da gibt es dann sehr komplexe mathematische Verfahren und viele verschiedene Methoden, die alle dafür sorgen sollen das man das Verschlüsselungsverfahren nicht erkennt (oder knackt) und somit der Text sicher ist. Das wird ziemlich kompliziert. Muss man aber gar nicht alles verstehen, denn eines ist das schöne daran: im Grunde funktionieren alle Verschlüsselungsverfahren ähnlich wie Cäsar, es gibt einen Text, einen Schlüssel, und einen verschlüsselten Text. Das merken wir uns.

Verschlüsselung heute

Heutzutage haben sich sogenannte „Public-Key-Verfahren“ durchgesetzt, zumindest für Texte die wirklich sicher sein sollen. Bei dem Public-Key-Verfahren gibt es zwei Schlüssel, einen öffentlichen und einen privaten. Da gibt es dann wieder ein total kompliziertes mathematisches Verfahren das man nicht verstehen muss, aber im Grunde gilt folgendes: was mit dem einen Schlüssel verschlüsselt wurde, kann nur und ausschließlich mit dem anderen Schlüssel entschlüsselt werden. Es gibt also nur zwei Möglichkeiten:

TEXT + privater Schlüssel = verschlüsselter Text

verschlüsselter Text + öffentlicher Schlüssel = TEXT

oder ….

TEXT + öffentlicher Schlüssel = verschlüsselter Text

verschlüsselter Text + privater Schlüssel = TEXT

Der Gedanke dahinter: man veröffentlicht seinen öffentlichen Schlüssel, zum Beispiel auf einer Webseite. Den privaten Schlüssel hält man geheim. Das ergibt dann diese beiden Möglichkeiten:

  • Jeder kann mit dem öffentlichen Schlüssel Texte verschlüsseln, und nur ich kann sie lesen
  • Ich kann mit dem privaten Schlüssel Texte verschlüsseln, und jeder kann sie mit dem öffentlichen Schlüssel entschlüsseln

Welchen Sinn das hat? Die erste Möglichkeit ist offensichtlich: Jeder kann mir geheime Botschaften zukommen lassen die nur für mich bestimmt sind. Das ist schon mal praktisch. Die zweite Möglichkeit scheint nicht ganz so offensichtlich, ist aber trotzdem praktisch: wenn man einen Text mit meinem öffentlichen Schlüssel entschlüsseln kann, dann muss er mit meinem privaten Schlüssel verschlüsselt worden sein. Es ist also garantiert das der Text von mir kommt. Ich kann mich damit sozusagen „ausweisen“. Und nicht nur das, die Empfänger können auch sicher sein das der Text nicht verändert wurde. Ich habe ihn geschrieben und verschlüsselt, und wenn er entschlüsselt wird steht da genau das was ich geschrieben habe. Es ist von mir und unverfälscht. Ich kann als Empfänger also sicher sein das der Absender und der Inhalt authentisch sind.

Und wenn ich jemandem eine Botschaft zukommen lassen möchte die nur diese Person lesen soll? Dann muss ich eben den öffentlichen Schlüssel der Person nehmen.

Selber verschlüsseln

Wer Lust hat sich mal einen eigenen Code auszudenken kann sich ein Beispiel an der Cäsar-Chiffre nehmen. Oder an der Bacon-Chiffre. Letztere ist ein Beispiel für eine Kodierung bei der die Zeichen vollständig ersetzt werden. Im Falle von Bacon sieht das so aus:

  • A -> aaaaa
  • B -> aaaab
  • C -> aaaba
  • D -> aaabb

Die Bacon-Chiffre ist einer der ersten Binär-Codes. Auch die kann man ausprobieren unter Tools: Chiffre. Wer mehr darüber erfahren möchte findet die komplette Chiffre unter KnowHow: Kryptologie.

Und das beste: man kann die Codes auch miteinander kombinieren. Erst die Übersetzung der Bacon-Chiffre und dann eine Cäsar-Verschiebung?

Und wenn man es ganz bunt treiben möchte, warum nicht gleich die Buchstaben des Alphabetes durch ein anderes ersetzen? Runen zum Beispiel. Oder die Zahlen mal austauschen. Es gibt immerhin auch andere Kulturen mit anderen Zeichen, und Unicode sei dank sind die am Computer auch benutzbar:

Indische ZiffernWenn man dann einen deutschen Text mit Runen schreibt, den per Bacon ersetzt und mit Cäsar verschiebt, dann dürfte bei der Entschlüsselung schon der ein oder andere ins schwitzen kommen. Und wenn man lange genug probiert und sich in das Thema vertieft, entwickelt man irgendwann ein Public-Key-Verfahren.

Viel Spaß!  😉

 

http://www.relast.de/tools/chiffre

http://www.relast.de/knowhow/kryptologie

 

https://de.wikipedia.org/wiki/Kryptologie

https://de.wikipedia.org/wiki/Caesar-Verschl%C3%BCsselung

https://de.wikipedia.org/wiki/ROT13

https://de.wikipedia.org/wiki/Public-Key-Verschl%C3%BCsselungsverfahren