Symmetrisch oder Asymmetrisch

Die Mechanismen hinter Verschlüsselung und sicherer E-Mail-Kommunikation

28. April 2014
Von Hermann Apfelböck
Eine verschlüsselte E-Mail soll nur für den Absender und den Empfänger lesbar sein. Aber wie funktioniert eigentlich eine solche Verschlüsselung von vertraulichen Daten?

Vor 2000 Jahren reichte eine Cäsar-Verschlüsselung für militärische Geheimbotschaften: Dabei wurde jeder Buchstabe um eine bestimmte Stellenanzahl im Alphabet vorgerückt - aus A wird dann etwa D, aus B wird E und so fort. Heute durchschaut diesen Code jeder clevere Grundschüler. Demgegenüber gehört inzwischen eine hochkomplexe Verschlüsselung zum Alltag, die gar nicht oder jedenfalls nicht mit vertretbarem Aufwand zu knacken ist. Ermöglicht wird dies durch schnelle Computer und passende Software. Was da eigentlich passiert, ist allerdings den wenigsten PC-Benutzern transparent. Dieser Beitrag erläutert die Grundmechanismen

Symmetrische Verschlüsselung

Wer im PC-Alltag Daten verschlüsselt, nutzt in der Regel eine symmetrische Verschlüsselung. Diese zeichnet sich dadurch aus, dass beim Verschlüsseln wie beim Entschlüsseln derselbe Schlüssel benutzt wird. Die angesprochene Cäsar-Substitution ist ein extrem einfaches Beispiel für symmetrische Verschlüsselung. Der Schlüssel lautet "Alphabetposition plus / minus n", wobei für "n" lediglich 26 Möglichkeiten bestehen. Je nach Richtung - Chiffrierung oder De-Chiffrierung - werden die Einzelbuchstaben dann ersetzt.


Rar-, 7-Zip oder auch speziellere Kryptographie- Werkzeuge wie Bitlocker oder Truecrypt verwenden ebenfalls symmetrische Verschlüsselung, doch ist der Zugangsschlüssel hier ein variables, frei wählbares Kennwort. Dadurch gibt es theoretisch beliebig viele Schlüssel, und die Sicherheit der codierten Daten hängt wesentlich von der Länge und Komplexität des gewählten Kennworts ab.

Guter Schutz auf mobilen Geräten und für Daten in der Cloud: Packer wie 7-Zip oder Winrar mit Kennwortoption verschlüsseln zuverlässig, sofern Sie lange und komplexe Kennwörter verwenden.
Guter Schutz auf mobilen Geräten und für Daten in der Cloud: Packer wie 7-Zip oder Winrar mit Kennwortoption verschlüsseln zuverlässig, sofern Sie lange und komplexe Kennwörter verwenden.

Exkurs: Um genau zu sein, ist das Kennwort zwar für den Benutzer der Schlüssel zum Decodieren, technisch handelt es sich jedoch um einen hexadezimalen Schlüssel definierter Länge (etwa 256 Bit = 32 Byte). Diesen tatsächlichen Schlüssel kann das jeweilige Programm eindeutig aus dem Kennwort errechnen.


Um nun zu skizzieren, was bei der symmetrischen Verschlüsselung unter der Haube geschieht, verwenden wir ein vereinfachtes Beispiel. Die zu verschlüsselnde Datei enthält nur das Wort "PCWELT", und das Kennwort lautet "geheim". Die jeweilige Software - immer noch Rar, 7-Zip, Truecrypt, Bitlocker und Co. - kann nun zur Erhöhung der Sicherheit verschiedene Methoden einsetzen: etwa Transposition, also das Verschieben von Bytes innerhalb eines definierten Blocks oder auch Ersetzungen nach dem logischen Vorbild der Cäsar-Verschlüsselung. Bei diesen kryptographischen Umwandlungen spielt der Schlüssel (Kennwort) immer eine wesentliche Rolle.

Die verbreitete und bewährte symmetrische Verschlüsselung nach AES (Advanced Encryption Standard) sieht mehrere Umwandlungen innerhalb von 8-Byte-Blöcken unter Berücksichtigung des Schlüssels vor. Wie viel Aufwand eine Software im Einzelnen treibt, ist immer eine pragmatische Entscheidung zwischen höchstmöglicher Sicherheit und vertretbarem Rechenaufwand. Anders als bei der simplen Cäsar-Rotation geschehen solche Codierungen aber nicht auf der Zeichen-, also der Byte-Ebene, sondern auf Bit-Ebene, also auf der untersten Informationsebene der Nullen und Einsen. Dabei spielt das selbstinverse XOR in moderner Kryptographie eine entscheidende Rolle.

Um Ihnen diese XOR-Funktion zu verdeutlichen, kommen wir wieder zum Klartext "PCWELT" und zum einfachen Kennwort "geheim" zurück: Ausgangstext und Schlüssel (hier der Einfachheit halber mit dem Kennwort gleichgesetzt) werden im einfachsten Fall Byte für Byte verglichen und XOR-verknüpft. Beginnen wir beim ersten Byte: Das Byte in "PCWELT" ist das "P". Wie alles bei der digita - len Datenverarbeitung wird dieses "P" intern durch eine Zahl dargestellt, nämlich mit dem (Ascii-) Wert 80, "g" in "geheim" mit dem Wert 103. In der Binärschreibweise im Rechner mit Nullen und Einsen sieht das dann so aus:

P = 80 (dez) = 01010000 (Bin)
g = 103 (dez) = 01100111 (Bin)
XOR -------------------------
7 = 55 (dez) = 00110111 (Bin)

XOR vergleicht Bit für Bit von Position 1 bis 8: Sind zwei Bits an der jeweiligen Position identisch, also "0 und 0" oder "1 und 1", so ergibt sich die "0". Sind die zwei Bits unterschiedlich, also einmal die "0" und einmal die "1", so ergibt sich die "1" als Ergebnis. In diesem Beispiel kommt XOR zu dem Bitmuster 00110111. Das entspricht dezimal 55 und das verschlüsselte Resultat ist am Ende die "7" (Ascii 55).

Nach analogem Vorgehen für die weiteren Bytes wird aus "PCWELT" der Text "7&? %9". Das Erfreuliche an der XOR-Verknüpfung: Bei der Dechiffrierung des Codes mit dem richtigen Kennwort kommt dann wieder der Klartext zum Vorschein. Auch hier soll uns das erste Byte als Beispiel genügen:

7 = 55 (dez) = 00110111 (Bin)
g = 103 (dez) = 01100111 (Bin)
XOR -------------------------
P = 80 (dez) = 01010000 (Bin)

Aus der "7" wird also wieder das "P" von "PCWELT". Was kompliziert aussieht und oben nur für ein einziges Byte beschrieben ist, erledigen Packer oder Verschlüsselungsprogramme selbst bei großen Dateien in Sekunden.