Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 12821|Antwort: 0

[C] Das Prinzip der SM2-Überprüfung der digitalen Signatur

[Link kopieren]
Veröffentlicht am 26.06.2019 10:09:45 | | |
SM2 ist ein digitaler Signaturalgorithmus, der auf elliptischen Kurven basiert, und die Erklärung elliptischer Kurven ist im vorherigen Weibo zu elliptischen Kurven zu sehen; im Folgenden ist eine kurze Einführung in den Prozess der SM2-Signatur.
Für die zu signierende Information ee handelt es sich dabei um die Originalinformation, die nach einer bestimmten Verarbeitung durch die Hashfunktion erhalten wird; der Hashing-Algorithmus verwendet den nationalen geheimen SM3-Algorithmus, dieser Prozess wird ebenfalls übersprungen, nur der Schlüsselsignierungs- und Verifikationsprozess wird eingeführt.

1. Der Unterzeichnungsprozess
Sei GG der Referenzpunkt auf der elliptischen Kurve, dAdA der private Schlüssel, PAPA der öffentliche Schlüssel, PA=dA∗GPA=dA∗G
Das Signaturergebnis (r,s) (r,s) wird durch digitale Unterschrift des EE erhalten, und der Berechnungsprozess lautet:
Wählen Sie zunächst die zufällige Zahl kk, natürlich ist die Wahl dieser Zahl eingeschränkt und lässt sie vorerst unverändert
Berechnen Sie r=e+x1r=e+x1, wobei (x1,y1)=k∗G(x1,y1)=k∗G
Berechnen Sie s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
Man sieht, dass die Vorderseite mit einem privaten Schlüssel ausgeführt wird.

2. Der Prozess der Unterschriftenverifikation
Die Verifizierung der Signatur erfolgt durch die Verwendung der erhaltenen Signatur, des öffentlichen Schlüssels, der elliptischen Kurvenparameter usw. zur Verifizierung der Signatur, und die wichtigsten Überprüfungsschritte sind:
Berechnen Sie zunächst t=r+st=r+s; wenn t=0t=0, bedeutet das, dass es nicht bestanden hat.
Dann werden die Punkte auf der Kurve (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA durch tt und ss berechnet
Berechnen Sie dann R=x1+eR=x1+e und überprüfen Sie, ob RR und rr gleich sind; wenn sie gleich sind, bedeutet das, dass die Überprüfung bestanden ist.

3. Das Prinzip der Überprüfung
Warum dies verifiziert werden kann, können wir genauso gut ableiten:
(x1,y1)=s∗G+t∗PA =s∗G+(r+s)∗PA =s∗G+(r+s)∗dA∗G=(1+dA)∗s∗G+r∗dA∗G=(1+dA)∗(1+dA)−1∗(k−r∗dA)∗G+r∗dA∗G=(k−r∗dA)∗G+r∗dA∗G=k∗G(x1,y1)=s∗G+t∗PA =s∗G+(r+s)∗PA            =s∗G+(r+s)∗dA∗G=(1+dA)∗s∗G+r∗dA∗G=(1+dA)∗(1+dA)−1∗(k−r∗dA)∗G+r∗dA∗G=(k−r∗dA)∗G+r∗dA∗G=k∗G
Es ist zu erkennen, dass dieser Punkt auf der elliptischen Kurve, der gemäß dem öffentlichen Schlüssel erhalten wird, mit dem Punkt zum Zeitpunkt der Unterzeichnung konsistent ist.
Dann fügt man dieses x1x1 und die empfangenen Informationen hinzu, um zu sehen, ob es mit der gesendeten Signatur rr übereinstimmt, und es wird bestanden.
---------------------
Autor: leowang666
Quelle: CSDN
Original: https://blog.csdn.net/hugewaves/article/details/59205914
Copyright-Hinweis: Dieser Artikel ist ein Originalartikel des Bloggers, bitte fügen Sie den Link zum Nachdruck des Blogbeitrags bei!





Vorhergehend:【Original】Google AdSense Wire Transfer Collection Tutorial
Nächster:Angular-Event-Bindungen/Attribut-Bindungen @HostListener, @HostBinding
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com