Advertisement

该资源基于

阅读量:

2021SC@SDUSC

数字签名

1. 参数与密钥产生

参数的产生、密钥的产生与SM2加密解密算法相同。

2. 数字签名生成验证过程

1.SM2数字签名生成算法

假设有待签名的消息为M,则用于生成消息M的数字签名(r,s),由作为该操作执行者的用户A完成相应运算步骤:
(1)计算\overline{M}=Z_A || M其中ZA代表用户A的身份识别信息、部分椭圆曲线系统参数以及该用户的公开密钥组成的综合摘要信息;

(2)计算,e=H_v (\overline{M})并将生成e的数据类型转换成整数型;

(3)使用随机数发生器产生随机数k∈[1,n-1]

(4)通过椭圆曲线运算得到点(x_1, y_1), 其中G为该椭圆曲线上的生成元, 点(x_1, y_1)位于该曲线上;
(5)计算r=(x_1+e)\mod n, 当r等于零或与k之和模n等于零时, 返回至步骤(3)重新生成随机数;

(6)计算s=((1+d_A)^{-1}⋅(k-rd_A))modn,若计算的s值为0,则返回步骤(3)重新生成随机数;

通过获取(r, s)数据类型,并将其转化为字节串形式,则消息M的签名值即为此处计算所得的结果。

为了验证消息M'及其数字签名(r',s')的有效性,请确认该消息

全部评论 (0)

还没有任何评论哟~