Standardschwellenwert-Signaturschema / Sudo Null IT News

Wir setzen eine Reihe von Artikeln über die Funktionsprinzipien des MRS fort. In früheren Artikeln haben wir darüber gesprochen Standardschema für digitale Signaturenum ECDSA-Algorithmus und elliptische Kurven. In diesem Artikel werden wir der MRS sehr nahe kommen, wir werden über die Schwellensignatur sprechen.

Bisher wurden Methoden betrachtet, mit denen jeder einzelne Benutzer seine persönliche digitale Signatur erstellen kann. Jetzt werden wir darüber sprechen, wie eine Gruppe von Teilnehmern eine gemeinsame digitale Signatur erstellt. Diese Aufgabe ist besonders relevant in verteilten Systemen, wo es keine Möglichkeit gibt, die Teilnehmer zu überprüfen und wo niemand jemandem vertraut.

Allgemein wird das Problem wie folgt formuliert. Es gibt N Teilnehmer, die sicherstellen möchten, dass keine t von ihnen hatten die Möglichkeit, im Namen der gesamten Community auf einmal gemeinsame Unterschriften zu erstellen. Gleichzeitig konnte eine kleinere Zahl, die sich entschied, etwas zu unterschreiben, dies nicht tun. Nummer t wird als Schwellenwert bezeichnet, und die Signatur selbst wird als Schwellenwert bezeichnet.

Da eine reguläre Signatur durch den geheimen Schlüssel des Eigentümers bestimmt wird, wird die Aufgabe des Erstellens einer Schwellensignatur auf die gemeinsame Nutzung der Schwelle des geheimen Schlüssels reduziert. Der geheime Schlüssel muss nämlich in Stücke geteilt werden, und jeder Teilnehmer darf nur sein eigenes Fragment haben und nichts über die anderen wissen. Dabei t Es sollten genügend Fragmente vorhanden sein, um daraus eine gemeinsame Signatur zusammenzusetzen, und eine kleinere Anzahl sollte es nicht sein.

Gleichzeitig bricht alles zusammen, wenn einer der Teilnehmer den gesamten geheimen Schlüssel erfährt, da dieser eine Teilnehmer dann in der Lage sein wird, Signaturen für alle gleichzeitig mit dem üblichen Algorithmus zu erstellen Sig. Dies ist höchst unerwünscht, da die Parteien einander normalerweise nicht vertrauen und ihre privaten Schlüsselfragmente geheim halten müssen.

Was den öffentlichen Schlüssel betrifft, so besteht keine Notwendigkeit, ihn zwischen den Parteien zu teilen. Dieser Schlüssel wird von denjenigen benötigt, die die Echtheit der Signatur überprüfen möchten, und es ist ihnen im Großen und Ganzen egal, ob es sich um einen Schwellenwert handelt oder nicht. Daher erstellt eine Gruppe von Teilnehmern den häufigsten öffentlichen Schlüssel für sich selbst, und ein spezieller Verifizierungsalgorithmus für eine Schwellensignatur ist nicht erforderlich.

Somit ist das Threshold Signature Scheme (TSS) ein Satz von zwei Protokollen ThreshKeyGen und ThreshSig, die Anweisungen für die Interaktion der Parteien mit dem Ziel sind, im ersten Fall das erforderliche Schlüsselpaar und im zweiten Fall die Schwellensignatur zu erstellen. Um vom Algorithmus generierte Signaturen zu verifizieren ThreshSigwird der uns bereits bekannte übliche Algorithmus verwendet Ver.

Schwellenwert ECDSA-Protokoll

Das Schwellenwert-ECDSA-Protokoll ist eine Implementierung eines Schwellenwert-Signaturschemas basierend auf dem ECDSA-Algorithmus. Daher werden hier, wie bei ECDSA, vorab fünf grundlegende Ausgangsparameter festgelegt: eine bestimmte elliptische Kurve, eine Primzahl nPunkt G auf einer Kurve so dass n ist seine Reihenfolge und zwei Parameter, die der modularen Arithmetik zugeordnet sind.

ThreshKeyGen-Schlüsselgenerierungsprotokoll

Als Ergebnis dieses Protokolls erhält jeder Teilnehmer seinen eigenen einzigartigen Teil skᵢ gemeinsamen geheimen Schlüssel sk, sowie eine Kopie desselben gemeinsamen öffentlichen Schlüssels pk. Teile zusammen

