Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 12821|Antwoord: 0

[C] Het principe van SM2 digitale handtekeningverificatie

[Link kopiëren]
Geplaatst op 26-06-2019 10:09:45 | | |
SM2 is een digitaal handtekeningalgoritme gebaseerd op elliptische krommen, en de uitleg van elliptische krommen is te zien in de vorige Weibo over elliptische krommen, en hieronder volgt een korte introductie tot het proces van SM2-signaturen.
Voor de informatie ee die ondertekend moet worden, is dit de oorspronkelijke informatie die via de hashfunctie na bepaalde verwerking wordt verkregen; het hashing-algoritme gebruikt het nationale geheime SM3-algoritme, dit proces wordt ook overgeslagen, alleen het sleutelondertekenings- en verificatieproces wordt geïntroduceerd.

1. Het ondertekeningsproces
Laat GG het referentiepunt op de elliptische kromme zijn, dAdA de private sleutel, PAPA de publieke sleutel, PA=dA∗GPA=dA∗G
Het handtekeningresultaat (r,s) (r,s) wordt verkregen door de EE digitaal te ondertekenen, en het berekeningsproces is:
Kies allereerst het willekeurige getal kk, natuurlijk is de keuze van dit getal beperkt en het blijft voorlopig met rust
Bereken r=e+x1r=e+x1, waarbij (x1,y1)=k∗G(x1,y1)=k∗G
Bereken s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
Te zien is dat de voorkant wordt uitgevoerd met een privésleutel.

2. Het proces van handtekeningverificatie
Het verifiëren van de handtekening is het gebruik van de verkregen handtekening, publieke sleutel, elliptische krommeparameters, enzovoort om de handtekening te verifiëren, en de belangrijkste verificatiestappen zijn:
Bereken eerst t=r+st=r+s; als t=0t=0 betekent dit dat het niet is geslaagd.
Dan worden de punten op de kromme (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA berekend door tt en ss
Bereken vervolgens R=x1+eR=x1+e, en controleer vervolgens of RR en rr gelijk zijn; als ze gelijk zijn, betekent dit dat de verificatie is geslaagd.

3. Het principe van verificatie
Waarom dit geverifieerd kan worden, kunnen we net zo goed afleiden:
(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
Het is te zien dat dit punt op de elliptische kromme, verkregen volgens de publieke sleutel, consistent is met het punt op het moment van ondertekening.
Voeg dan dit x1x1 toe en de ontvangen informatie om te zien of het overeenkomt met de verzonden handtekening rr, en het wordt goedgekeurd.
---------------------
Auteur: leowang666
Bron: CSDN
Origineel: https://blog.csdn.net/hugewaves/article/details/59205914
Copyright: Dit artikel is een origineel artikel van de blogger, voeg de blogpost link toe voor herdruk!





Vorig:【Original】Google AdSense wire transfer collection tutorial
Volgend:Angular event bindings/attribuutbindingen @HostListener, @HostBinding
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com