Verschlüsselung (engl.: encryption) ist so alt wie die Menschheit. Bei der Verschlüsselung ging es immer darum, (vertrauliche) Nachrichten von A nach B zu transportieren/ übertragen, so dass es neben dem Sender und dem Empfänger niemandem möglich war die gesendete Nachricht zu lesen. Neben der "klassischen" Variante (symmetrische Verschlüsselung), gibt es seit dem Ende der 70er Jahre auch zwei weitere Varianten: die asymmetrische Verschlüsselung und die hybride Verschlüsselung.
Zur Verschlüsselung
benötigt man eine Verschlüsselungsvorschrift, den Algorithmus.
Diese allgemeine Vorschrift/ Beschreibung wird durch eine für jeden Verschlüsselungsvorgang
einzeln spezifizierte "Arbeitsanweisung" - den Schlüssel
- ergänzt. Sowohl von der Qualität des Algorithmus, als auch von der
Anzahl der Möglichkeiten (Schlüssellänge) hängt
die Güte ("Knackbarkeit") der verschlüsselten Daten ab.
Ein Beispiel: In frühen Zeiten bestand der Algorithmus zum Beispiel in
der Vorgabe, jedes Zeichen eines Wortes um eine bestimmte Anzahl und von Buchstaben
im Alphabeth zu verschieben. Der Schlüssel wäre die genaue Anzahl
und die Richtung, in der die Buchstaben verschoben werden sollen.
Beispiel:
Jeder Buchstabe wird um 3 Zeichen nach rechts verschoben.
also: a -> d, b -> e usw. Aus Gerhard wird Jhukdug.
Dies ist offensichtlich ein sehr einfacher Algorithmus, der darüber hinaus sogar noch erratbar ist. Ein guter Algorithmus darf nicht erraten oder hergeleitet werden können, weswegen heutzutage aufwendige mathematische Funktionen verwendet werden. Texte, die mit solchen Algorithmen verschlüsselt wurden, sind dann nur durch Ausprobieren aller Möglichkeiten (die sog. Brute Force Attack) knackbar. In diesem Falle spielt die Schlüssellänge die entscheidende Rolle.
Bei der symmetrischen Verschlüsselung
handelt es sich um die älteste Methode, Informationen zu verschlüsseln.
Bei der symmetrischen Verschlüsselung wird zum Ver- und Entschlüsseln
derselbe Schlüssel verwendet.
Der Nachteil dieses Verfahrens ist, dass der Schlüssel
geheimgehalten werden bzw. auf einem sicheren Weg dem Kommunikationspartner
zugestellt werden muss. Eine weiteres Problem stellt die Anzahl der Schlüssel
dar, da praktisch für jeden Kommunikationspartner ein eigener Schlüssel
existiert.
Zu den symmetrischen Verschlüsselungsverfahren gehören: DES/
3DES, IDEA und AES
Bis zum Ende der 70er Jahre
galt die symmetrische Verschlüsselung als einziges
mögliches Verschlüsselungsverfahren. Erst 1978 bewiesen
Rivest, Shamir und Adleman
mit dem nach ihnen benannten RSA-Algorithmus (patentiert 1983), dass
es möglich ist, bei der Verschlüsselung mit zwei unterschiedlichen
Schlüsseln zu arbeiten. Bei dieser sog. asymmetrischen Verschlüsselung
(auch Public Key Verschlüsselung) wird ein Schlüsselpaar
erstellt, d.h. zwei Schlüssel, die eine gemeinsame mathematische Basis
(z.B. Primzahl mit 200 Dezimalstellen) haben. Einer dieser Schlüssel wird
zur Verschlüsselung, der andere zur Entschlüsselung verwendet. Keiner
der Schlüssel kann - trotz mathematischer Basis - aus dem anderen hergeleitet
werden. Der Schlüssel, der zur Verschlüsselung
verwendet wird kann daher beliebig verbreitet und sogar in eigenen Verzeichnissen
- sog. Schlüsselserver (engl.: key server) hinterlegt werden.
Man spricht daher auch vom öffentlichen Schlüssel
(engl.: public key). Der zur Entschlüsselung
verwendete private Schlüssel
(engl.: private key) bleibt hingegen in
der Obhut des Empfängers und ist häufig sogar noch über eine
sog. Passphrase geschützt (z.B. bei PGP).
Der Nachteil dieses Verfahrens besteht darin, dass
es deutlich langsamer ist, als symmetrische Verschlüsselung (RSA ist ca.
1000 Mal langsamer, als z.B. DES) und aufgrund
der mathematischen Abhängigkeiten der beiden Schlüssel auch höhere
Schlüssellängen benötigt.
Aus diesem Grund wird in der Praxis i.a. nur die hybride Verschlüsselung
eingesetzt.
Neben der Verschlüsselung von Daten kann die asymmetrische Verschlüsselung auch für eine digitale Unterschrift (auch: digitale Signatur) genutzt werden. Die digitale Signatur garantiert die Authentizität und die Unveränderlichbarkeit eines Textes. Bei der digitalen Signatur wird über den zu unterschreibenden Text eine Quersumme (Hash) gebildet, die dann mit dem privaten Schlüssel unterschrieben und dem eigentlichen - weiterhin im Klartext lesbaren - Text angehängt wird. Der Empfänger entschlüsselt nun diesen "Anhang" (also den Hash) mit dem öffentlichen Schlüssel des Absenders und kann so die Authentizität des Absenders feststellen und, ob der Text unterwegs verändert wurde. Auch vor diesem Hintergrund ist es wichtig, dass der private Schlüssel nicht in unbefugte/ andere Hände gerät. Ist das sichergestellt, ist die digitale Unterschrift als (fälschungs-)sicherer, als eine normale Unterschrift anzusehen.
Beispiel 1 - A will Daten an B senden/ verschlüsseln:
- A verschlüsselt mit public key von B
- B entschlüsselt mit private key (von B)
Beispiel 2 - A will Text für B unterschrieben:
- A unterschreibt/ signiert mit private key (von A)
- B überprüft mit public key von A
Bei der hybriden Verschlüsselung werden die Vorteile der beiden oben besprochenen Verschlüsselungsmethoden - Geschwindigkeit (symmetrische Verschlüsselung) und Sicherheit (asymmetrische Verschlüsselung) - kombiniert. Die Verschlüsselung der eigentlichen Daten erfolgt per symmetrischer Verschlüsselung. Allerdings wird für jede Datenübertragung/ jede Datei ein eigener Schlüssel generiert (session key), der per asymmetrischer Verschlüsselung dem/ den Kommunikationspartnern übermittelt bzw. der eigentlichen Nachricht angehängt wird. Da es sich bei einem Schlüssel nur um sehr wenige Daten (wenige hundert Bit - vgl. Schlüssellängen) handelt, fällt hier der Nachteil der langsamen asymmetrischen Verschlüsselung praktisch nicht ins Gewicht.
Beispiel - A will Daten an B senden:
- A generiert session key
- A verschlüsselt session key mit public key von B
- B entschlüsselt session key mit private key (von B)
- Datenübertragung zwischen A und B wird mit (symmetrischem) session key verschlüsselt und entschlüsselt
Das der Session Key mit beliebig vielen öffentlichen Schlüsseln verschlüsselt und dem (verschlüsselten) Text angehängt werden kann, kann man auf einen Schlag eine Nachricht/ ein Datenpaket für mehrere Empfänger gleichzeitig verschlüsseln.
Erweitertes Beispiel - A will Daten an B, C, D, E, ... senden:
- A generiert session key
- A verschlüsselt session key mit public key von B, C, D, E, ...
- B, C, D, E, ... entschlüsseln session key mit (eigenem) private key
- Datenübertragung zwischen A und B, C, D, E; ... wird mit (symmetrischem) session key verschlüsselt und entschlüsselt
Zum Ausprobieren (und auch zum praktischen Einsatz) von Verschlüsselung empfiehlt sich PGP.
| [zurück zur Security-Seite] | (Diese
Seite wurde am 20.4.2003 erstellt, |