Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 12821|Répondre: 0

[C] Le principe de la vérification de la signature numérique SM2

[Copié le lien]
Publié sur 26/06/2019 10:09:45 | | |
SM2 est un algorithme de signature numérique basé sur des courbes elliptiques, et l’explication des courbes elliptiques peut être vue dans le Weibo précédent à propos des courbes elliptiques, et voici une brève introduction au processus de signature SM2.
Pour que l’information ee soit signée, il s’agit de l’information originale obtenue via la fonction de hachage après un certain traitement, l’algorithme de hachage utilise l’algorithme national secret SM3, ce processus est également sauté, seul le processus de signature et de vérification des clés est introduit.

1. Le processus de signature
Soit GG le point de référence sur la courbe elliptique, dAdA la clé privée, PAPA la clé publique, PA=dA∗GPA=dA∗G
Le résultat de signature (r,s) (r,s) est obtenu en signant numériquement l’EE, et le processus de calcul est :
Tout d’abord, choisissez le nombre aléatoire kk, bien sûr, le choix de ce nombre est contraint, et il est laissé tel quel pour l’instant
Calculer r=e+x1r=e+x1, où (x1,y1)=k∗G(x1,y1)=k∗G
Calculer s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
On peut voir que la façade est réalisée avec une clé privée.

2. Le processus de vérification de la signature
La vérification de la signature consiste à utiliser la signature obtenue, la clé publique, les paramètres de la courbe elliptique, etc. pour vérifier la signature, et les principales étapes de la vérification sont :
D’abord, calculez t=r+st=r+s, si t=0t=0 signifie qu’il n’a pas réussi.
Ensuite, les points sur la courbe (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA sont calculés par tt et ss
Puis calculer R=x1+eR=x1+e, puis vérifier si RR et rr sont égaux ; s’ils sont égaux, cela signifie que la vérification est passée.

3. Le principe de vérification
Pourquoi cela peut être vérifié, autant le déduire :
(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 =sG+(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
On peut voir que ce point sur la courbe elliptique obtenu selon la clé publique est cohérent avec le point au moment de la signature.
Ensuite, ajoutez ce x1x1 et les informations reçues pour voir si elles correspondent à la signature rr envoyée, et c’est adopté.
---------------------
Auteur : leowang666
Source : CSDN
Original : https://blog.csdn.net/hugewaves/article/details/59205914
Avis de droits d’auteur : Cet article est un article original du blogueur, veuillez joindre le lien de l’article de blog pour la réimpression !





Précédent:【Original】Tutoriel de collecte de virements bancaires Google AdSense
Prochain:Liaisons d’événements angulaires/attributs @HostListener, @HostBinding
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com