Kryptografie: Geheime Botschaften aus dem Diesseits - JAXenter
Datenverschlüsselung

Kryptografie: Geheime Botschaften aus dem Diesseits

Tam Hanna

Der Versuch, Daten durch Codierung vor anderen geheim zu halten, ist ungefähr so alt wie die Menschheitsgeschichte. Oder hätten Sie gedacht, dass schon Julius Cäsar brisante Mitteilungen verschlüsselte?

„Wenn es etwas Geheimes mitzuteilen gab, schrieb Cäsar in verschlüsselter Form. Er vertauschte die Buchstaben des Alphabets, sodass das Resultat nicht verständlich war. Um eine Botschaft verstehen zu können, muss man die Buchstaben austauschen. Aus D wird A, mit den anderen wird analog verfahren.“ So beschreibt der zeitgenössische Geschichtsschreiber Sueton die Verschiebungschiffre, der sich Cäsar bedient. Aus heutiger Sicht ist dieser Algorithmus freilich eine der primitivsten „Verschlüsselungsmethoden“, die wir kennen. Bevor wir uns allerdings in die Geheimnisse der Kryptografie (Wissenschaft von der Verschlüsselung von Informationen) und Steganografie (Übermittlung versteckter Botschaften) vertiefen, seien all jene, die vielleicht daran denken, einen selbstentwickelten Verschlüsselungsalgorithmus zu implementieren, dringend davor gewarnt. Die Entwicklung und Codierung eines wirksamen Algorithmus ist nämlich eine hoch entwickelte Wissenschaft, die jahrelanges Studium erfordert. Ein Algorithmus, der einem Programmierer als absolut „unknackbar“ erscheint, kann tatsächlich gravierende Schwächen haben, die jeder Kryptologe sofort sieht. Da man heute Quellcode und Bibliotheken für fast jeden Algorithmus kostenlos bekommen kann – manche Betriebssysteme bringen bekanntlich selbst Implementierungen mit – sollten Programmierer lieber nicht versuchen, einen Algorithmus selbst zu implementieren.

Die digitale Schatzkiste

Die einfachste Methode, um Daten geheim zu halten, ist es, andere von ihnen fernzuhalten. Ein in einer undurchsichtigen, verschlossenen Kiste befindliches Dokument kann nicht gelesen werden. Symmetrische Verschlüsselungsalgorithmen machen sich diese Weisheit zunutze. Zwei Individuen einigen sich auf einen bestimmten Schlüssel. Der Sender verschlüsselt die Nachricht mit diesem Schlüssel, der Empfänger nutzt ihn zur Entschlüsselung (Abb. 1). Die Schwäche eines solchen Algorithmus ergibt sich allerdings aus eben diesem gemeinsamen Schlüssel. Wer auch immer den Schlüssel besitzt, kann die Botschaft lesen. In der Praxis ist der Schlüssel wesentlich kürzer als die zu übertragende Botschaft. Symmetrische Algorithmen benötigen daher vergleichsweise wenig Rechenleistung. Diesem nicht unwesentlichen Vorteil verdanken sie auch ihre allgemeine Beliebtheit.

Abb. 1: Bei einem symmetrischen Algorithmus dient derselbe Schlüssel zur Ver- und Entschlüsselung

Die Sicherheit eines symmetrischen Algorithmus gegen Brute-force-Angriffe wird durch zwei Faktoren bestimmt: die mathematische Güte des Algorithmus und die Komplexität des Passworts. Ein längeres bzw. kompliziertes Passwort bedeutet eben mehr „zu testende“ Möglichkeiten, während ein komplexerer Algorithmus den Berechnungsaufwand pro „Knackversuch“ erhöht.

Gefährliche Schlüsselübergabe

Auch wenn das Problem der Schlüsselübergabe in der Praxis nicht so relevant ist, wie es auf den ersten Blick scheint – manchmal erscheint es sinnvoll, so eine „Schlüsselübergabe“ zu vermeiden. In diesem Fall schlägt die Stunde der asymmetrischen Verschlüsselungsalgorithmen. Asymmetrische Algorithmen arbeiten mit zwei separaten Schlüsseln – in der Fachsprache als „Private Key“ und „Public Key“ bezeichnet. Zu übertragende Daten werden mit dem Public Key verschlüsselt. Um sie wieder lesbar zu machen, benötigt man den Private Key (Abb. 2).

Abb. 2: Beim asymmetrischen Algorithmus benötigt der Sender nur den Public Key – wer die Nachricht lesen will, braucht den Private Key

Der Nachteil dieser Methode ist ihr enormer Hunger nach Rechenleistung. Zwei Kryptologen der Stanford Advanced Computer Security, Prof. Dan Boneh und Dr. Neil Daswani, haben den symmetrischen Algorithmus DES gegen den asymmetrischen RSA antreten lassen. RSA brauchte um den Faktor 1000 (tausend!) mehr CPU-Zyklen pro verarbeitetem Byte.

Geschrieben von
Tam Hanna
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.