Was ist ein kryptografischer Schlüssel? | Schlüssel und SSL-Verschlüsselung

Ein Schlüssel ist eine Gruppe von zufälligen Zeichen in einer bestimmten Reihenfolge. Verschlüsselungsprotokolle verwenden einen Schlüssel, um Daten so zu ändern, dass sie verschlüsselt werden und jemand ohne den Schlüssel die Informationen nicht entschlüsseln kann.

Share facebook icon linkedin icon twitter icon email icon

Kryptografischer Schlüssel

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Sie wissen, was ein „Schlüssel“ in der Kryptografie ist
  • Sie verstehen, wie ein Schlüssel verwendet wird, um Daten bei der Verschlüsselung zu verschlüsseln
  • Sie können erklären, wie der Austausch öffentlicher Schlüssel HTTPS ermöglicht
Cryptographic Key

Was ist ein kryptografischer Schlüssel?

In der Kryptografie ist ein Schlüssel eine Zeichenfolge, die in einem Verschlüsselungsalgorithmus verwendet wird, um Daten so zu ändern, dass sie zufällig erscheinen. Wie mit einem physischer Schlüssel werden die Daten gesperrt (verschlüsselt), sodass nur jemand mit dem richtigen Schlüssel sie entsperren (entschlüsseln) kann.

Cryptographic Key Hello

Die Originaldaten werden als Klartext bezeichnet, die Daten nach der Verschlüsselung mit dem Schlüssel als Chiffretext.

Die Formel:

Klartext
+ Schlüssel
= Chiffretext

Schlüssel in frühen Formen der Verschlüsselung

Vor dem Aufkommen von Computern wurde Chiffretext oft durch einfaches Ersetzen eines Buchstabens durch einen anderen Buchstaben im Klartext erzeugt, eine Methode, die als „Substitutionschiffre“ bezeichnet wird. Angenommen, jemand schickt einer anderen Person die Nachricht „Hello“, und jeder Buchstabe wird durch den im Alphabet nachfolgenden ersetzt: Aus „Hello“ wird „Ifmmp“.

H E L L O
+1 +1 +1 +1 +1
I F M M P

„Ifmmp“ sieht wie eine unsinnige Buchstabenfolge aus, aber wenn jemand den Schlüssel kennt, kann er die richtigen Buchstaben ersetzen und die Nachricht als „Hello“ entschlüsseln. In diesem Beispiel lautet der Schlüssel (Buchstabe) - 1, wobei jeder Buchstabe im Alphabet um eine Stelle nach oben verschoben wird, um zum eigentlichen Buchstaben zu gelangen.

I F M M P
-1 -1 -1 -1 -1
H E L L O

Solche Chiffren sind mit einer einfachen statistischen Analyse relativ leicht zu knacken, da bestimmte Buchstaben in einem bestimmten Text häufiger vorkommen als andere (z. B. ist E der häufigste Buchstabe in der englischen Sprache). Um dem entgegenzuwirken, haben Kryptografen ein System entwickelt, das als One-Time-Pad bezeichnet wird.

Ein One-Time-Pad ist ein Schlüssel zur einmaligen Verwendung, der mindestens so viele Werte hat, wie der Klartext Zeichen enthält. Mit anderen Worten: Jeder Buchstabe wird durch einen Buchstaben ersetzt, der eine einmalige Anzahl von Positionen von ihm im Alphabet entfernt ist.

Angenommen, jemand muss die Nachricht „Hello“ verschlüsseln und verwendet ein One-Time-Pad mit den Werten 7, 17, 24, 9, 11.

H E L L O
7 17 24 9 11

Während wir zuvor einfach jeden Buchstaben (Buchstabe + 1) eine Position nach oben verschoben haben, verschieben wir jetzt jeden Buchstaben eine andere Anzahl von Stellen im Alphabet. Wir addieren 7 zum ersten Buchstaben, H; wir addieren 17 zum zweiten Buchstaben; und so weiter. Für alle Berechnungen, die über Z hinausgehen, gehen wir einfach zum Anfang des Alphabets zurück und addieren weiter.

H E L L O
7 17 24 9 11
O V J U Z

Ausgehend vom Klartext „Hello“ haben wir nun mit dem Schlüssel „7, 17, 24, 9, 11“ den Chiffretext „Ovjuz“ erhalten.

Damit die Kommunikation mithilfe eines One-Time-Pad funktioniert, müssen beide Seiten der Konversation für jede einzelne Nachricht denselben Schlüssel verwenden (symmetrische Verschlüsselung), während jedes Mal ein anderer Schlüssel verwendet wird, wenn eine neue Nachricht eintrifft. Obwohl „Ovjuz“ für Dritte wie zufälliger Unsinn aussieht, wird die Person, die den Chiffretext „Ovjuz“ erhält, wissen, dass sie den Schlüssel „7, 17, 24, 9, 11“ zum Entschlüsseln verwenden muss (subtrahieren statt addieren):

O V J U Z
7 17 24 9 11
H E L L O

So kann eine einfache Nachricht durch eine Folge von zufälligen Daten, einen Schlüssel, geändert werden, um verschlüsselt oder entschlüsselt zu werden.

Schlüssel in der modernen Verschlüsselung

Obwohl die obigen Beispiele der frühen Kryptografie veranschaulichen, wie die Verwendung einer zufälligen Informationsfolge zur Umwandlung von Klartext in Chiffretext funktioniert, sind kryptografische Schlüssel heute weitaus komplexer.

