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