Bereits zu Cäsars Zeiten galt, dass im militärischen Bereich das sichere Übermitteln von geheimen Informationen über Sieg oder Niederlage entscheiden kann. Verschlüsselung beschäftigt die Menschheit also bereits seit mehr als 2000 Jahren.
Um dem Thema Verschlüsselung ein wenig seiner Mystik zu nehmen, gibt dieser Artikel einen grundlegenden Einblick in Theorie und Praxis der symmetrischen Verschlüsselung.
In unserer heutigen, meist weniger martialischen Epoche hat die geheime Übermittlung von Daten eher noch an Bedeutung gewonnen. Bankgeschäfte werden über öffentliche Netze wie dem Internet abgewickelt und das Thema Wirtschaftsspionage sollte von keinem mit Technik arbeitendem Unternehmen unterschätzt werden. Mithilfe der Kryptografie, also der Lehre der Verschlüsselung, lässt sich für die sichere Übertragung auf unsicheren Medien einiges bewerkstelligen. Wie aber funktioniert Kryptografie?
Als Grundlage zur Beschreibung der Kommunikation zweier Parteien und der Bedrohung durch eine dritte dient in der Kryptografie das Gedankenmodell von Alice (Endpunkt A), Bob (Endpunkt B) und Mallory (von engl. "malicious", dem Bösewicht). Alice kommuniziert also mit Bob und beide nutzen dazu ein Netzwerk, in dem Mallory sich möglicherweise physikalischen Zugang verschafft hat. Mit Hilfe der Verschlüsselung möchten Alice und Bob folgendes erreichen [1]:
Sollte es Mallory gelingen, Daten abzufangen, darf er damit nichts anfangen können;
Mallory sollte keine Daten verändern können, ohne dass Alice und Bob etwas davonbemerken;
Mallory soll sich nicht als Alice oder Bob ausgeben können, und
Alice kann nicht unerkannt behaupten, dass eine von ihr versandte Nachricht in Wirklichkeit von Mallory gefälscht sei.
Es gibt aber auch Sicherheitsprobleme, gegen die Kryptografie nichts ausrichten kann:
Mallory kann Daten nach wie vor verändern, es wird allerdings nicht unbemerkt geschehen;
Mallory kann Daten nach wie vor abfangen, der Sinn der Nachrichten sollte sich ihm jedoch nicht erschließen; und
Mallory hat physikalischen Zugriff auf das Netz. Er kann also die Leitung kappen oder ein Rechenzentrum anzünden. Daten dürfte er so allerdings kaum gewinnen.
Nachdem nun die Ziele und die Grenzen der Kryptografie beleuchtet sind, stellt sich die Frage nach der grundlegenden Funktionsweise symmetrischer Verschlüsselung. Der Begriff "symmetrisch" bedeutet in diesem Zusammenhang, dass der gleiche Schlüssel für Ver- und Entschlüsselung verwendet wird.
Entgegen landläufigen Meinungen kommt ein symmetrischer Verschlüsselungsalgorithmus nur selten mit komplizierten mathematischen Funktionen daher. Im Gegenteil: Komplexe Operationen sind verpönt, lassen sie sich doch bei einer Analyse der Algorithmen nur schwer auf Schwachstellen abklopfen.
Stattdessen verwendet man im Allgemeinen folgende Operationen:
Exklusiv-oder-Verknüpfung (XOR) oder auch Antivalenzverknüpfung genannt, meist dargestellt durch einen Kreis mit eine +-Zeichen in der Mitte;
Logisches Oder, Und, Modulo (logische Grundfunktionen);
Addition, Subtraktion und Shift;
Substitution (Ersetzen von Bitfolgen durch andere) und
Permutation (Ändern der Reihenfolgen von Bitfolgen).
Wie sich diese Operationen in der Praxis anwenden lassen, zeigt die folgende Beschreibung des Data Encryption Standard (DES). Zuvor sein an dieser Stelle aber noch eines der wichtigsten Kriterien für ein gutes Verfahren erwähnt: Die vollständige Schlüsselsuche stellt den besten Angriff dar. Dabei wird für alle Schlüssel probiert (Brute Force), ob das Entschlüsseln damit erfolgreich durchgeführt werden kann. Dies ist allerdings heute bereits auch bei großen Schlüsselmengen möglich. So verfügt der DES über 256 = rund 72 Billiarden Schlüssel. Die Verschlüsselung wurde mit Spezialhardware in 22 Stunden und 15 Minuten geknackt.
Der Data-Encryption-Standard (kurz DES) ist einer der bemerkenswertesten Algorithmen in der Geschichte der Verschlüsselung. Bereits Anfang der 70er Jahre entwickelt und 1977 von der US-Standardisierungsbehörde "National Institute of Standards and Technology" (NIST) als Standard für Datenverschlüsselung anerkannt, gibt es nach über 30 Jahren weiterhin kein besseres Angriffsverfahren als die vollständige Schlüsselsuche. Diese Tatsache dient wohl als bester Beweis dafür, dass ein offen gelegter Algorithmus zu hoher Sicherheit führen kann. Die Entwicklungsumstände gelten allerdings nach wie vor als etwas dubios. An der Entwicklung war die National Security Agency (NSA) beteiligt, die dafür sorgte, das wichtige Designentscheidungen für DES nicht offengelegt wurden. Die NSA sorgte dann auch für eine unübersehbare Schwachstelle, die das ewige Leben von DES verhindert: Die Schlüssellänge wurde auf 56 Bit (formal 64 Bit, dazu im folgenden Text mehr) begrenzt. Bereits nach damaligen Maßstäben war dies nicht ausreichend. Wie aber funktioniert DES?
DES basiert auf den im vorigen Abschnitt beschriebenen Operationen:
Exklusiv-oder-Verknüpfung (XOR),
Permutation (Änderung der Bitfolgen) und
Substitution (Bitfolge wird ersetzt).
Verschlüsselt werden bei DES 64 Bit große Blöcke. Sollte ein Block nicht die nötige Länge aufweisen, so wird er mit einer Bitfolge 1000? aufgefüllt. Wie im Bild auf Seite 40 dargestellt, beginnt die Verschlüsselung mit einer Eingangs- oder auch Anfangspermutation. Anschließend steht eine Aufteilung der Blöcke in zwei 32 Bit-Teile L und R (für Links und Rechts) an. Nach einer weiteren Permutation und der Expansion des R-Blocks auf 48 Bit durch Mehrfachverwendung von Bits wird dieser mit dem aufbereiteten Teilschlüssel XOR-verknüpft.
Den resultierenden Block teilt der Algorithmus anschließend in je 6 Bit breite Blöcke auf und substituiert abhängig von ihrem Wert von acht verschiedenen Substitutionsboxen durch je 4 Bit breite Werte. Dabei existiert zu jedem der 64 möglichen Eingangswerte ein definierter Ausgangswert (8*4 Bit = 32 Bit). Abschließend werden L und R-Block miteinander vertauscht. Dieses Verfahren läuft insgesamt 16-Mal ab (16 Runden) und endet mit einer Ausgangspermutation.
Wie aber entsteht ein Teilschlüssel bei DES? Zur Berechnung eines Teilschlüssels gilt es, zuerst die Gültigkeit des Schlüssels zu berechnen. Formal besteht ein DES-Schlüssel zwar aus 64 Bit, davon stellen 8 Bit jedoch eine Prüfsumme dar. Aus den verbleibenden 56 Bit müssen 16 Teilschlüssel zu je 48 Bit generiert werden. Dazu permutiert eine Operation zuerst die 56 Bit und teilt sie anschließend in zwei Blöcke (C-Block und D-Block) auf. Beide Blöcke bilden dann die Eingabe zu einer zweiten Permutation, deren Ergebnis der erste Teilschlüssel ist.
DES kennt einige besondere Schlüssel, die hier nicht unerwähnt bleiben sollen: Verschlüsselt man Nachrichten zweimal mithilfe einer der vier so genannten schwachen DES-Schlüssel, so erhält man wieder den Klartext der Nachricht. Eine echte Schwachstelle stellt dies jedoch nicht dar, da die Anzahl der schwachen Schlüssel überschaubar ist, und brauchbare Implementierungen von DES solche Schlüssel nicht verwenden werden.
Die zu kurze Schlüssellänge des DES führt dazu, das seine Bedeutung mehr und mehr schwindet. Das Thema "richtige Wahl der Schlüssellänge" würde den Rahmen dieses Artikels sprengen. Hier seien interessierten Lesern einige Rechenbeispiele in [1] empfohlen, die aufzeigen, was man mit welchen Schlüssellängen erreichen kann. Allgemein gelten dabei 128 Bit als ausreichend, mit 256 Bit ist man selbst mit "Paranoia-Zuschlag" auf der sicheren Seite.
Wie dieser Artikel zeigt, ist auch die Kryptographie kein Hexenwerk. Mit einigen grundlegenden Operationen und Hintergrundwissen, kann man geeignete Maßnahmen treffen, um sicher Informationen zu übertragen. Artikel zu diesem Thema gibt es beispielsweise für fast jeden Wissensstand auf www.lanline.de, Stichwort Sicherheit.
Bleibt abschließend noch die Frage, woran man den richtigen Algorithmus für eine Anwendung erkennen kann. Dies lässt sich leider nicht pauschal beantworten, es gibt allerdings ein paar grundlegende Kriterien, die hier noch einmal gesammelt aufgezählt werden sollen:
Der Algorithmus sollte öffentlich dokumentiert sein. "Security by Obscurity" kann gerade bei der Kryptografie fatale Folgen haben;
der Algorithmus sollte ausreichend von anerkannten Experten über einen längeren Zeitraum untersucht worden sein. Insbesondere bei der Kryptographie gilt: Viele Augen sehen mehr;
die vollständige Schlüsselsuche sollte die beste Angriffsmethode sein; und
die Schlüssellänge sollte mindestens 128 Bit, besser 256 Bit, betragen.