Skip to content

Verfahren der Kryptographie, Teil 11: Hybride Verschlüsselungsverfahren

Ein hybrides Verschlüsselungsverfahren wurde bereits bei der Vorstellung von Anwendungen des AES-Algorithmus erwähnt. Bei einem hybriden Verfahren werden ein symmetrisches und ein asymmetrisches Verfahren kombiniert, um in den Genuss der Vorteile beider Verfahren zu kommen: Während symmetrische Verfahren meist deutlich schneller zu berechnen sind als ihre asymmetrischen Kollegen, haben die den Vorteil des einfacheren Schlüsselaustauschs.

Die hybride Verschlüsselung lässt sich zwar auch allgemein erklären, ich verwende für die Beschreibung aber gleich zwei konkrete Algorithmen. Und zwar wird AES als symmetrisches und RSA als asymmetrisches System verwendet. Die folgenden Aussagen gelten natürlich auch für alle anderen System.

Die verschiedenen Funktionen werden folgendermaßen bezeichnet:

AESver(k, m)
ist die AES-Verschlüsselung des Blocks m mit dem Schlüssel k,
AESent(k, m')
entsprechend die AES-Entschlüsselung eines verschlüsselten Blocks m'.
RSAver(c, m)
ist die RSA-Verschlüsselung des Blocks m mit dem öffentlichen Schlüssel c,
RSAent(d, m')
entsprechend die RSA-Entschlüsselung eines verschlüsselten Blocks m'.

Das hybride Verfahren läuft dann folgendermaßen ab, siehe auch Abbildung 3:

Verschlüsselung:

  • Erzeugung eines zufälligen Schlüssels k für die AES-Verschlüsselung
  • AES-Verschlüsselung des Klartexts m mit dem Schlüssel k:
    AESver(k, m) =: m'
  • RSA-Verschlüsselung des (geheimzuhaltenden) AES-Schlüssels k mit dem öffentlichen RSA-Schlüssel c des Empfängers:
    RSAver(c, k) =: k'
  • Verbinden von m' und k' und Übertragung an den Empfänger:
    (m', k')

Entschlüsselung:

  • RSA-Entschlüsselung der 2. Komponente (= der Schlüssel für AES) der empfangenen Nachricht mit dem privaten RSA-Schlüssel des Empfängers:
    RSAent(d, k') =: k
  • AES-Entschlüsselung der 1. Komponente mit dem soeben entschlüsselten Schlüssel k:
    AESent(k, m') =: m

AES und RSA als Hybrides Verfahren
Abb. 3: AES und RSA als Hybrides Verfahren (Klick für großes Bild)

Ein hybrides Verschlüsselungsverfahren mit Signatur

Soll zusätzlich die Integrität des Klartexts sichergestellt werden, muss der Sender ihn vor dem Verschlüsseln mit seinem geheimem Schlüssel signieren. Danach werden Klartext und Signatur gemeinsam verschlüsselt. Der Empfänger prüft nach dem Entschlüsseln die Signatur mit dem öffentlichen Schlüssel des Senders.

Zusätzlich zu den Funktionen zur Ver- und Entschlüsselung sind die folgenden Funktionen notwendig:

RSAsign(s, m)
signiert den Klartextblock m mit dem geheimen Schlüssel s,
RSAtest(t, m, SIG)
testet die Signatur SIG unter dem Klartext m mit dem Testschlüssel t.

Das hybride Verfahren mit Signatur läuft dann folgendermaßen ab:

Signieren und Verschlüsseln:

  • Signatur des Klartexts m mit dem geheimen Signierschlüssel s des Senders:
    RSAsign(s, m) =: SIG
  • Klartext m und Signatur SIG werden verbunden:
    (m, SIG) =: M
  • Erzeugung eines zufälligen Schlüssels k für die AES-Verschlüsselung
  • AES-Verschlüsselung des signierten Klartexts M mit Schlüssel k:
    AESver(k, M) =: M'
  • RSA-Verschlüsselung des (geheimzuhaltenden) Schlüssels k mit dem öffentlichen Schlüssel c des Empfängers:
    RSAver(c, k) =: k'
  • Verbinden von M' und k' und Übertragung an den Empfänger:
    (M', k')

Entschlüsseln und Testen:

  • RSA-Entschlüsselung der 2. Komponente (= der Schlüssel für AES) der empfangenen Nachricht mit dem privaten Schlüssel des Empfängers:
    RSAent(d, k') =: k
  • AES-Entschlüsselung der 1. Komponente mit dem soeben entschlüsselten Schlüssel k:
    AESent(k, M') =: M = (m, SIG)
  • Test der Signatur mit dem öffentlichen Testschlüssel t des Senders:
    RSAtest(t, m, SIG)

Nach der Beschreibung asymmetrischer Verfahren stellt sich die Frage, wie Sender und Empfänger an die benötigten öffentlichen Schlüssel ihrer jeweiligen Kommunikationspartner gelangen und dabei sicherstellen, dass wirklich die richtigen Schlüssel verwendet werden. Dies ist das Thema der nächsten Folge.

Carsten Eilers

Trackbacks

Dipl.-Inform. Carsten Eilers am : Kryptographie - Ein Überblick

Vorschau anzeigen
Die Kryptographie ist ein ein sehr umfangreiches Themengebiet, und obwohl ich mich jetzt seit 30 Artikeln damit befasst habe sind längst nicht alle Themen vorgestellt worden. Aber zumindest die wichtigsten habe ich beschrieben, und damit soll e

www.ceilers-news.de am : PingBack

Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.

www.ceilers-news.de am : PingBack

Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.

Dipl.-Inform. Carsten Eilers am : Drucksache: Windows Developer 2.18 - .NET-Sicherheitsklassen im Überblick

Vorschau anzeigen
Im Windows Developer 2.18 ist ein Überblick über die .NET-Sicherheitsklassen erschienen: Welche Funktionen gibt es, und wie kann man sie wofür nutzen? Die .NET-Klassenbibliothek enthält mit System.Security, System.Direc