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!
|