签名定义

Sig=Fsig(Fhash(m),dA)

  • dA是私钥
  • m是待签名信息
  • Fhash是哈希函数
  • Fsig是签名算法
  • Sig是签名结果
  • Sig = (R,S)

签名过程

  1. 生成随机数k,作为临时私钥
  2. 临时公钥P = k*G
  3. R是P的x坐标
  4. S = k-1(Hash(m) + dA * R) mod p

验证签名过程

验证签名是生成签名的反过程,使用R,S和公钥计算P
P = S-1 * Hash(m) * G + S-1 * R * Qa

  • R和S是签名值
  • Qa是签名私钥对应的公钥
  • m是源数据
  • G是椭圆曲线的预置生成点
    如果最终计算出来P和R是相等的,那么签名通过

更多推荐