Verschlüsselung
Bild: Stern, Public domain, Wikimedia Commons
Kurz: Das Umwandeln von lesbaren Daten (Klartext) in eine unlesbare Form (Geheimtext) mithilfe eines Algorithmus und eines Schlüssels — umkehrbar, im Gegensatz zu Hashing.
Genauer: Man unterscheidet grundsätzlich zwei Arten: symmetrische Verschlüsselung (ein Schlüssel für beide Richtungen) und asymmetrische Verschlüsselung (Schlüsselpaar aus öffentlichem und privatem Schlüssel). Verschlüsselung schützt die Vertraulichkeit von Daten — sowohl “in transit” (während der Übertragung, z. B. via TLS) als auch “at rest” (im gespeicherten Zustand, z. B. verschlüsselte Festplatten).
Im Detail
Die beiden Grundtypen im direkten Vergleich:
Symmetrisch (z. B. AES) Asymmetrisch (z. B. RSA)
----------------------- -------------------------
1 gemeinsamer Schlüssel Schlüsselpaar (öffentlich + privat)
sehr schnell deutlich langsamer
Problem: sicherer Austausch kein Austauschproblem
des Schlüssels (öffentlicher Teil darf öffentlich sein)
Der Zusatz “in transit” vs. “at rest” beschreibt WANN Daten geschützt werden, und beide Fälle brauchen oft unterschiedliche Lösungen: “In transit” (während der Übertragung) läuft meist über TLS, das automatisch pro Verbindung einen frischen Schlüssel aushandelt. “At rest” (im gespeicherten Zustand, z. B. eine Datenbank oder Festplatte) braucht dagegen einen dauerhaften Schlüssel, der sicher verwaltet werden muss — verliert man diesen Schlüssel, sind auch die Daten unwiederbringlich verloren, verliert ein Angreifer ihn NICHT, bleiben die Daten für ihn wertlos, selbst wenn er die Festplatte physisch stiehlt.
Ein oft übersehener dritter Zustand ist “in use” (während der Verarbeitung im Arbeitsspeicher) — hier liegen Daten in den allermeisten Systemen tatsächlich unverschlüsselt vor, weil eine CPU im Normalfall nicht direkt mit verschlüsselten Daten rechnen kann. Spezialisierte Technologien wie “Homomorphe Verschlüsselung” oder “Confidential Computing” (isolierte, verschlüsselte Speicherbereiche der CPU) versuchen, auch diese Lücke zu schließen, sind aber (Stand heute) deutlich aufwändiger und noch nicht der Standardfall in gewöhnlichen Webanwendungen.
Ende-zu-Ende-Verschlüsselung als Sonderfall
Ein besonders striktes Verschlüsselungsmodell ist die Ende-zu-Ende-Verschlüsselung (End-to-End Encryption, E2EE), wie sie z. B. Signal oder WhatsApp für Nachrichten nutzen: Dabei werden Daten bereits auf dem Sendegerät verschlüsselt und erst auf dem Empfangsgerät wieder entschlüsselt — selbst der Betreiber des Dienstes, über dessen Server die Nachricht läuft, kann den Inhalt zu keinem Zeitpunkt im Klartext einsehen. Das unterscheidet sich von “nur” verschlüsselter Übertragung (TLS zwischen Client und Server), bei der der Serverbetreiber die Daten zumindest kurzzeitig unverschlüsselt verarbeiten könnte — E2EE schließt genau diese Lücke, verkompliziert aber Funktionen, die serverseitigen Zugriff auf den Klartext erfordern (z. B. serverseitige Volltextsuche über eigene Nachrichten).
Historische Verschlüsselungsverfahren
Verschlüsselung ist keine Erfindung des Computerzeitalters: Die Caesar-Verschlüsselung (Verschiebung jedes Buchstabens um eine feste Anzahl Stellen im Alphabet) wird auf Julius Caesar zurückgeführt und zeigt bereits das Grundprinzip aus Algorithmus (Verschiebung) und Schlüssel (Anzahl Stellen) — allerdings mit nur 25 möglichen Schlüsseln extrem unsicher nach heutigen Maßstäben. Die Enigma-Maschine im Zweiten Weltkrieg war deutlich komplexer (mechanische Rotoren erzeugten eine sich ständig ändernde Verschlüsselung), wurde aber von alliierten Codeknackern (u. a. Alan Turing) letztlich gebrochen — ein historisches Beispiel dafür, dass auch als “unknackbar” geltende Systeme mit genug mathematischem und rechnerischem Aufwand fallen können, was bis heute die Motivation für stetig wachsende Schlüssellängen und neue kryptografische Verfahren prägt.
Siehe auch: Symmetrische Verschlüsselung, Asymmetrische Verschlüsselung, Verschlüsselungsalgorithmus