Sonntag, 2. Mai 2010


Topthema

Donnerstag, 26. Oktober 2006 | Topthema

About Security #78: Kryptographie — Hybride Verfahren

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/032043)

Wie man den in About Security #77 vorgestellten Angriff auf RSA als Konzelationssystem verhindern kann und wie hybride Verfahren funktionieren, erfahren Sie in dieser Folge von About Security.

Angriff auf RSA-Konzelationssystem verhindern

Um den Angriff auf RSA als Konzelationssystem zu verhindern, wird es zuerst zu einem indeterministischen Konzelationssystem gemacht, indem bei der Verschl�sselung mit jedem Klartextblock eine neue Zufallszahl verschl�sselt wird. Dadurch ergeben gleiche Klartextbl�cke unterschiedliche Schl�sseltextbl�cke.

Um aktive Angriffe zu verhindern, wird jedem Klartextblock vor der Verschl�sselung Redundanz hinzugef�gt, die beim Entschl�sseln gepr�ft wird. Dabei darf die modulare Multiplikation zweier Klartextbl�cke mit Redundanz keinen dritten Klartextblock mit passender Redundanz ergeben.

Die Redundanz kann z.B. erzeugt werden, indem auf den Klartextblock eine kollisionsfreie Hashfunktion (dazu demn�chst mehr) angewendet und das Ergebnis an den Klartextblock angeh�ngt wird. Um die multiplikative Struktur von RSA aufzuheben, muss die multiplikative Struktur der Hashfunktion (sofern vorhanden) eine andere als die von RSA sein.

Der Einsatz von RSA als Konzelationssystem erfolgt dann folgenderma�en:

  • Verschl�sselung:
    • Vor den Klartextblock m wird eine Zufallszahl z geschrieben:
      z, m
    • Eine kollisionsfreie Hashfunktion h wird auf Zufallszahl und Klartextblock angewendet und das Ergebnis hinter den Klartextblock geschrieben:
      z, m, h(z,m)
    • Alle drei Komponenten werden gemeinsam modular mit c exponentiert:
      (z, m, h(z,m))^c mod n
  • Entschl�sselung:
    • Der Schl�sseltextblock wird modular mit d exponentiert:
      ((z, m, y)^c)^d mod n =: z, m, y
    • Es wird gepr�ft, ob sich bei der Anwendung der Hashfunktion h auf die ersten beiden Komponenten die dritte Komponente ergibt:
      h(z, m) = y ?
    • Nur wenn dies zutrifft, wird die zweite Komponente ausgegeben.
RSA als Konzelationssystem

N E U ! Security aktuell
T�glich aktuelle Security-Infos!

Um beim Einsatz von RSA als digitales Signatursystem ein R�ckw�rtsrechnen zu verhindern und die multiplikative Struktur von RSA aufzuheben, wird vor der Berechnung der Signatur eine kollisionsfreie Hashfunktion auf den zu signierenden Textblock angewandt. Arbeitet die Hashfunktion mit Argumenten beliebiger L�nge, hat dies zus�tzlich den Vorteil, dass dadurch unbeschr�nkt lange Texte ohne vorherige Aufteilung in passende Bl�cke signiert werden k�nnen. Ist die Hashfunktion au�erdem noch schneller zu berechnen als RSA, beschleunigt dies auch das Gesamtsystem gegen�ber einem alleinigen Einsatz von RSA.

Der Einsatz von RSA als digitales Signatursystem erfolgt dann folgenderma�en:

  • Signieren:
    • Auf den zu signierenden Textblock m wird eine kollisionsfreie Hashfunktion h angewendet:
      h(m)
    • Das Ergebnis wird modular mit s exponentiert:
      h(m)^s mod n
  • Testen:
    • Die empfangene Signatur wird mit t modular exponentiert:
      (h(m)^s)^t mod n =: y
    • Es wird gepr�ft, ob die Anwendung der Hashfunktion h auf den Textblock das gleiche Ergebnis wie der �bertragene Wert y ergibt:
      h(m) = y ?
    • Nur wenn dies zutrifft, wird "richtig" ausgegeben.

RSA als digitales Signatursystem

Ein hybrides Verschl�sselungsverfahren

Dass bei einem hybriden Verschl�sselungsverfahren ein symmetrisches und ein asymmetrisches Verfahren kombiniert werden, wurde bereits in About Security #75 kurz erw�hnt. Im Folgenden soll das Vorgehen eines hybriden Verschl�sselungsverfahrens beschrieben werden.

About Security: Die komplette Serie

Als Algorithmen sollen AES als symmetrisches und RSA als asymmetrisches System verwendet werden. Die folgenden Aussagen gelten nat�rlich auch f�r alle anderen Systeme.

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 (Gesamtbild) l�uft dann folgenderma�en ab:

  • Verschl�sselung:
    • Erzeugung eines zuf�lligen Schl�ssels k f�r die AES-Verschl�sselung
    • AES-Verschl�sselung des 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�sselung:
    • 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
Symmetrische Verschl�sselung mit AESAsymmetrische Verschl�sselung mit RSAAES und RSA als Hybrides Verfahren

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. Zum Ablauf siehe hier.

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, ob wirklich die richtigen Schl�ssel verwendet werden. Dies ist das Thema der n�chsten Folge.

Wenn Sie Fragen oder Themenvorschl�ge haben, k�nnen Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security � �bersicht zum aktuellen Thema "Kryptographie � RSA"

Kommentare

Gravatar mostefa 18.06.2008
um 14:20 Uhr
takes #zitieren

Folgende Links könnten Sie auch interessieren