Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 12821|Atsakyti: 0

[C] SM2 skaitmeninio parašo tikrinimo principas

[Kopijuoti nuorodą]
Paskelbta 2019-06-26 10:09:45 | | |
SM2 yra skaitmeninio parašo algoritmas, pagrįstas elipsinėmis kreivėmis, o elipsinių kreivių paaiškinimą galima pamatyti ankstesniame Weibo apie elipsines kreives, o toliau pateikiamas trumpas SM2 parašo proceso įvadas.
Kad informacija būtų pasirašyta, tai yra originali informacija, gauta naudojant maišos funkciją po tam tikro apdorojimo, maišos algoritmas naudoja nacionalinį slaptą SM3 algoritmą, šis procesas taip pat praleidžiamas, įvedamas tik rakto pasirašymo ir tikrinimo procesas.

1. Pasirašymo procesas
Tegul GG yra elipsinės kreivės atskaitos taškas, dAdA yra privatusis raktas, PAPA yra viešasis raktas, PA=dA∗GPA=dA∗G
Parašo rezultatas (r,s) (r,s) gaunamas skaitmeniniu būdu pasirašant EE, o skaičiavimo procesas yra toks:
Visų pirma, pasirinkite atsitiktinį skaičių kk, žinoma, šio skaičiaus pasirinkimas yra ribotas, ir kol kas jis paliekamas ramybėje
Apskaičiuokite r=e+x1r=e+x1, kur (x1,y1)=k∗G(x1,y1)=k∗G
Apskaičiuoti s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
Galima pastebėti, kad priekis atliekamas privačiu raktu.

2. Parašo tikrinimo procesas
Parašo tikrinimas yra gauto parašo, viešojo rakto, elipsinės kreivės parametrų ir kt. naudojimas parašui patikrinti, o pagrindiniai patikrinimo žingsniai yra šie:
Pirmiausia apskaičiuokite t=r+st=r+s, jei t=0t=0, tai reiškia, kad jis neišlaikė.
Tada kreivės taškai (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA apskaičiuojami tt ir ss
Tada apskaičiuokite R=x1+eR=x1+e, tada patikrinkite, ar RR ir rr yra lygūs, jei jie lygūs, tai reiškia, kad patikrinimas išlaikytas.

3. Patikrinimo principas
Kodėl tai galima patikrinti, mes taip pat galime jį išvesti:
(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
Galima pastebėti, kad šis elipsinės kreivės taškas, gautas pagal viešąjį raktą, atitinka tašką pasirašymo metu.
Tada pridėkite šį x1x1 ir gautą informaciją, kad pamatytumėte, ar jis atitinka išsiųstą parašą rr, ir jis praeina.
---------------------
Autorius: leowang666
Šaltinis: CSDN
Originalas: https://blog.csdn.net/hugewaves/article/details/59205914
Autorių teisių pranešimas: Šis straipsnis yra originalus straipsnis Bloggers, prašome pridėti dienoraščio įrašo nuorodą perspausdinti!





Ankstesnis:【Originalas】 "Google AdSense" pavedimų surinkimo pamoka
Kitą:Kampinių įvykių susiejimo / atributų susiejimai @HostListener, @HostBinding
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com