Beispielsweise lautet der öffentliche Schlüsselfür cloudflare.com:

04 CE D7 61 49 49 FD 4B 35 8B 1B 86 BC A3 C5 BC D8 20 6E 31 17 2D 92 8A B7 34 F4 DB 11 70 4E 49 16 61 FC AE FA 7F BA 6F 0C 05 53 74 C6 79 7F 81 12 8A F7 E2 5E 6C F5 FA 10 69 6B 67 D9 D5 96 51 B0 (aus dem cloudflare.com SSL-Zertifikat kopiert)

Dies ist sehr viel komplexer als der Schlüssel „7 17 24 9 11“, den wir oben zur Verschlüsselung von „Hello“ verwendet haben.

Anstatt einfach nur zu addieren oder zu subtrahieren, verwendet die moderne Verschlüsselung komplexe mathematische Formeln, die als Algorithmen bezeichnet werden. Und anstelle einer einfachen Folge von Zufallszahlen für einen Schlüssel zu verwenden, werden moderne Schlüssel in der Regel noch weiter randomisiert.

Dies ist aus mehreren Gründen der Fall:

  1. Computer sind in der Lage, weitaus kompliziertere Berechnungen in kürzerer Zeit durchzuführen als menschliche Kryptografen, wodurch eine komplexere Verschlüsselung nicht nur möglich, sondern auch notwendig ist.
  2. Computer können Informationen auf der binären Ebene, den Einsen und Nullen, aus denen Daten bestehen, ändern, nicht nur auf der Ebene einzelner Buchstaben und Zahlen.
  3. Wenn verschlüsselte Daten nicht ausreichend randomisiert sind, kann ein Computerprogramm sie entschlüsseln. Echte Zufälligkeit ist extrem wichtig für eine wirklich sichere Verschlüsselung. Obwohl es nicht möglich ist, ein Programm zu schreiben, das in 100 % der Fälle wirklich zufällige Daten erzeugt, sind Computer viel besser darin als Menschen.

In Kombination mit einem Verschlüsselungsalgorithmus verschlüsselt ein kryptografischer Schlüssel einen Text bis zur Unkenntlichkeit.

Als Beispiel verschlüsseln wir die Nachricht „Hello“ mit dem öffentlichen Schlüssel von cloudflare.com. Unter Verwendung eines Verschlüsselungsalgorithmus mit diesem Schlüssel erhalten wir „KZ0KVey8l1c=“ als Chiffretext. (Für technisch Interessierte: Blowfish-Algorithmus, CBC-Modus, Base64-Kodierung).

Wie werden Schlüssel bei der SSL-Verschlüsselung (HTTPS) verwendet?

Es gibt zwei Arten von Verschlüsselung: symmetrische Verschlüsselung und asymmetrische Verschlüsselung, auch als Verschlüsselung mit öffentlichem Schlüssel bezeichnet. Bei der symmetrischen Verschlüsselung verwenden beide Seiten einer Konversation denselben Schlüssel, um Klartext in Chiffretext umzuwandeln und umgekehrt.

Bei der asymmetrischem Verschlüsselung oder Verschlüsselung mit öffentlichem Schlüssel verwenden die beiden Seiten der Konversation jeweils einen anderen Schlüssel. Dabei wird ein Schlüssel als öffentlicher Schlüssel bezeichnet und ein Schlüssel als privater Schlüssel – so genannt, weil eine der Parteien ihn geheim hält und ihn niemals mit jemandem teilt. Wenn Klartext mit dem öffentlichen Schlüssel verschlüsselt wird, kann ihn nur der private Schlüssel entschlüsseln, nicht der öffentliche Schlüssel. Es funktioniert auch umgekehrt: Wenn Klartext mit dem privaten Schlüssel verschlüsselt wird, kann ihn nur der öffentliche Schlüssel entschlüsseln.

SSL (oder TLS, wie es heute genannt wird) ist ein Verschlüsselungsprotokoll, das verwendet wird, um die Internetkommunikation sicher zu halten Eine Website, die über HTTPS statt über HTTP bereitgestellt wird, verwendet diese Art der Verschlüsselung. In TLS/SSL hat eine Website oder Webanwendung sowohl einen öffentlichen als auch einen privaten Schlüssel. Der öffentliche Schlüssel wird im SSL-Zertifikat der Website öffentlich zugänglich gemacht, damit jeder ihn sehen kann. Der private Schlüssel wird auf dem Ursprungsserver installiert und nie weitergegeben.

TLS/SSL-Kommunikationssitzungen beginnen mit einem TLS-Handshake, bei dem die Website und der Client den öffentlichen Schlüssel und den privaten Schlüssel verwenden, um neue Schlüssel zu generieren, die als Sitzungsschlüssel bezeichnet werden. Diese Sitzungsschlüssel werden dann von beiden Seiten verwendet, um ihre Nachrichten hin und her zu verschlüsseln.

Also beginnt TLS mit einer asymmetrischen Verschlüsselung (mit zwei Schlüsseln) und wechselt zur symmetrischen Verschlüsselung (mit einem Schlüssel). Beide Seiten verwenden während der Kommunikationssitzung dieselben Schlüssel, aber wenn sie eine neue Sitzung starten, generieren sie gemeinsam neue Schlüssel.