Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 12821|Odpoveď: 0

[C] Princíp overovania digitálneho podpisu SM2

[Kopírovať odkaz]
Zverejnené 26. 6. 2019 10:09:45 | | |
SM2 je algoritmus digitálneho podpisu založený na eliptických krivkách a vysvetlenie eliptických kriviek možno vidieť v predchádzajúcom Weibo o eliptických krivkách, pričom nasleduje stručný úvod do procesu podpisu SM2.
Pre informáciu ee, ktorá sa má podpísať, ide o pôvodnú informáciu získanú cez hashovaciu funkciu po určitom spracovaní, hashovací algoritmus používa národne tajný SM3 algoritmus, tento proces sa tiež vynecháva, zavádza sa iba podpisovanie a overovanie kľúča.

1. Proces podpisovania
Nech GG je referenčný bod na eliptickej krivke, dAdA je súkromný kľúč, PAPA je verejný kľúč, PA=dA∗GPA=dA∗G
Výsledok podpisu (r,s) (r,s) sa získa digitálnym podpísaním EE a proces výpočtu je nasledovný:
Najprv vyberte náhodné číslo kk, samozrejme, výber tohto čísla je obmedzený a zatiaľ sa nechá tak
Vypočítajte r=e+x1r=e+x1, kde (x1,y1)=k∗G(x1,y1)=k∗G
Vypočítaj s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
Je vidieť, že predná časť sa vykonáva pomocou súkromného kľúča.

2. Proces overovania podpisu
Overenie podpisu znamená použiť získaný podpis, verejný kľúč, parametre eliptickej krivky a pod. na overenie podpisu, pričom hlavné kroky overenia sú:
Najprv vypočítajte t=r+st=r+s, ak t=0t=0, znamená to, že neprešiel.
Potom sa body na krivke (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA vypočítajú pomocou tt a ss
Potom vypočítajte R=x1+eR=x1+e, a potom overte, či sú RR a rr rovnaké; ak sú rovnaké, znamená to, že overenie je úspešné.

3. Princíp overovania
Prečo sa to dá overiť, môžeme to rovnako odvodiť:
(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
Je zrejmé, že tento bod na eliptickej krivke získaný podľa verejného kľúča je konzistentný s bodom v čase podpisu.
Potom pridajte tento x1x1 a prijaté informácie, aby ste zistili, či to zodpovedá odoslanému podpisu rr, a prejde to.
---------------------
Autor: leowang666
Zdroj: CSDN
Originál: https://blog.csdn.net/hugewaves/article/details/59205914
Upozornenie na autorské práva: Tento článok je originálny článok od blogera, prosím, pripojte odkaz na blogový príspevok na opätovné zverejnenie!





Predchádzajúci:【Originál】Google AdSense tutoriál na zbierku bankových prevodov
Budúci:Väzby na angular eventy/atribúty @HostListener, @HostBinding
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com