Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 12821|Odpověď: 0

[C] Princip ověřování digitálního podpisu SM2

[Kopírovat odkaz]
Zveřejněno 26.06.2019 10:09:45 | | |
SM2 je algoritmus digitálního podpisu založený na eliptických křivkách a vysvětlení eliptických křivek lze vidět v předchozím Weibo o eliptických křivkách, přičemž následuje stručný úvod do procesu podpisu SM2.
Pro podepisování informací ee je to původní informace získaná pomocí hashovací funkce po určitém zpracování, hashovací algoritmus používá národní tajný algoritmus SM3, tento proces je také vynechán, zavádí se pouze proces podepisování a ověřování klíče.

1. Proces podpisu
Nechť GG je referenčním bodem na eliptické křivce, dAdA je soukromý klíč, PAPA je veřejný klíč, PA=dA∗GPA=dA∗G
Výsledek podpisu (r,s) (r,s) se získá digitálním podepsáním EE a výpočet je následující:
Nejprve vyberte náhodné číslo kk, samozřejmě volba tohoto čísla je omezená a zatím zůstává nedotčena
Vypočítejte r=e+x1r=e+x1, kde (x1,y1)=k∗G(x1,y1)=k∗G
Vypočítejte s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
Je vidět, že přední část je provedena pomocí soukromého klíče.

2. Proces ověřování podpisu
Ověření podpisu znamená použití získaného podpisu, veřejného klíče, parametrů eliptických křivek atd. k ověření podpisu, přičemž hlavní kroky ověření jsou:
Nejprve vypočítejte t=r+st=r+s, pokud t=0t=0, znamená to, že neprošlo.
Pak jsou body na křivce (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA vypočítány pomocí tt a ss
Poté vypočítejte R=x1+eR=x1+e a ověřte, zda jsou RR a rr stejné; pokud jsou stejné, znamená to, že ověření je úspěšné.

3. Princip ověřování
Proč to lze ověřit, můžeme to klidně odvodit:
(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 vidět, že tento bod na eliptické křivce získané podle veřejného klíče je v souladu s bodem v době podepsání.
Pak přičte tento x1x1 a přijaté informace, abyste zjistili, zda odpovídají odeslanému podpisu rr, a projde to.
---------------------
Autor: leowang666
Zdroj: CSDN
Originál: https://blog.csdn.net/hugewaves/article/details/59205914
Oznámení o autorských právech: Tento článek je originálním článkem od blogera, prosím připojte odkaz na blogový příspěvek pro přetisk!





Předchozí:【Originál】Google AdSense tutoriál pro sbírku bankovních převodů
Další:Vázání událostí Angular a atributů @HostListener, @HostBinding
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com