SM2算法功能简述(二) 验签流程

SM2推荐椭圆曲线参数如下:

使用素数域256位椭圆曲线

椭圆曲线方程:y2 = x3 + ax + b

p= FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF

a= FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC

b= 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93

n= FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123

Gx= 32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7

Gy= BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0

验签流程:


签名验证推导:

sG+[t]PA

=sG+(r+s)PA

=sG+(r+s)dAG(公钥PA=GdA)

=sG+sdAG+rdAG

=(1+dA)sG+rdAG(s=((1+dA)-1 *(k-r*dA)) )

=(1+dA)(1+dA)−1(k−rdA)G+rdAG   

=(k−rdA)G+rdAG

=kG−rdAG+rdAG

=kG

=(x1,y1)

因为R= (e′ + x′1) mod n,r= ( e + x1 ) mod n,e′和e相等,x′1和x1相等,所以推导出R= r′。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SM2数字签名算法由一个签名者对数据产生数字签名,并由一个验证者验证签名的可靠性。每个签名者有一个公钥和一个私钥,...
    李阿淇阅读 5,693评论 22 6
  • 网上有大量的基于OpenSSL实现的国密算法库,比如著名的GmSSL,可以直接拿来用。我自己常用的是mbedTLS...
    詹天佐阅读 5,824评论 0 1
  • 最近公司的项目需要对数据用SM2加签,走了挺多冤枉路的,在此记录下,也跟有需要的朋友分享下GmSSL的SM2加签需...
    BetterG阅读 9,202评论 10 5
  • A.1. 公私钥 私钥:BN_大整数 公钥:EC-Point椭圆曲线上的点 整体结构 A.2 第2部分——数字签名...
    苏州丸子阅读 8,719评论 0 1
  • sm2算法是国密标准的非对称算法标准。基于ecc的扩展 椭圆曲线算法 破解难度高于rsa算法。椭圆曲线方程:y2=...
    tuxy阅读 25,219评论 3 5