Digitale Schlüssel (Verschlüsselung)

Digitale Schlüssel sind zufällige Zeichenketten, die zusammen mit einem Algorithmus Daten im Klartext in einen Geheimtext umwandeln. Man spricht hierbei auch von Verschlüsseln. Wobei das Verschlüsselungsverfahren dafür sorgt, dass derjenige, der den Schlüssel hat aus dem Geheimtext wieder den Klartext bekommen kann. Der digitale Schlüssel ist also ein geheimer Wert, der idealerweise nur derjenige weiß, der die Daten Ver- und Entschlüsseln darf.
Dem Schlüssel kommt eine besondere Bedeutung zu, weil es neben starken und schwachen Verschlüsselungsverfahren auch starke und schwache Schlüssel gibt. Die Art und Weise, wie ein Schlüssel erzeugt wird und dessen Komplexität und Länge, spielen bei der Beurteilung eines Schlüssels eine Rolle. Aber auch, wie sicher der Schlüssel aufbewahrt wird. Denn in der Regel ist es so, dass der Schlüssel eine Länge und Komplexität aufweist, weshalb die Zeichenkette, die den Schlüssel repräsentiert, sich kein normaler Menschen merken kann. Weshalb der Schlüssel zur einfacheren Verarbeitung innerhalb eines Computersystems zum Ver- und Entschlüsseln gespeichert wird. Damit ein Angreifer nicht einfach so auf den Schlüssel zugreifen kann, sind Berechtigungen notwendig und zusätzlich die Sicherung durch ein Passwort mit einer entsprechenden Verschlüsselung.

Vom Passwort zum Schlüssel

Ein gutes Verschlüsselungsverfahren wird niemals das Passwort des Nutzers zum Verschlüsseln verwenden. Der Grund dafür ist, dass ein typisches Passwort als Schlüssel zu kurz und viel zu leicht zu erraten ist. Deshalb muss ein digitaler Schlüssel wesentlich länger sein.
Bevor ein Programm oder ein Verfahren ein Passwort zum Verschlüsseln verwenden kann, muss es aus dem Passwort einen Schlüssel generieren. Je länger der Schlüssel, desto sicherer ist die Verschlüsselung.
Bei AES-256 ist der Schlüssel zum Beispiel 256 Bit lang. Zum Vergleich hat ein Passwort mit 8 Zeichen gerade mal 64 Bit, wenn jedes Zeichen mit 8 Bit codiert ist (Unicode). Bei einem 64 Bit langen Schlüssel gäbe es immerhin 264 = 1,8 x 1016 Schlüssel (eine 18 mit 15 Nullen). Für einen sicheren Schlüssel sind 64 Bit allerdings viel zu kurz.

Um von einem relativ kurzen Passwort zu einem langen Schlüssel zu kommen, löst man in der Kryptografie mit einer kryptografischen Hash-Funktion. Da ein Passwort nur eine Folge von Nullen und Einsen ist, wird daraus einfach eine neue Folge von Nullen und Einsen mit fester Länge berechnet. Beispielsweise mit einer Länge von 256 Bit oder mehr.
Das hat folgenden Vorteil: Wenn ein Angreifer alle möglichen Passwörter durchprobieren will, dann dauert das sehr lange. Entweder, weil er alle möglichen Folgen von Nullen und Einsen durchprobieren muss, oder weil er alle denkbaren Passwörter mit der kryptografischen Hash-Funktion umrechnen muss. Ein normaler Computer ist damit viele Jahre beschäftigt.

Um den Aufwand beim Schlüsselknacken zu erhöhen und damit die Rechenzeit zu verlängern, wird die Hash-Funktion mehrere tausend Mal angewendet. Man bezeichnet das als Key Stretching oder Key Derivation Function. PBKDF2 (Password Based Key Derivation Function 2) gilt hier als das Maß aller Dinge. Das führt dazu, dass die Verschlüsselung mit ausreichend langen und komplexen Passwörtern kaum zu knacken ist.

Hinweis: Nicht in jedem Fall geht das Passwort oder die Passphrase in die Berechnung eines Schlüssels mit ein. Bei asymmetrischen Verschlüsselungsverfahren, wie es bei PGP zum Einsatz kommt, wird das Schlüsselpaar rein zufällig erzeugt. Hierbei hängt die Qualität des Schlüssels vom Zufall ab (Entropie), der zum Zeitpunkt der Schlüsselerzeugung auf dem System vorhanden ist. Um mehr Zufall zu erzeugen wird man bei der Schlüsselerzeugung dazu aufgefordert die Maus unsystematisch zu bewegen oder irgendwelche Tasten zu drücken. In so einem Fall ist ein Passwort nur eine Hülle, um den unberechtigten Zugriff auf den Schlüssel zu verhindern.

Erzeugung der Schlüssel / Schlüsselerzeugung

Es gibt grundsätzlich drei Faktoren, die bei der Schlüsselerzeugung wichtig sind. Zum einen woraus der Schlüssel entsteht (Schlüsselmaterial), wie der Schlüssel entsteht (Verfahren) und wo er erzeugt wird (Hardware/System). Wobei das "Wo" auch darüber entscheidet, wie und woraus der Schlüssel entsteht.

Schlüssellänge

