Heute beschreiben wir (noch ohne in Details zu gehen) den Unterschied zwischen
symmetrischen ('Secret Key') and
asymmetrischen ('Public Key') Verfahren.
In der Kryptographie nimmt man folgende Situation an: es gibt einen Sender A, der eine Nachricht an den Empfänger B schickt, und einen Lauscher E, der die (verschlüsselte) Nachricht abfängt.
(In der Fachliteratur heißt die Senderin A immer Alice, der Empfänger B immer Bob, und die Lauscherin E immer Eva, letzteres wohl abgeleitet vom englischen 'evil'.)
In praktischen Anwendungen sieht das so aus, daß beispielsweise B eine Bank und A ihr Online-Kunde ist. E ist ein Hacker, der A's verschlüsselte Daten abgefangen hat.
Wie in
Teil I gesagt, gehört zu einem kryptographischen Verfahren immer eine Verschlüsselungsfunktion (kurz:'Schlüssel'), die einen Klartext in einen verschlüsselten Text umwandelt, und eine Entschlüsselungsfunktion, die natürlich gerade die Umkehrfunktion der Verschlüsselungsfunktion sein muß.
Es gibt Verschlüsselungsverfahren wie die Cäsar-Chiffre aus
Teil I, bei denen man aus der Kenntnis des Schlüssels sofort auf die Entschlüsselungsfunktion schließen kann. Solche Verfahren heißen
symmetrische Verschlüsselungsverfahren.
Bei
symmetrischen Verfahren ist es offenbar wesentlich, daß der Schlüssel geheim gehalten wird. Neben
symmetrischen Verfahren gibt es auch asymmetrische Verschlüsselungsverfahren (engl. 'Public Key Cryptography'), bei denen die Verschlüsselungsfunktion öffentlich bekannt ist, aber trotzdem nur Empfänger B die Entschlüsselungsfunktion berechnen kann. (Das klingt jetzt sicher etwas kryptisch und es hat tatsächlich bis Mitte der 70er Jahre gedauert, bis Mathematiker solche
asymmetrischen Verfahren entwickeln konnten.)
Offensichtlich sind
asymmetrische Verfahren sicherer als
symmetrische Verfahren, weil sie nicht auf die Geheimhaltung des Schlüssels angewiesen sind. Allerdings sind sie auch mit erheblich größerem Rechner-Aufwand verbunden.
In der Praxis entscheidet man sich deshalb oft für
symmetrische Verfahren
und verwendet bei wirklich sensiblen Daten eine Mischung aus beiden Verfahren: Man verwendet das
asymmetrische Verfahren nicht zur Übermittlung der Nachrichten selbst, sondern nur zur verschlüsselten Übermittlung eines Schlüssels. Mit diesem gemeinsamen Schlüssel verwenden A und B dann ein
symmetrisches Verfahren zur Übermittlung der eigentlichen Nachrichten.
Für
symmetrische Verfahren gibt es einen festen Standard, der auf absehbare Zeit nicht geändert werden soll. Die Forschung in der Kryptographie konzentriert sich deshalb darauf, immer bessere
asymmetrische Verfahren zu entwickeln (bzw. aus Sicht der Hacker immer bessere Angriffe auf
asymmetrische Verfahren zu entwickeln).
Die Entwicklung
asymmetrischer Verfahren benutzt interessante Mathematik und wir werden uns in den weiteren Folgen hauptsächlich mit
asymmetrischen Verfahren beschäftigen. Zunächst aber noch kurz einige Worte zu
symmetrischen Verfahren.
Für
symmetrische Verschlüsselung gibt es seit 2000 ein vom National Institute of Science and Technology NIST (dem US-amerikanischen Gegenstück zur Physikalisch-Technischen Bundesanstalt) festgelegtes System, den seitdem unter der Bezeichnung
AES (Advanced Encryption Standard) bekannten Rijndael-Algorithmus. Der Algorithmus ist frei verfügbar und darf ohne Lizenzgebühren eingesetzt sowie in Software bzw. Hardware implementiert werden.
AES ist ein Blockchiffre mit Blöcken aus 128 Bit. Jeder Block wird bestimmten Transformationen unterzogen, wobei die Blöcke nicht unabhängig verschlüsselt werden, sondern verschiedene Teile des Schlüssels nacheinander auf den Klartext-Block angewendet werden. Eine ausführliche Erläuterung des Algorithmus findet man
hier.
Nach Meinung der NIST-Jury (von 2000) bietet AES ausreichend Sicherheit für die nächsten 100 Jahre. (Mit solchen Prognosen muß man natürlich vorsichtig sein. In einem ähnlichen Zusammenhang sagte RSA-Entwickler Rivest 1977, die Faktorisierung einer 125-stelligen Zahl dauere 40 Billiarden Jahre. Tatsächlich gelang eine solche Faktorisierung dann bereits 1994.)
Die bekanntesten
asymmetrischen Verfahren zur Schlüssel-Übermittlung sind
RSA (das, wie eben erwähnt, auf der Schwierigkeit der Faktorisierung großer Zahlen beruht) und der
Diffie-Hellman Schlüsselaustausch (der komplizierte abelsche Gruppen, z.B. elliptische Kurven, benutzt), denen wir uns detallierter in den folgenden Beiträgen widmen werden.