【数字签名】国密SM2签名
2022-3-17
| 2023-10-28
0  |  0 分钟
type
status
date
slug
summary
tags
category
icon
password
Sub-item
Last edited time
Oct 28, 2023 10:44 AM
Parent item
领域
 

签名过程

以签名者A为例,表示的私钥,表示的公钥,签名过程如下:
  1. 计算
    1. 其中:
      • 为2个字节,表示的比特长度,值为128
      • 表示A的标志, 值为
      • 为椭圆曲线参数
      • 基点坐标(对应公钥)
      • 公钥坐标(对应公钥)
  1. 计算,其中为待签名消息
  1. 计算哈希:
  1. 用随机数发生器产生随机数,满足 ,作为临时随机私钥
  1. 计算临时随机公钥:椭圆曲线点如果需要恢复公钥, 那么还需要记录坐标的奇偶性
  1. 计算,若则需要重复第四步生成一个新的随机私钥, 重新计算
  1. 计算,若则需要重复第四步生成一个新的随机私钥, 重新计算
  1. 最后输出签名结果:
因此, 最后公开的数据有:签名者A的公钥,被签名的消息,签名结果

验签过程

  1. 计算
  1. 计算
  1. 计算
  1. 根据签名结果计算 , 若,则验证不通过
  1. 根据,计算一个椭圆曲线的坐标:
  1. 取坐标的轴上的值,计算,检验是否成立,若成立则验证通过;否则验证不通过;
第5步推导过程:

恢复公钥

恢复公钥是指从签名的数据中推导出签名者的公钥信息。在公链中,由于任何账户都能随时随地签名并发送交易,而交易信息里一般只保留签名者的地址,不携带签名者的公钥,目的是为了减少交易数据的大小,降低交易传播的网络开销。
恢复公钥流程如下:
  1. 计算随机公钥的坐标轴的值:
  1. 因为在签名时记录了随机公钥的奇偶位,所以根据根据值和奇偶位,可以推导出随机公钥的y坐标轴的值
  1. 根据公式:,计算有:
 
 
密码学
  • 密码学算法
  • 数字签名
  • 国密
  • 【数字签名】ElGamal签名【数字签名】ECDSA签名
    目录