Harte Nüsse - Verschlüsselungsverfahren und ihre Anwendungen

Kryptographische Algorithmen bilden ein Fundament der Datensicherheit, sind aber der am schwierigsten zu bewertende und zu verstehende Teil. Selbst sichere Verschlüsselungsverfahren können aufgrund von Implementierungsfehlern ausgehebelt werden.

Lesezeit: 19 Min.
In Pocket speichern
vorlesen Druckansicht
Von
  • Dr. Reinhard Wobst
Inhaltsverzeichnis

Wer Daten über einen unsicheren Kanal wie Internet oder Wireless-LAN versendet, kann sich nur durch Verschlüsseln vor dem unbefugten Mithören schützen. Das ist leichter gesagt als getan: Nicht nur der Verschlüsselungsalgorithmus selbst muss Angriffen widerstehen können, sondern auch der Schlüssel. Das kryptographische Protokoll muss ebenso wasserdicht sein wie seine Implementierung, und nicht zuletzt ist oft der Benutzer die größte Sicherheitslücke.

Aus dieser Kette greift der folgende Artikel nur ein Glied heraus, die kryptographischen Algorithmen. Schon dieses Thema ist verwirrend und schwierig genug: Selbst ein Experte kann die Sicherheit eines Verschlüsselungsalgorithmus allein kaum beurteilen, es sei denn, der Algorithmus ist offensichtlich schwach. Viele Themen können daher nur gestreift werden; mehr erfährt man in der „Bibel“ von Schneier [1] oder dem weniger mathematischen und umfangreichen, aber aktuelleren Buch des Autors [2].

Kryptographie, also die Lehre von der Verschlüsselung, ist Jahrtausende alt. Einen historischen Überblick liefert beispielsweise [3]. Eine der wichtigen Lehren aus der Geschichte lautet: „Der Feind kennt immer dein Verfahren.“ Es bringt also nichts, sich irgendwelche obskuren Kodierungen auszudenken, „auf die niemals jemand kommen wird“. Solche Methoden werden üblicherweise als „Snake Oil“ bezeichnet; man erkennt entsprechende Produkte an Formulierungen wie „einzigartiger, patentierter Algorithmus mit nie gekannter Sicherheit“, „Tausende Bit lange Schlüssel“, „beweisbar sichere Algorithmen“. Wenn das Verfahren dann doch einmal offen gelegt und (wie bei fast allen Eigenentwicklungen zu erwarten) als unsicher erkannt wird, lassen sich nachträglich noch alle abgefangenen Nachrichten dechiffrieren.

In der klassischen Kryptographie vereinbaren die Kommunikationspartner einen gemeinsamen geheimen Schlüssel. Jeder, der diesen Schlüssel besitzt, kann damit chiffrieren wie dechiffrieren. Wegen dieser Symmetrie werden die verwendeten Algorithmen auch symmetrische Verfahren genannt. Dazu zählt der populäre Substitutionsalgorithmus, bei dem jeder Buchstabe nach einer festen Tabelle durch einen anderen ersetzt wird (die Ersetzungstabelle ist dabei als Schlüssel aufzufassen). Dieses Verfahren ist besonders bei Kindern beliebt - und das Sicherheitsniveau dementsprechend [3].

Auf einer ähnlichen Methode beruht das Vigen&egravere-Verfahren, das im 16. Jahrhundert entwickelt wurde. Auch heute kommt es teilweise noch zum Einsatz, einige amerikanische Mobiltelefone sollen es angeblich noch verwenden. In der ursprünglichen Form wird der Schlüssel - in diesem Fall ein Passwort - direkt über den Klartext geschrieben:

PATRICKPATRICKPATRICK

DASISTEINGEHEIMERTEXT

Übereinander liegende Zeichen „addiert“ man, indem man A als 0, B als 1 usw. kodiert und Ergebnisse größer als 25 um 26 verkleinert. Nach Rückkodierung ergibt sich der Geheimtext

SALZAVOXNZVPGSBEKKMZD

Ein so genannter deterministischer Angriff, bei dem man zu einem bekannten Klartext den verschlüsselten Text kennt, liefert sofort den Schlüssel. Aber auch mit statischen Methoden und anderen Tricks lässt sich die Vigen&egravere-Verschlüsselung knacken (auch bei komprimiertem Klartext), mehr dazu findet sich inklusive Beispielprogrammen in [2].

Nur in einem Spezialfall ist dieses Verfahren (in der bitweisen Version) sicher: Wenn der Schlüssel genauso lang wie der Geheimtext und obendrein wirklich zufällig ist. Das ist das so genannte One-Time Pad, die einzige bisher beweisbar sichere Verschlüsselungsmethode. Sie ist allerdings hochgradig unpraktisch und daher nur in ganz seltenen Fällen sinnvoll.

Moderne Algorithmen wie AES, 3DES et cetera arbeiten blockweise. Bei solchen Blockalgorithmen wird der Klartext zum Beispiel in Portionen zu 64 Bit aufgeteilt und aus jeder solchen Portion jeweils ein Geheimtext von 64 Bit Länge erzeugt. Das entspricht in der Theorie einem Substitutionsalgorithmus, dessen Tabelle 264 Einträge umfasst. Allein die Größe dieser Zahl verhindert statistische Analysen analog zu den klassischen Verfahren. In der Praxis konstruiert man oft eine Transformation, in die alle Bits aus dem Klartextblock sowie ein Schlüssel mit eingehen und die sowohl statistische Analyse erschwert als auch kompliziert genug ist, um deterministische Angriffe zu verhindern. Diese Transformation wird mehrfach hintereinander angewandt, jedes Mal mit einem anderen Schlüssel. Man spricht von Runden und nennt daher die Teilschlüssel auch Rundenschlüssel. Letztere werden aus dem Verfahrensschlüssel gesondert erzeugt.

Mathematisch gesehen ist die Transformation eines Klartextblockes in einen Geheimtextblock das Produkt von mehreren Runden-Transformationen, die sich bis auf die verwendeten Rundenschlüssel gleichen. Daher spricht man bei solchen Chiffrierverfahren auch von Produktalgorithmen. Die meisten Algorithmen, die bis heute allen Kryptanalysen erfolgreich widerstanden haben, gehören zu dieser Kategorie. Beispiele dafür sind DES, 3DES, IDEA, AES, Twofish, RC5 und RC6. Bei sorgfältigem Design lassen Produktalgorithmen bekannte statistische Angriffsmethoden ins Leere laufen [1, 2].