美文网首页
SM2算法功能简述(一) 数字签名生成流程

SM2算法功能简述(一) 数字签名生成流程

作者: 李阿淇 | 来源:发表于2023-03-13 09:56 被阅读0次

SM2数字签名算法由一个签名者对数据产生数字签名,并由一个验证者验证签名的可靠性。每个签名者有一个公钥和一个私钥,其中私钥用于产生签名,验证者用签名者的公钥验证签名。在签名的生成过程之前,要用密码杂凑函数对M (包含ZA和待签消息M)进行压缩;在验证过程之前,要用密码杂凑函数对M′(包含ZA和验证消息M′)进行压缩。

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

数字签名生成流程:

关键参数说明:

ZA=H256(ENT LA || IDA || a || b || xG || yG || xA || yA) (SM3算法做摘要)

ENT LA : 用户ID的位长度

IDA :用户ID

xA  :公钥X

yA  :公钥Y

M(—)   :ZA || M (ZA 与 M拼接)

e   : 密码杂凑函数作用于消息M的输出值(SM3(ZA||M)预处理得到的结果)

k   : [1,n-1]范围内的随机数

r   : (e+x1)mod n  (mod同余定理)

S   :((1+dA)-1 *(k-r*dA)) mod n  (dA用户的私钥 )

相关文章

  • 创建数字钱包(一)账号生成

    椭圆曲线数字签名算法生成私钥 Secp256k1通过椭圆曲线数字签名算法生成私钥和公钥,其中SEC(Standar...

  • 数字签名

    数字签名过程:A-->B发邮件 A先对原文用哈希算法生成摘要,再用私钥对摘要进行加密生成数字签名,将原文与数字签名...

  • 椭圆加密简介

    椭圆加密算法 区块链入门时候最难理解的应该就时候这个椭圆加密算法,椭圆加密算法用于生成公钥生成,现在国密SM2算法...

  • 数字签名和数字证书

    数字签名 数字签名是什么?--阮一峰数字签名--百度百科 数字签名的流程 用哈希函数先对报文生成摘要 用私钥对摘要...

  • 加密算法 IPFS

    加密算法 Ed25519: 数字签名算法 生成公私钥对,可做签名 验证等。 Salsa20: 流加密算法

  • 简单的学习下以太坊的椭圆曲线签名

    以太坊数字签名,几乎完全沿用了比特币的数字签名算法ECDSA-secp256k1。只有哈希的生成方式不一样。ECD...

  • 密码学:RSA

    RSA算法有两个作用一个是加密一个是数字签名 数字签名 程序开发证书生成 iOS 中的相关函数 注意

  • 区块链开发——数字签名扩展 #C02

    本篇为资料整理 数字签名算法 常见的数字签名算法主要有RSA、DSA、ECDSA三种。 RSA数字签名算法 RSA...

  • 好奇心日报分享功能的流程和原型

    业务流程 页面流程 原型 优点: 分享功能应用场景丰富 生成图片分享功能很赞 参见:产品百天-功能-生成图片分享-...

  • 4.2 RSA数字签名技术

    数字签名技术 - RSA数字签名技术 RSA算法不仅是非对称加密算法,也是数字签名算法中的主力军,和MD、SHA系...

网友评论

      本文标题:SM2算法功能简述(一) 数字签名生成流程

      本文链接:https://www.haomeiwen.com/subject/dphcrdtx.html