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