Wie geht Verschlüsselung?

Verschlüsselung ist echt schwierig zu verstehen. Zumindest wenn man es genau wissen will. Aber wir nehmen es gar nicht so genau, wir wollen nur ein Grundverständnis davon bekommen, sozusagen die „Executive Summary“. Dafür „erfinde“ ich hier ein paar einfache Verschlüsselungen, mit denen ich meine Nachricht (eine Verabredung zum Bier) verschlüsseln könnte.

Die erste, ganz einfache Idee für eine Verschlüsselung ist, dass jeder Buchstabe durch den nächsten im Alphabet ersetzt wird. Aus „a“ wird „b“, aus „b“ wird „c“, aus „z“ wird wieder „a“ usw. So wird aus „Hallo, hast Du heute abend Zeit?“ ein unverständliches „Ibmmp, ibtu Ev ifvuf bcfoe Afju?“

Einfache Verschlüsselung durch Buchstabenverschiebung

Falls das zu offensichtlich war, können wir auch die Buchstaben nicht um eine, sondern um drei Stellen im Alphabet verschieben (a->d, b->e, c->f usw.)

Einfache Verschlüsselung durch Buchstabenverschiebung

Das ist jetzt schon ein richtiger Verschlüsselungsalgorithmus, damit hat Caesar vor über zweitausend Jahren seine militärischen Geheimnisse übermittelt.

Das Problem dabei ist, dass jeder, der die Methode kennt, den Text entschlüsseln kann. Und auch wenn wir nicht um 3 sondern um 5 oder 17 Stellen im Alphabet verschieben, hat ein Angreifer schnell die paar Möglichkeiten durchprobiert.

Deshalb verbessere ich meine Verschlüsselung so, dass die Verschiebung bei jedem Buchstaben wechselt. Ich nehme eine Folge von Zahlen (im Beispiel „1 5 8 3“), die reihum angeben, um wieviel der nächste Buchstabe meines Textes im Alphabet verschoben wird.

Bessere Verschlüsselung mit Verschiebungs-Code

Jetzt kann ich sogar offen sagen, nach welcher Methode der Text verschlüsselt wurde. Wer den Code („1 5 8 3“) nicht kennt, kann den Text nicht entschlüsseln. Er könnte zwar alle möglichen Codes durchprobieren. Aber das ist viel Arbeit und ich kann es dem Angreifer schwer machen, in dem ich eine lange Zahlenfolge (nicht vier sondern z.B. 30 oder 500 Stellen) verwende.

Auch dies ist eine bekannte Verschlüsselungsmethode, sie heißt Vigenère-Verschlüsselung. Auch wenn sie auf den ersten Blick ziemlich unknackbar aussieht, wurde sie schon 1854 das erste Mal entziffert. Für heutige Computer und Entschlüsselungsprogramme ist sie eher eine leichte Übung. Trotzdem können wir einiges daraus lernen.

  • Die Standard-Funktionsweise von Verschlüsselungsprogrammen ist so, dass der Klartext mit Hilfe eines geheimen Schlüssels von einem Verschlüsselungsalgorithmus verschlüsselt wird und so der verschlüsselte Text entsteht.
    Prinzipieller Ablauf der Verschlüsselung
    Meistens kann man den verschlüsselten Text auf dem gleichen Weg auch wieder entschlüsseln. (Zu den wichtigen Ausnahmen komme ich später.)
  • Auch wenn ein Angreifer die Verschlüsselungsmethode kennt, braucht er trotzdem den geheimen Schlüssel, um den Text entschlüsseln zu können.
  • Durch einen längeren Schlüssel kann man dem Angreifer ein einfaches Durchprobieren aller Möglichkeiten erheblich erschweren.
  • Ob ein Verschlüsselungsalgorithmus sicher aussieht, spielt keine Rolle. Erst wenn viele Experten es nicht geschafft haben, ihn zu knacken, darf man sich auf seine Sicherheit verlassen.

Diese Einsichten gelten auch für heute noch übliche Verschlüsselungsmethoden.

Asymmetrische Verschlüsselung

