Full-Domain-Hash

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Full-Domain-Hash (Abkürzung: FDH) ist ein Signaturverfahren aus dem Bereich der Kryptologie. Der Empfänger einer Nachricht kann damit überprüfen, ob die Nachricht, die der Absender an ihn gesandt hat, durch einen Dritten verändert wurde oder nicht.

Das Prinzip das Verfahrens besteht darin, eine Nachricht zuerst zu hashen und anschließend eine beliebige Trapdoor-Einwegpermutation darauf anzuwenden. Die Hashfunktion wird dabei als Zufallsorakel modelliert, dessen Bildmenge gleich dem Definitionsbereich der Einwegpermutation ist. Daher kommt auch der Name Full-Domain-Hash.

Beschreibung des Protokolls[Bearbeiten]

Das Full-Domain-Hash-Verfahren ist ein asymmetrisches Signaturverfahren dessen öffentlicher Schlüssel (f,G) aus einer Trapdoor-Einwegpermutation f: \{0,1\}^k \rightarrow \{0,1\}^k und einem Zufallsorakel G: \{0,1\}^* \rightarrow \{0,1\}^k gebildet wird. Der zugehörige geheime Schlüssel ist die Umkehrfunktion f^{-1} der Trapdoor-Einwegpermutation.

Die Signatur einer Nachricht x wird durch folgende Funktion berechnet:

\operatorname{sig}(x) = f^{-1}(G(x))

Die Nachricht wird dann zusammen mit der Signatur an den Empfänger gesandt.

Der Empfänger erhält die Nachricht x zusammen mit der Signatur y = \operatorname{sig}(x). Mit der Verifikationsfunktion

\operatorname{ver}(x,y) = \begin{cases}
\mbox{wahr} & \mbox{wenn }f(y) = G(x)\\
\mbox{falsch} & \mbox{sonst}
\end{cases}

überprüft er die Nachricht. Diese gibt genau dann wahr aus, wenn die Nachricht nicht verändert wurde.

RSA-Full-Domain-Hash[Bearbeiten]

Verwendet man als Trapdoor-Einwegpermutation f die RSA-Funktion f(x) = x^e \bmod N mit den von RSA bekannten Parametern, dann spricht man vom RSA-Full-Domain-Hash. Das Verfahren ist nachweislich sicher, das heißt es kann auch mit einem Angriff mit frei wählbarem Klartext keine existenzielle Fälschung erzeugt werden.

Sicherheit des RSA-Full-Domain-Hash[Bearbeiten]

Wenn RSA (t',\epsilon')-sicher ist, dann ist das RSA-Full-Domain-Hash-Verfahren auf Basis des Zufallsorakel-Modells (t,\epsilon)-sicher mit

t=t'-(q_{hash}+q_{sig}+1) \cdot \mathcal{O}(k^3)
\epsilon = \left(1+\frac{1}{q_{sig}}\right)^{q_{sig}+1} \cdot q_{sig} \cdot \epsilon'

Beachte, dass der Artikel von Jean-Sébastien Coron offenbar q_{sig}>0 voraussetzt. Für große q_{sig} läuft dies auf \epsilon \sim exp(1)\cdot q_{sig} \cdot \epsilon' hinaus.

Das bedeutet: Wenn es einen Algorithmus gibt, der eine existenzielle Fälschung für das Full-Domain-Hash-Verfahren mit einer Laufzeit von t und Erfolgswahrscheinlichkeit von \epsilon erstellen kann und dabei höchstens q_{hash} berechnet und höchstens q_{sig} Unterschriften benötigt, dann gibt es einen Algorithmus, der diskrete Logarithmen von RSA-Modulen mit einer Laufzeit von t' und Erfolgswahrscheinlichkeit von \epsilon' berechnet.

Relevanz[Bearbeiten]

Die Autoren von Full-Domain-Hash haben ein weiteres Verfahren vorgeschlagen, das Probabilistic Signature Scheme (PSS), welches ihrer Ansicht nach bessere kryptografische Eigenschaften hat. Daher wird FDH praktisch nicht eingesetzt, da PSS im Rahmen von PKCS #1 v2.1 standardisiert wurde.

Quellen[Bearbeiten]