[发明专利]一种针对SM2算法的掩码运算方法及装置有效
申请号: | 202010966633.3 | 申请日: | 2020-09-15 |
公开(公告)号: | CN112131613B | 公开(公告)日: | 2022-02-22 |
发明(设计)人: | 彭金辉;雷宗华;王阳阳;刘武忠;卫志刚 | 申请(专利权)人: | 郑州信大捷安信息技术股份有限公司 |
主分类号: | G06F21/72 | 分类号: | G06F21/72;G06F21/60 |
代理公司: | 北京鑫浩联德专利代理事务所(普通合伙) 11380 | 代理人: | 李荷香 |
地址: | 450003 河南省*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 sm2 算法 掩码 运算 方法 装置 | ||
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)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州信大捷安信息技术股份有限公司,未经郑州信大捷安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010966633.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:可调节生产姿势的电动产床
- 下一篇:用于产科的电动产床