SM2 é um algoritmo de assinatura digital baseado em curvas elípticas, e a explicação das curvas elípticas pode ser vista no Weibo anterior sobre curvas elípticas, e a seguir está uma breve introdução ao processo da assinatura SM2. Para a informação ee a ser assinada, esta é a informação original obtida pela função hash após certo processamento; o algoritmo de hash usa o algoritmo secreto nacional SM3, esse processo também é pulado, sendo introduzido apenas o processo de assinatura e verificação de chaves.
1. O processo de assinatura Seja GG o ponto de referência na curva elíptica, dAdA é a chave privada, PAPA é a chave pública, PA=dA∗GPA=dA∗G O resultado da assinatura (r,s) (r,s) é obtido assinando digitalmente o EE, e o processo de cálculo é: Primeiro, escolha o número aleatório kk, claro, a escolha desse número é restrita, e por enquanto ele é deixado de lado Calcule r=e+x1r=e+x1, onde (x1,y1)=k∗G(x1,y1)=k∗G Calcule s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA) Pode-se ver que a frente é feita com uma chave privada.
2. O processo de verificação de assinatura Verificar a assinatura consiste em usar a assinatura obtida, chave pública, parâmetros da curva elíptica, etc., para verificar a assinatura, e os principais passos da verificação são: Primeiro, calcule t=r+st=r+s; se t=0t=0, significa que não passou. Então, os pontos na curva (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA são calculados por tt e ss Depois, calcule R=x1+eR=x1+e, e verifique se RR e rr são iguais; se forem iguais, significa que a verificação foi aprovada.
3. O princípio da verificação Por que isso pode ser verificado, podemos muito bem derivar: (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 Pode-se ver que esse ponto na curva elíptica obtido de acordo com a chave pública é consistente com o ponto no momento da assinatura. Depois, adicione esse x1x1 e as informações recebidas para ver se corresponde à assinatura enviada rr, e ele passa. --------------------- Autor: leowang666 Fonte: CSDN Original: https://blog.csdn.net/hugewaves/article/details/59205914 Aviso de Direitos Autorais: Este artigo é um artigo original do blogueiro, por favor, anexe o link do post do blog para reimpressão!
|