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
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.
Trackbacks
Dipl.-Inform. Carsten Eilers am : Kryptographie - Ein Überblick
Vorschau anzeigen
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