Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 12821|Svar: 0

[C] Princippet om SM2 digital signaturverifikation

[Kopier link]
Opslået på 26/06/2019 10.09.45 | | |
SM2 er en digital signaturalgoritme baseret på elliptiske kurver, og forklaringen af elliptiske kurver kan ses i den tidligere Weibo om elliptiske kurver, og følgende er en kort introduktion til processen med SM2-signatur.
For at informationen ee skal signeres, er dette den oprindelige information, der opnås gennem hashfunktionen efter en vis behandling; hashing-algoritmen bruger den nationale hemmelige SM3-algoritme, denne proces springes også over, kun nøglesignering og verifikationsprocessen introduceres.

1. Underskriftsprocessen
Lad GG være referencepunktet på den elliptiske kurve, dAdA er den private nøgle, PAPA er den offentlige nøgle, PA=dA∗GPA=dA∗G
Signaturresultatet (r,s) (r,s) opnås ved digitalt at underskrive EE, og beregningsprocessen er:
Først og fremmest, vælg det tilfældige tal kk, selvfølgelig er valget af dette tal begrænset, og det er uændret for nu
Beregn r=e+x1r=e+x1, hvor (x1,y1)=k∗G(x1,y1)=k∗G
Beregn s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
Det kan ses, at fronten udføres med en privat nøgle.

2. Processen med underskriftsverifikation
Verifikation af signaturen sker ved brug af den opnåede signatur, public key, elliptiske kurveparametre osv. til at verificere signaturen, og hovedtrinene i verifikationen er:
Beregn først t=r+st=r+s, hvis t=0t=0, betyder det, at den ikke beståede.
Så beregnes punkterne på kurven (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA ved tt og ss
Beregn derefter R=x1+eR=x1+e, og verificér derefter, om RR og rr er ens; hvis de er ens, betyder det, at verifikationen er bestået.

3. Princippet om verifikation
Hvorfor dette kan verificeres, kan vi lige så godt udlede det:
(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
Det kan ses, at dette punkt på den elliptiske kurve, opnået ifølge den offentlige nøgle, er konsistent med punktet på signeringstidspunktet.
Tilføj derefter dette x1x1 og den modtagne information for at se, om det matcher den sendte signatur rr, og så går det videre.
---------------------
Forfatter: leowang666
Kilde: CSDN
Oprindelig: https://blog.csdn.net/hugewaves/article/details/59205914
Ophavsretsmeddelelse: Denne artikel er en original artikel af bloggeren, vedhæft venligst bloglinket til genoptryk!





Tidligere:【Original】Google AdSense wire transfer collection tutorial
Næste:Angular event-bindinger/attributbindinger @HostListener, @HostBinding
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com