Ein Verschlüsselungsverfahren gilt dann als sicher, wenn über mehrere Jahre und intensive Untersuchungen keine Schwachstelle gefunden wurde, die in der Praxis für Angriffe nutzbar ist. Theoretische Angriffe kann es natürlich trotzdem geben. Doch die sehen bestimmte Konstellationen vor, die man in der Praxis erfolgreich vereitelt.
In der Praxis darf es also keinen besseren Angriff geben als die Suche nach dem vollständigen Schlüssel. In der Regel ist es so, dass für die verwendeten Verschlüsselungsverfahren der vollständige Schlüssel nur mit viel Rechenleistung zu ermitteln ist. Also das Durchprobieren aller denkbaren Schlüssel. In so einem Fall ist die Sicherheit des Verfahrens nur noch von der Länge des Schlüssels abhängig. Der Schlüssel sollte deshalb möglichst lang sein.

Um ein Gefühl zu bekommen, wie lang ein Schlüssel sein muss, nehmen wir einen Schlüssel, der 128 Bit lang ist (für ein symmetrisches Verfahren). Das entspräche eine Menge von 2128 bzw. 3,4 x 1038 Schlüssel. Mit jedem Bit verdoppelt sich der Aufwand für den Angreifer, den er zum Knacken benötigt.
Nehmen wir weiter an, dass ein Angreifer einen Rechner hat, mit dem er 100 Milliarden Schlüssel pro Sekunden durchprobieren kann. Das Durchprobieren aller Schlüssel würde 3,4 x 1027 Sekunden dauern. Hätte der Angreifer 10 solcher Rechner, dann würde er 3,4 x 1026 Sekunden brauchen. Gehen wir mal davon aus, dass der Angreifer 100 solcher Rechner hat, dann würde er 3,4 x 1025 Sekunden brauchen. Hat der Angreifer großes Glück, und er hätte schon nach 1 Prozent der möglichen Schlüssel, den richtigen gefunden, dann hätte er 3,4 x 1023 Sekunden dafür gebraucht. Um ein Verständnis für diesen Zeitraum zu bekommen: Das sind 1016 Jahre. Das Alter unseres Universums wird auf 1010 Jahre geschätzt.
Wir stellen also fest, ein Schlüssel mit einer Länge von 128 Bit lässt sich praktisch nicht per Brute-Force (vollständige Schlüsselsuche) herausbekommen.

Eine Schlüssellänge von 128 Bit ist also durchaus ausreichend. In der Praxis ist es jedoch so, dass man längere Schlüssel verwendet. Beispielsweise 192 oder sogar 256 Bit. Das rührt daher, weil man davon ausgehen muss, dass irgendwann einmal mit Quantencomputer Kryptoanalysen möglich sind. Schon jetzt halbiert der Grover-Algorithmus mit den quantenmechanischen Gesetzen auf einem Quantencomputer die Schritte bei einer Schlüsselsuche um die Hälfte.
Außerdem gibt es in der Kryptografie Angriffe, die zur Halbierung der effektiven Schlüssellänge führt. Aus diesem Grund empfiehlt sich eine Schlüssellänge von 256 Bit, um die Sicherheit von 128 Bit zu haben. Schlüssellängen von 512 Bit oder mehr werden jedoch nicht empfohlen, weil man sonst an Software- und Hardware-Grenzen stößt. Beispielsweise beim Speicherplatzbedarf.

Hinweis: Längere Schlüssel bedeuten nicht zwangsläufig mehr Sicherheit. Ein langer Schlüssel bedeutet in der Regel auch, dass die vollständige Schlüsselsuche nicht mehr der beste Angriff ist. Wenn einem Angreifer der Schlüssel zu lang ist und er keine Möglichkeit hat, den Schlüssel mit einer vollständigen Schlüsselsuche herauszubekommen, muss er andere Wege finden. Unter Umständen tritt dann eine Schwäche des Verschlüsselungsalgorithmus oder eine Implementierung in den Vordergrund, die vorher in der Praxis keine Rolle gespielt hat.

Wie lang sollte ein Schlüssel sein?

Es gibt auf die Frage, wie lang ein Schlüssel sein muss, keine richtige Antwort. Im Prinzip sollte er immer so lang wie möglich sein. Aber irgendwie muss man die Länge definieren. Da die Sicherheit eines Schlüssels von seiner Länge abhängig ist, muss zuerst definiert werden, wie lange Daten sicher gespeicherte sein müssen. Danach legt man sich auf die Länge der Schlüssel fest. Klar muss jedoch sein, dass mit steigender Rechenleistung auch die Länge der Schlüssel zunehmen muss.
Grundsätzlich muss man zwischen asymmetrischen Schlüsseln für die Authentisierung, wie sie bspw. in Zertifikaten enthalten sind und symmetrischen Schlüsseln, die einfache Hash-Werte sind, unterscheiden. Die asymmetrischen Schlüssel in Zertifikaten sind immer länger (1.024 bis 4.096 Bit), während Hash-Werte kürzer sind (128 bis 512 Bit).
Bei symmetrischen Verfahren ist die Schlüssellänge immer vorgegeben oder man kann zumindest aus mehreren Vorgaben wählen. Bei asymmetrischen Verfahren ist die Schlüssellänge variabel, weil die als Schlüssel verwendete Zahl eine beliebige Größe annehmen kann.

Leider sind in der Praxis nicht immer die Funktionen zur Erzeugung der empfohlenen Schlüssellängen verfügbar. Deshalb kann man sich an Schlüssellängen von 4.096 Bit und Hash-Werten mit 512 Bit orientieren. Mit diesen Werten hat man Schlüssel, die ausreichend sicher sind. Kürzere Schlüssel sind weniger sicher. Sind die Schlüssel wesentlich kürzer, dann sind die Schlüssel für die Zukunft als unsicher anzusehen und auszutauschen.