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.
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.
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, die Sie nur selbst nutzen und geschützt wissen wollen. Muss jedoch ein Empfänger den Kennwortschlü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 weitergeben.
Asymmetrische Verschlüsselung
Das entscheidende Merkmal der asymmetrischen Verschlüsselung sind zwei unabhängige Schlüssel: der öffentliche zum Verschlüsseln und der private zum Entschlüsseln. Die beiden komplementären Schlüssel generiert die Software - etwa PGP (Pretty Good Privacy) und Abkömmling Open PGP - auf Ihrem PC. Beide Schlüssel stehen zwar in eindeutigem Verhältnis zueinander, jedoch ist die Berechnung des privaten Schlüssels aus dem öffentlichen durch den Einsatz mathematischer Einwegfunktionen extrem aufwendig bis unmöglich.
Der öffentliche Schlüssel (public key) zum Verschlüsseln kann daher ohne Geheimniskrämerei an alle Kommunikationspartner oder zu einem öffentlichen Key-Server im Web geschickt werden. Nun chiffrieren alle Partner Nachrichten an Sie mit diesem öffentlichen Schlüssel - Sie sind die einzige Person, die diese Nachrichten mit dem passenden privaten Schlüssel (private key) lesbar machen kann.
Umgekehrt codieren 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 lesen können wird.
Das nicht ganz triviale Prinzip behebt das Problem symmetrischer Codierung: die sichere Übermittlung des Schlüssels. Open-Source-Initiativen haben außerdem Bedienungshürden abgebaut: Key-Server, Open PGP, Thunderbird mit Enigmail-Erweiterung machen sichere Mailkommunikation relativ komfortabel. Trotzdem haben sich PGP und Nachfolger vor allem in der Windows-Welt nie durchsetzen können. (PC-Welt)