Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 12821|Svare: 0

[C] Prinsippet for SM2 digital signaturverifisering

[Kopier lenke]
Publisert på 26.06.2019 10:09:45 | | |
SM2 er en digital signaturalgoritme basert på elliptiske kurver, og forklaringen av elliptiske kurver kan sees i den forrige Weibo om elliptiske kurver, og følgende er en kort introduksjon til prosessen med SM2-signatur.
For at informasjonen ee skal signeres, er dette den opprinnelige informasjonen som oppnås gjennom hash-funksjonen etter en viss behandling, hashing-algoritmen bruker den nasjonale hemmelige SM3-algoritmen, denne prosessen hoppes også over, kun nøkkelsignering og verifiseringsprosessen introduseres.

1. Signeringsprosessen
La GG være referansepunktet på den elliptiske kurven, dAdA er den private nøkkelen, PAPA er den offentlige nøkkelen, PA=dA∗GPA=dA∗G
Signaturresultatet (r,s) (r,s) oppnås ved digital signering av EE, og beregningsprosessen er:
Først og fremst, velg det tilfeldige tallet kk, selvfølgelig, valget av dette tallet er begrenset, og det får være for nå
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 sees at fronten utføres med en privat nøkkel.

2. Prosessen med signaturverifisering
Verifisering av signaturen innebærer å bruke den oppnådde signaturen, offentlig nøkkel, parametre for elliptiske kurver osv. for å verifisere signaturen, og hovedstegene i verifiseringen er:
Først, beregn t=r+st=r+s, hvis t=0t=0 betyr det at den ikke passerte.
Da beregnes punktene på kurven (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA med tt og ss
Beregn deretter R=x1+eR=x1+e, og verifiser om RR og rr er like; hvis de er like, betyr det at verifiseringen er bestanket.

3. Verifikasjonsprinsippet
Hvorfor dette kan verifiseres, kan vi like gjerne utlede 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 sees at dette punktet på den elliptiske kurven oppnådd i henhold til den offentlige nøkkelen er konsistent med punktet på signeringstidspunktet.
Legg deretter til denne x1x1 og den mottatte informasjonen for å se om den matcher den sendte signaturen rr, og den består.
---------------------
Forfatter: leowang666
Kilde: CSDN
Original: https://blog.csdn.net/hugewaves/article/details/59205914
Opphavsrettsmerknad: Denne artikkelen er en original artikkel av bloggeren, vennligst legg ved lenken til blogginnlegget for gjenutgivelse!





Foregående:【Original】Google AdSense wire transfer collection tutorial
Neste:Angular hendelsesbindinger/attributtbindinger @HostListener, @HostBinding
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com