一种针对SM2算法的掩码运算方法及装置与流程

文档序号:23419248发布日期:2020-12-25 11:41阅读:来源:国知局

技术特征:

1.一种针对sm2算法的掩码运算方法,其特征在于,所述掩码运算方法是通过预置点和随机数的方式将进行[k]g运算中的随机数k进行掩盖,sm2算法运算过程中[k]g计算具体包括:

在芯片内部预置点p0=[r-1]g和第一随机数r;其中,p0为有限域椭圆曲线上的点,g为椭圆曲线上的基点;

在芯片内部生成第二随机数d;

通过第一随机数r和第二随机数d计算生成第三随机数k=d·r-1

计算生成点p1=[k]g=[d·r-1]g=[d]·[r-1]g=[d]p0。

2.根据权利要求1所述的掩码运算方法,其特征在于,在计算生成点p1之后还包括坐标系的转换,具体包括:

将点p0从仿射坐标系转换为雅可比坐标系下,p0=(x0,y0,z0);

计算点p1=[d]p0=(x1,y1,z1),再将点p1转换至仿射坐标系下p1=(x,y)。

3.根据权利要求2所述的掩码运算方法,其特征在于,在计算生成点p1之后还包括点p1的验证和输出,具体包括:

验证点p1是否在椭圆曲线上:若y2=x3+ax+b,则验证成功,输出点p1=[k]g=(x,y);否则验证失败,输出错误标识。

4.根据权利要求3所述的掩码运算方法,其特征在于,在验证点p1之后还包括预置点p0和第一随机数r的更新,具体包括:

获取1比特第四随机数b,更新第一随机数r=(-1)b·2r,点p0=[r-1]g=(-1)b·2·[r-1]g。

5.根据权利要求1-4之一所述的掩码运算方法,其特征在于,在获取到计算生成的点p1=[k]g=(x,y)和第三随机数k之后,获取sm2算法的签名值过程具体包括:

将x的数据类型转换成整数,计算r’=(e+x)modn,若r’=0或r’+k=n,则输出错误标识,并返回重新计算生成第三随机数k和点p1;

计算s’=(1+da)-1·(k-r·da)modn,若s’=0,则输出错误标识,并返回重新计算生成第三随机数k和点p1;

将获得的r’、s’的数据类型转换为字符串,消息的签名值为(r’,s’);

其中,e为消息经过哈希计算后的值,da为私钥。

6.一种针对sm2算法的掩码运算装置,其特征在于,所述掩码运算装置包括:预置模块、随机数生成模块、随机数运算模块和点乘运算模块;

所述预置模块,用于在芯片内部预置点p0=[r-1]g和第一随机数r;其中,p0为有限域椭圆曲线上的点,n为椭圆曲线的阶数,g为椭圆曲线上的基点;

所述随机数生成模块,用于在芯片内部生成第二随机数d;

所述随机数运算模块,用于通过第一随机数r和第二随机数d计算生成第三随机数k=d·r-1

所述点乘运算模块,用于计算生成点p1=[k]g=[d·r-1]g=[d]·[r-1]g=[d]·p0。

7.根据权利要求6所述的掩码运算装置,其特征在于,所述掩码运算装置还包括坐标转换模块;

所述坐标转换模块,用于将点p0从仿射坐标系转换为雅可比坐标系下,p0=(x0,y0,z0);

所述点乘运算模块,还用于计算点p1=[d]·p0=(x1,y1,z1);

所述坐标转换模块,还用于将点p1转换至仿射坐标系下p1=(x,y)。

8.根据权利要求6所述的掩码运算装置,其特征在于,所述掩码运算装置还包括点验证模块和输出模块;

所述点验证模块,用于验证点p1是否在椭圆曲线上:若y2=x3+ax+b,则验证成功;否则验证失败;

所述输出模块,用于在所述点验证模块验证成功时,输出点p1=[k]g=(x,y);在验证失败时,输出错误标识。

9.根据权利要求6所述的掩码运算装置,其特征在于,所述掩码运算装置还包括更新模块;

所述更新模块,用于获取1比特第四随机数b,更新第一随机数r=(-1)b·2r,点p0=[r-1]g=(-1)b·2·[r-1]g。

10.根据权利要求6-9之一所述的掩码运算装置,其特征在于,所述掩码运算装置还包括签名生成模块;

所述签名生成模块,用于调用预置模块、随机数生成模块、随机数运算模块、点乘运算模块、坐标转换模块、点验证模块和输出模块,获取到计算生成的点p1=[k]g=(x,y)和第三随机数k后,再通过所述点p1和第三随机数k进行签名值的生成;

所述签名值的生成具体包括:

将x的数据类型转换成整数,计算r’=(e+x)modn,若r’=0或r’+k=n,则输出错误标识,并返回重新计算生成第三随机数k和点p1;

计算s’=(1+da)-1·(k-r·da)modn,若s’=0,则输出错误标识,并返回重新计算生成第三随机数k和点p1;

将获得的r’、s’的数据类型转换为字符串,消息的签名值为(r’,s’);

其中,e为消息经过哈希计算后的值,da为私钥。


技术总结
本发明涉及一种针对SM2算法的掩码运算方法及装置,掩码运算方法是通过预置点和随机数的方式将进行[k]G运算中的随机数k进行掩盖,SM2算法运算过程中[k]G计算具体包括:在芯片内部预置点P0=[r‑1]G和第一随机数r;P0为有限域椭圆曲线上的点,G为椭圆曲线上的基点;在芯片内部生成第二随机数d;通过第一随机数r和第二随机数d计算生成第三随机数k=d·r‑1;计算生成点P1=[k]G=[d·r‑1]G=[d]·[r‑1]G=[d]P0,掩码运算装置包括预置模块、随机数生成模块、随机数运算模块和点乘运算模块;本发明能够增强真实参数信息k和功耗分析获取信息的破解难度,有效应对功耗分析攻击。

技术研发人员:彭金辉;雷宗华;王阳阳;刘武忠;卫志刚
受保护的技术使用者:郑州信大捷安信息技术股份有限公司
技术研发日:2020.09.15
技术公布日:2020.12.25
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1