Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 12821|Odgovoriti: 0

[C] Načelo preverjanja digitalnega podpisa SM2

[Kopiraj povezavo]
Objavljeno na 26. 06. 2019 10:09:45 | | |
SM2 je algoritem digitalnega podpisa, ki temelji na eliptičnih krivuljah, razlaga eliptičnih krivulj pa je vidna v prejšnjem Weibu o eliptičnih krivuljah, spodaj pa je kratek uvod v proces SM2 podpisa.
Za informacijo, ki jo je treba podpisati, je to izvirna informacija, pridobljena preko zgoščevalne funkcije po določeni obdelavi, algoritem zgoščevanja uporablja nacionalno tajni SM3 algoritem, ta postopek pa se prav tako preskoči, uvede se le postopek podpisovanja in preverjanja ključa.

1. Postopek podpisovanja
Naj bo GG referenčna točka na eliptični krivulji, dAdA zasebni ključ, PAPA javni ključ, PA=dA∗GPA=dA∗G
Rezultat podpisa (r,s) (r,s) se dobi z digitalnim podpisom EE, postopek izračuna pa je:
Najprej izberite naključno število kk, seveda je izbira tega števila omejena in za zdaj ostane nespremenjena
Izračunajte r=e+x1r=e+x1, kjer (x1,y1)=k∗G(x1,y1)=k∗G
Izračunajte s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
Vidno je, da je sprednji del narejen z zasebnim ključem.

2. Postopek preverjanja podpisa
Preverjanje podpisa pomeni uporabo pridobljenega podpisa, javnega ključa, parametrov eliptične krivulje itd. za preverjanje podpisa, glavni koraki preverjanja pa so:
Najprej izračunajte t=r+st=r+s; če je t=0t=0, to pomeni, da ni uspelo.
Točke na krivulji (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA izračunamo z tt in ss
Nato izračunajte R=x1+eR=x1+e, nato preverite, ali sta RR in rr enaka; če sta enaka, to pomeni, da je preverjanje opravljeno.

3. Načelo preverjanja
Zakaj je to mogoče preveriti, lahko kar izpeljemo:
(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
Vidimo lahko, da je ta točka na eliptični krivulji, dobini po javnem ključu, skladna s točko ob podpisu.
Nato dodam to x1x1 in prejete podatke, da preverimo, ali se ujemajo s poslanim podpisom rr, in to je uspešno.
---------------------
Avtor: leowang666
Vir: CSDN
Izvirnik: https://blog.csdn.net/hugewaves/article/details/59205914
Obvestilo o avtorskih pravicah: Ta članek je izvirni članek blogerja, prosimo, priložite povezavo do blog objave za ponatisnitev!





Prejšnji:【Original】Google AdSense vodič za zbiranje bančnih nakazil
Naslednji:Kotne vezave dogodkov/atributov @HostListener, @HostBinding
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com