sk₁, …, sk_{N}

bilden (t, n) ist die Schwellentrennung des Schlüssels sk. Das bedeutet, dass der ursprüngliche Schlüssel wiederhergestellt werden kann, wenn man beliebige t Teile kennt, aber eine kleinere Anzahl von ihnen reicht nicht aus, um wiederhergestellt zu werden.

Zunächst wählt jeder Teilnehmer eine Zufallszahl uᵢ. Der geheime Schlüssel sk ist definiert als die bedingte Summe dieser Zahlen:

sk=u₁+…+u_{N}

Bedingt, weil es in dieser Form niemand berechnen kann (niemand kennt alle Werte auf einmal uᵢ).

Öffentlicher Schlüssel pkwie im üblichen Algorithmus keygenwird durch die Relation bestimmt pk=sk ∙ G. Nur jetzt wird es in Teilen berechnet. Jeder Teilnehmer findet zuerst seinen Punkt Qᵢ=uᵢG, sendet es dann an die anderen. Außerdem alle Punkte haben

Q₁, …, Q_{N}

jeder Teilnehmer findet pk mit einer speziellen Regel, die wir später besprechen werden.

Somit haben die Teilnehmer bereits ein Schlüsselpaar erstellt. Allerdings Teile uᵢ privater Schlüssel sk schlecht – sie haben nicht die Eigenschaft, das zumindest zu wissen t von ihnen der Schlüssel sk kann wiederhergestellt werden. Teile uᵢ waren einfach der erste notwendige Schritt: mit ihrer Hilfe der Schlüssel sk Wurde definiert. Jetzt der Schlüssel sk anders geteilt werden, damit diese Teilung die Schwelleneigenschaft hat.

Dabei greifen die Teilnehmer auf das zusätzliche VSS-Protokoll (Feldman’s Verifiable Secret Sharing) von Feldman zurück. Dieses Protokoll besteht aus drei Schritten.

  1. Im ersten Schritt teilt jeder Teilnehmer nach einem speziellen Algorithmus seine Zahl uᵢ auf der n Teile, so dass für alle t Stückzahl erhalten uᵢ definitiv erholt.

  2. Im zweiten Schritt sendet jeder Teilnehmer die sich ergebenden Teile der Zahl uᵢ der Rest: je ein Teil. In diesem Fall verbleibt ein Teil beim Teilnehmer.

  3. Im dritten Schritt prüfen die Teilnehmer, ob sie von allen anderen die richtigen Stücke erhalten haben, ob dabei Fehler gemacht wurden.

Nach diesen Transfers hat jeder Teilnehmer n Zahlen. Ursprünglich war eine – eigene Nummer uᵢerhalten im ersten Schritt des VSS-Protokolls von Feldman. Der Rest wurde von anderen erhalten. Ihr letzter Teil des geheimen Schlüssels sk Jeder Teilnehmer erhält von diesen Zahlen einfach durch Aufsummieren.

ThreshSig-Signaturprotokoll

Signaturerstellungsprotokoll ThreshSig beinhaltet keine Beteiligung mehr n Seite t, da diese Zahl ausreichen sollte, um erfolgreich eine Schwellensignatur zu erstellen. Der zusätzliche Eingabeparameter des Protokolls ist die Nummer m — Hash der signierten Nachricht.

Basierend auf dem üblichen Algorithmus Sig ECDSA. Der Hauptunterschied besteht darin, dass die Signatur jetzt nicht direkt, sondern in Teilen berechnet wird.

Jeder Teilnehmer berechnet mit seinem eigenen Teil des geheimen Schlüssels sein eigenes Stück der Signatur sk. Dann werden diese Teile zusammengesetzt und die endgültige Signatur gebildet (r, s). Die endgültige Signatursammlung ist die Summe der Signaturen, die die Mitwirkenden erstellt haben.

Verweise

Rosario Gennaro, Steven GoldfederFast Multiparty Threshold ECDSA mit Fast Trustless Setup

In den ersten drei Artikeln haben wir über mehrere gängige Algorithmen zum Erstellen und Verifizieren einer digitalen Signatur gesprochen. Als nächstes werden wir die Feinheiten von Algorithmen mit mathematischer Theorie analysieren. Im nächsten Artikel machen wir einen kurzen Exkurs in die Gruppentheorie.

Similar Posts

Leave a Reply

Your email address will not be published.