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