Datenverschlüsselung – Kryptographie (Grundlagenbeitrag)

Das Motiv für Geheimschrift ist so fast alt wie Schriftlichkeit: Ein Text soll nur für den Texteigentümer oder für genau einen Textempfänger lesbar sein. Wer den Schlüssel nicht kennt, hat sinnlose Zeichen vor sich. 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 wird – 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 heutzutage 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
Symmetrische Verschlüsselung

1. Symmetrische Verschlüsselung

Wer im PC-Alltag Daten verschlüsselt, nutzt in der Regel eine symmetrische Verschlüsselung. Diese kennzeichnet sich dadurch, 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“ nur 26 Möglichkeiten bestehen. Je nach Richtung – Chiffrierung oder De-Chiffrierung – werden dann die Einzelbuchstaben 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.
Exkurs: Um genau zu sein, ist das Kennwort zwar für den Benutzer der Schlüssel zum Decodieren der chiffrierten Datei, technisch handelt es sich jedoch um einen hexadezimalen Schlüssel definierter Länge (etwa 256 Bit = 32 Byte). Diesen tatsächlichen Schlüsselcode 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 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 diese zu verdeutlichen, kommen wir wieder zum Klartext „PCWELT“ und zum einfachen Kennwort „geheim“: 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 erste Zeichen und Byte in „PCWELT“ ist das „P“. Wie alles bei der digitalen 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 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 chiffrierte 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. Wieder soll 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 sehr aufwändig aussieht und hier nur für ein einziges Byte beschrieben ist, erledigen Packer oder Verschlüsselungsprogramme selbst bei großen Dateien in Sekunden.

2. Einsatzgebiete symmetrischer Verschlüsselung

Truecrypt-Container oder 7-Zip-Archive mit einem komplexen Passwort als Schlüssel bieten zuverlässigen Schutz für persönliche Daten auf Cloud-Speichern oder mobilen Datenträgern – also bei Daten ohne Empfänger, bei Daten, die Sie nur selbst nutzen und geschützt wissen wollen. Muss jedoch ein Empfänger den Kennwort-Schlüssel erhalten, ist dies nur sicher, wenn der Schlüssel auf einem zweiten Kanal übermittelt wird – etwa telefonisch. Dies macht die symmetrische Verschlüsselung entweder unbequem oder unsicher, wenn Sie aus Bequemlichkeit denselben Schlüssel dauerhaft nutzen und an viele Empfänger weitergegeben.

3. Asymmetrische Verschlüsselung

Das entscheidende Merkmal der asymmetrischen Verschlüsselung sind zwei unabhängige Schlüssel: Einer dient zum Verschlüsseln, der zweite zum Entschlüsseln. Die beiden Schlüssel generiert die Software – prominent etwa PGP (Pretty Good Privacy) und Abkömmling OpenPGP – auf Ihrem Rechner. Danach wird der erste Schlüssel, also der öffentliche zum Verschlüsseln (public key), ohne Geheimniskrämerei individuell an alle Kommunikationspartner geschickt oder auch zu einem öffentlichen Key-Server im Internet. Nun können alle Partner Nachrichten an Sie mit diesem öffentlichen Schlüssel chiffrieren – Sie sind die einzige Person, die solche Nachrichten mit dem passenden privatem Schlüssel (private key) lesbar machen kann. Umgekehrt verschlüsseln Sie Ihre Nachrichten mit den öffentlichen Schlüsseln Ihrer Partner und haben die Sicherheit, dass nur der Empfänger mit dem komplementären privaten Schlüssel die Nachricht wird lesen können.
Das nicht ganz triviale Prinzip behebt das entscheidende Problem symmetrischer Codierung: die sichere Übermittlung des Schlüssels. Open-Source-Initiativen haben außerdem gewisse Bedienungshürden weitestgehend abgebaut: Key-Server, OpenPGP, Thunderbird mit Enigmail-Erweiterung machen sichere Mail-Kommunikation relativ komfortabel. Trotzdem haben sich PGP und Nachfolger nie entscheidend durchsetzen können, am wenigsten in der Windows-Welt.

Asymmetrische Verschlüsselung
Asymmetrische Mailverschlüsselung: Thunderbird, Enigmail und GnuPG machen sichere Mails relativ komfortabel. Öffentliche Schlüssel sind auf Key-Server zu finden.