Warum funktioniert die Schnorr-Verifizierungsformel und überprüft tatsächlich die Gültigkeit einer Signatur?

Wenn wir unten auf Seite 2 des Musig Paper lesen , können wir feststellen, dass eine Schnorr-Signatur für eine zyklische Gruppe G der Primzahlordnung p mit Generator g ein Tupel (R, s) ist, wobei

  • R = g r für ein zufälliges Geheimnis r und
  • s=r+cx wobei c = H(X,R,m) für eine Nachricht m , eine Hashfunktion H und der öffentliche Schlüssel X = g x entsprechend dem privaten Schlüssel x .

Es wird ferner angegeben, dass eine solche Signatur (R,s) unter Verwendung der Gleichung g s = RX c verifiziert werden kann

Ich würde gerne wissen, warum diese letzte Gleichung die Gültigkeit der Signatur beweist?

Antworten (1)

Um die Gültigkeit der Signatur zu beweisen, müssen wir sehen, dass das Tupel (R,s) tatsächlich aus dem privaten Schlüssel x stammt . Insbesondere wurde s als s=r+cx abgeleitet . Offensichtlich sollten wir den privaten Schlüssel x (weshalb wir diese Verifikationsgleichung brauchen) also nicht besitzen

  1. Betrachtet man g s = RX c , stellen wir fest, dass wir (R,s), X und c kennen (da c = H(X,R,m) und der öffentliche Schlüssel X bekannt ist). Da auch der Erzeuger g bekannt ist, können wir eigentlich beide Seiten der Gleichung berechnen.
  2. Da s=r+cx ist , wissen wir, dass g s = g r+cx ist
  3. Da wir diese Berechnungen in einer zyklischen Gruppe der Primzahlordnung durchführen , können wir die folgenden Regeln anwenden: g a + b = g a g b und g ab = (g a ) b (Soweit ich verstehe, ist dies der Grund, warum die Gruppe muss zyklisch und von Primzahlordnung sein.)
  4. Somit ist g s = g r+cx = g r g cx
  5. Wenn wir R = g r in Erinnerung rufen und es in die Gleichung aus 4. einsetzen, erhalten wir g s = Rg cx
  6. Unter Hinweis auf die andere Regel aus 3. haben wir g s = Rg cx = R(g x ) c = RX c

Das ist genau die Gleichung, die gezeigt werden sollte.

Beachten Sie die interessante Tatsache, dass, wie in 1. erwähnt, alle Daten bekannt sind, die zur Überprüfung der Gleichung benötigt werden, aber die Erzeugung der Daten nur funktionieren kann, wenn x und r bekannt sind. Deshalb kann der Besitzer von x die Signatur erstellen und andere können sie verifizieren.