Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 12821|Odpowiedź: 0

[C] Zasada weryfikacji podpisu cyfrowego SM2

[Skopiuj link]
Opublikowano 26.06.2019 10:09:45 | | |
SM2 to algorytm podpisu cyfrowego oparty na krzywych eliptycznych, a wyjaśnienie krzywych eliptycznych można zobaczyć w poprzednim Weibo dotyczącym krzywych eliptycznych, a poniżej znajduje się krótkie wprowadzenie do procesu sygnatury SM2.
Aby informacja ee została podpisana, jest to oryginalna informacja uzyskana za pomocą funkcji skrótu po określonym przetwarzaniu, algorytm haszujący wykorzystuje tajny algorytm SM3 z narodowej tajemnicy, ten proces również jest pomijany, wprowadzany jest jedynie proces podpisywania i weryfikacji klucza.

1. Proces podpisywania
Niech GG będzie punktem odniesienia na krzywej eliptycznej, dAdA kluczem prywatnym, PAPA kluczem publicznym, PA=dA∗GPA=dA∗G
Wynik podpisu (r,s) (r,s) uzyskuje się przez cyfrowe podpisanie EE, a proces obliczeń wygląda następująco:
Najpierw wybierz liczbę losową kk, oczywiście wybór tej liczby jest ograniczony i na razie pozostaje bez zmian
Oblicz r=e+x1r=e+x1, gdzie (x1,y1)=k∗G(x1,y1)=k∗G
Oblicz s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
Widać, że fronty wykonuje się za pomocą klucza prywatnego.

2. Proces weryfikacji podpisu
Weryfikacja podpisu polega na użyciu uzyskanego podpisu, klucza publicznego, parametrów krzywej eliptycznej itp. do weryfikacji podpisu, a główne kroki weryfikacji to:
Najpierw oblicz t=r+st=r+s; jeśli t=0t=0, oznacza to, że nie przeszedł.
Wtedy punkty na krzywej (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA są obliczane przez tt i ss
Następnie oblicz R=x1+eR=x1+e, a następnie sprawdź, czy RR i rr są równe; jeśli są równe, oznacza to, że weryfikacja została przejęta.

3. Zasada weryfikacji
Dlaczego można to zweryfikować, możemy równie dobrze wyprowadzić to:
(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
Widać, że ten punkt na krzywej eliptycznej uzyskanej według klucza publicznego jest zgodny z punktem w momencie podpisu.
Następnie dodaj ten x1x1 i otrzymane informacje, aby sprawdzić, czy zgadza się z wysłanym podpisem rr, i to przechodzi.
---------------------
Autor: leowang666
Źródło: CSDN
Oryginał: https://blog.csdn.net/hugewaves/article/details/59205914
Informacja o prawach autorskich: Ten artykuł jest oryginalnym artykułem autorstwa blogera, prosimy o dołączenie linku do posta blogowego do ponownego druku!





Poprzedni:【Original】Google AdSense tutorial dotyczący kolekcji przelewów bankowych
Następny:Powiązania zdarzeń angularnych/atrybutów @HostListener, @HostBinding
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com