新闻  |   论坛  |   博客  |   在线研讨会
SM2算法功能简述(一)
hanini | 2023-03-15 11:25:33    阅读:270   发布文章


数字签名生成流程

 

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

 

数字签名生成流程:

1678849734353.png

 

关键参数说明:

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 用户的私钥 )


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
minifoxmai  2023-03-20 15:38:09 

其实这些代码都有现成的网上很多,一般用国密的项目都配一个加密 IC,如果想要代码,可以跟IC厂商要一份配套的就行了

Testwf  2023-03-20 15:24:49 

那要想使用的话,还需要自己去写代码吗,有现成的代码,最近需要用到国密

ChateauMargaux  2023-03-20 15:17:10 

可以看下凌科家的LKT4305GM芯片,我司刚好用过。

13466516880  2023-03-20 14:58:09 

有没有支持SM2算法的芯片推荐一下

minifoxmai  2023-03-20 14:26:27 

@ xiaoyuzhou1228 肯定消息量越大签名时间越长,但是不存在线性关系。消息量需要先经过SM3摘要后再使用速度非常快,主要是后面的点乘运算占时间。

xiaoyuzhou1228  2023-03-20 13:59:22 

SM2算法的签名速度和消息量成正比吗?

sunxiang0506  2023-03-20 13:53:30 

用过LKT的加密芯片,不错

hanini  2023-03-20 13:38:44 

据说国密SM2算法是一种高安全的算法,使用过程中有较强的安全保障,有支持这种算法的加密芯片吗

kessy1  2023-03-20 11:26:44 

公钥用来验证签名

绿茶与拿铁  2023-03-17 15:18:35 

文中说到私钥用于产生签名,那公钥呢?

114W1  2023-03-17 15:16:12 

据说凌科芯安有一款支持SM2算法的芯片,具体的可以咨询他们家客服

ChateauMargaux  2023-03-17 15:09:07 

楼主可以推荐一款支持SM2算法的芯片吗?

hanini  2023-03-17 14:36:22 

ECC:椭圆曲线密码,是RSA的后继更短的密钥长度、更快的签名、更快的密钥协商。SM2:国密即国家密码局认定的国产密码算法。该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。

sunxiang0506  2023-03-17 14:08:12 

SM2算法和ECC算法有什么区别,哪种更好?

Testwf  2023-03-17 14:03:30 

签名长度64字节,用户ID长度最大可定义8K字节

13466516880  2023-03-15 17:04:04 

签名值长度是多少,用户ID有什么限制吗

114W1  2023-03-15 16:54:30 

简单讲,SM2签名速度快,验签速度慢,这点和RSA算法的特性正好相反。另外,加解密速度和验签速度相当。

绿茶与拿铁  2023-03-15 16:21:19 

SM2算法速度快吗?验签速度如何?

kessy1  2023-03-15 15:14:38 

签名验签功能不是加解密

xiaoyuzhou1228  2023-03-15 14:43:50 

公钥和私钥哪个用于加密  哪个用于解密?

推荐文章
最近访客