Ich habe bisher immer als selbstverständlich vorausgesetzt, dass eine Nachricht auf dem selben Weg und mit dem selben Code entschlüsselt wird, wie sie verschlüsselt wurde. Dass man das auch anders machen kann und dass das evtl. eine gute Idee ist, werde ich jetzt zeigen.

Mit Hilfe von moderner Mathematik wurden Verschlüsselungsmethoden entwickelt, die zwei verschiedene Schlüssel benutzen.

Asymmetrische Verschlüsselung

Eine Nachricht, die mit dem einen Schlüssel verschlüsselt wurde, kann nur mit dem anderen entschlüsselt werden. Und umgekehrt. Wenn eine Nachricht mit Schlüssel 1 verschlüsselt wurde und ich nur Schlüssel 1 besitze, nicht aber Schlüssel 2, dann kann ich nichts mit der Nachricht anfangen. Wenn sie aber mit Schlüssel 2 verschlüsselt wurde, kann ich sie nur mit Schlüssel 1 wieder lesbar machen. (Wie das genau funktioniert, kann ich leider nicht erklären, das übersteigt meine mathematischen Fähigkeiten.)

Ihr werdet fragen, was uns diese Asymmetrie der Verschlüsselung bringt. Aber der eigentliche Kunstgriff kommt erst noch: Ich kann jetzt einen der beiden Schlüssel veröffentlichen, anders als bei den bisherigen Verschlüsselungen darf diesen Schlüssel jeder sehen. Aber das Gegenstück, den zweiten Schlüssel, halte ich weiterhin geheim. Am Ende habe ich also einen öffentlichen und einen privaten Schlüssel.

Wenn mir nun jemand eine verschwiegene Nachricht schicken will, kann er sie einfach mit meinem öffentlichen Schlüssel verschlüsseln. Und weil nur ich das Gegenstück dazu habe, kann auch nur ich die Nachricht wieder entschlüsseln und lesen. Und wenn ich auf seine Botschaft antworten will, muss der Andere ebenfalls ein Schlüsselpaar generieren und einen der beiden Schlüssel mir (und allen anderen) mitteilen. Damit verschlüssele ich meine Antwort und bin mir sicher, dass nur derjenige, dem dieses Schlüsselpaar gehört, sie lesen kann.

Es muss also jeder, der an dieser verschlüsselten Kommunikation teilnehmen will, ein Schlüsselpaar generieren, einen der beiden Schlüssel veröffentlichen und den anderen geheim halten. Dann können ihm alle anderen sicher verschlüsselte Nachrichten zukommen lassen.

Authentifizierung

Ein weiteres Problem der Kryptografie ist: Wie kann ich sicher wissen, ob die Nachricht wirklich von meinem Freund und nicht von einem böswilligen Dritten kommt? Auch das lässt sich mit der asymmetrischen Verschlüsselung lösen.

Wenn ich eine Nachricht mit meinem geheimen Schlüssel verschlüssele, kann sie jeder mit meinem öffentlichen Schlüssel wieder entschlüsseln. Es weiß dann aber auch jeder, dass die Nachricht nur von mir stammen kann. Denn nur ich habe meinen privaten Schlüssel, d.h. nur ich kann verschlüsselte Nachrichten erstellen, die man mit meinem öffentlichen Schlüssel wieder lesbar machen kann.

Um meinem Freund zu garantieren, dass es sich um eine Original-Geheimnachricht von mir handelt, kann ich meinen Text also zuerst mit seinem öffentlichen Schlüssel verschlüsseln und das Ergebnis dann noch einmal mit meinem privaten Schlüssel verschlüsseln. Er wird die Botschaft dann umgekehrt mit meinem öffentlichen und danach mit seinem eigenen privaten Schlüssel entschlüsseln. Dann hat er die Sicherheit, dass die Botschaft nur von mir kommen kann und sie auch unterwegs kein Unbefugter lesen konnte.

So, das war ’ne ganze Menge, damit soll’s erst mal gut sein. Im nächsten Blogpost will ich was über praktische Anwendung der Verschlüsselung erzählen.

Advertisements
Dieser Beitrag wurde unter Uncategorized veröffentlicht. Setze ein Lesezeichen auf den Permalink.