Verschlüsselung

Einleitung

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.

 

Symmetrische Verschlüsselung

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

 

Asymmetrische Verschlüsselung

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.

Sonderfall: Digitale Signatur

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:

  1. A verschlüsselt mit public key von B
  2. B entschlüsselt mit private key (von B)

Beispiel 2 - A will Text für B unterschrieben:

  1. A unterschreibt/ signiert mit private key (von A)
  2. B überprüft mit public key von A

 

Hybride Verschlüsselung

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:

  1. A generiert session key
  2. A verschlüsselt session key mit public key von B
  3. B entschlüsselt session key mit private key (von B)
  4. 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:

  1. A generiert session key
  2. A verschlüsselt session key mit public key von B, C, D, E, ...
  3. B, C, D, E, ... entschlüsseln session key mit (eigenem) private key
  4. 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.


Weitere Fragen posten Sie bitte in meinem Internet- und Security-Forum!
In besonderen Fällen stehe ich Ihnen auch gerne per E-Mail zur Verfügung!

Homepage [zurück zur Security-Seite]

(Diese Seite wurde am 20.4.2003 erstellt,
der letzte Update fand statt am 21.4.2003


Dieses Angebot ist erreichbar über http://www.tcp-ip-info.de, http://www.trojaner-und-sicherheit.de, http://www.internet-und-sicherheit.de und http://www.tcp-ip.de.gg