Fiat-Shamir-Heuristik

Aus testwiki
Zur Navigation springen Zur Suche springen

Die Fiat-Shamir-Heuristik ist eine kryptographische Technik, mit deren Hilfe man aus einem interaktiven Beweis eine Digitale Signatur erzeugen kann. Auf diese Weise kann eine bestimmte Tatsache (zum Beispiel das Wissen über eine bestimmte Zahl) bewiesen werden, ohne dass die zugrundeliegende Information erkennbar wird. Diese Technik wurde 1986 von Amos Fiat und Adi Shamir entwickelt.[1] Der ursprüngliche interaktive Beweis muss die Öffentliche-Münze-Eigenschaft haben, damit die Methode greift. Für den unten angegebenen Algorithmus sollte der Leser mit modularer Arithmetik vertraut sein, besonders mit jener in den so genannten P-Gruppen.

Die Heuristik wurde ursprünglich ohne Sicherheitsbeweis präsentiert, später zeigten Pointcheval und Stern[2] ihre Sicherheit gegenüber dem Chosen-Plaintext-Angriff im Zufallsorakel-Modell, das bedeutet, unter der Annahme, dass solche Zufallsorakel existieren. Für den Fall, dass diese nicht existieren, wurde die Fiat-Shamir-Heuristik durch Goldwasser und Kalai als unsicher bewiesen.[3] Wenn der unten berechnete Hashwert nicht vom (öffentlichen) Wert von y abhängt, wird die Sicherheit des Algorithmus kompromittiert, da ein böswilliger Beweiser den Wert c in einem gewissen Rahmen festlegen könnte.[4]

Allgemein kann man die Fiat-Shamir-Heuristik als einen Weg betrachten, einen interaktiven Beweis mit öffentlichen Münzen in einen nicht-interaktiven null-Wissen-Beweis umzuwandeln. Wenn der interaktive Beweis ein Identifikationsprotokoll ist, kann die nicht-interaktive Version als digitale Signatur verwendet werden.

Beispiel

Dies ist ein interaktiver Beweis des Wissens eines diskreten Logarithmus.[5]

  1. Alice will Bob beweisen, dass sie x kennt, den diskreten Logarithmus von y=gx zur Basis g.
  2. Sie wählt ein vq, berechnet t=gv und schickt t an Bob.
  3. Bob wählt ein zufälliges cq* und schickt es an Alice.
  4. Alice berechnet r=vcx und schickt r an Bob.
  5. Bob überprüft, ob tgryc (diese Aussage ist wahr, da gryc=gvcxgxc=gv=t).

Die Fiat-Shamir-Heuristik besteht daraus, Schritt 3 durch einen nicht-interaktiven Zugriff auf ein Zufallsorakel zu ersetzen. In der Praxis wird stattdessen eine kryptographische Hash-Funktion verwendet.[6]

  1. Alice will Bob beweisen, dass sie x kennt, den diskreten Logarithmus von y=gx zur Basis g.
  2. Sie wählt ein vq und berechnet t=gv.
  3. Alice berechnet c=H(g,y,t), mit einer kryptographischen Hashfunktion H().
  4. Sie berechnet r=vcx. Der Beweis ist das Paar (t,r). Da r ein Exponent von g ist, ist der Modulus q1.
  5. Jeder kann überprüfen, ob tgryc.

Siehe auch

Einzelnachweise