Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 12821|Svar: 0

[C] Principen för SM2:s digitala signaturverifiering

[Kopiera länk]
Publicerad på 2019-06-26 10:09:45 | | |
SM2 är en digital signaturalgoritm baserad på elliptiska kurvor, och förklaringen av elliptiska kurvor kan ses i den tidigare Weibo om elliptiska kurvor, och följande är en kort introduktion till processen för SM2-signatur.
För att informationen ee ska signeras är detta den ursprungliga informationen som erhålls via hashfunktionen efter viss bearbetning, hashningsalgoritmen använder den nationella hemliga SM3-algoritmen, denna process hoppas också över, endast nyckelsignering och verifieringsprocess införs.

1. Processen för att skriva under
Låt GG vara referenspunkten på den elliptiska kurvan, dAdA är den privata nyckeln, PAPA är den publika nyckeln, PA=dA∗GPA=dA∗G
Signaturresultatet (r,s) (r,s) erhålls genom att digitalt signera EE:n, och beräkningsprocessen är:
Först och främst, välj det slumpmässiga talet kk, naturligtvis är valet av detta tal begränsat och det lämnas ifred för tillfället
Beräkna r=e+x1r=e+x1, där (x1,y1)=k∗G(x1,y1)=k∗G
Beräkna s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
Det kan ses att fronten är utförd med en privat nyckel.

2. Processen för signaturverifiering
Verifiering av signaturen innebär att använda den erhållna signaturen, publika nyckeln, parametrar för elliptiska kurvor etc. för att verifiera signaturen, och de viktigaste stegen i verifieringen är:
Beräkna först t=r+st=r+s, om t=0t=0 betyder det att den inte klarade sig.
Då beräknas punkterna på kurvan (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA med tt och ss
Beräkna sedan R=x1+eR=x1+e, och verifiera om RR och rr är lika, om de är lika betyder det att verifieringen är godkänd.

3. Principen om verifiering
Varför detta kan verifieras kan vi lika gärna härleda 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 att denna punkt på den elliptiska kurvan som erhålls enligt den publika nyckeln är förenlig med punkten vid signeringstillfället.
Lägg sedan till detta x1x1 och den mottagna informationen för att se om det matchar den skickade signaturen rr, och det passerar.
---------------------
Författare: leowang666
Källa: CSDN
Original: https://blog.csdn.net/hugewaves/article/details/59205914
Upphovsrättsmeddelande: Denna artikel är en originalartikel av bloggaren, vänligen bifoga länken till blogginlägget för återpublicering!





Föregående:【Original】Google AdSense wire transfer collection tutorial
Nästa:Angular event bindningar/attributbindningar @HostListener, @HostBinding
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com