[发明专利]一种SM2算法的掩码运算方法及装置有效
申请号: | 202010968059.5 | 申请日: | 2020-09-15 |
公开(公告)号: | CN112131616B | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 彭金辉;雷宗华;习道彬;卫志刚;刘武忠 | 申请(专利权)人: | 郑州信大捷安信息技术股份有限公司 |
主分类号: | G06F21/75 | 分类号: | G06F21/75;G06F21/60 |
代理公司: | 北京鑫浩联德专利代理事务所(普通合伙) 11380 | 代理人: | 李荷香 |
地址: | 450003 河南省*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sm2 算法 掩码 运算 方法 装置 | ||
1.一种SM2算法的掩码运算方法,其特征在于,所述掩码运算方法是通过预置点和随机数的方式将进行[k]G运算中的随机数k进行掩盖,SM2算法运算过程中[k]G计算具体包括:
在芯片内部预置点P0=[n-r]G和第一随机数r;其中,P0为有限域椭圆曲线上的点,n为椭圆曲线的阶数,G为椭圆曲线上的基点;
在芯片内部生成第二随机数d,计算生成点P1=[d]G;
通过第一随机数r和第二随机数d计算生成第三随机数k=d-r;
计算生成点P2=[k]G=[d-r]G=[d]G-[r]G=[d]G+[n-r]G=P0+P1。
2.根据权利要求1所述的掩码运算方法,其特征在于,在计算生成点P2之后还包括坐标系的转换,具体包括:
将点P0和P1从仿射坐标系转换为雅可比坐标系下,P0=(x0,y0,z0),P1=(x1,y1,z1);
计算点P2=P0+P1=(x0,y0,z0)+(x1,y1,z1)=(x2,y2,z2),再将点P2转换至仿射坐标系下P2=(x,y)。
3.根据权利要求2所述的掩码运算方法,其特征在于,在计算生成点P2之后还包括点P2的验证和输出,具体包括:
验证点P2是否在椭圆曲线上:若y2=x3+ax+b,则验证成功,输出点P2=[k]G=(x,y);否则验证失败,输出错误标识。
4.根据权利要求3所述的掩码运算方法,其特征在于,在验证点P2之后还包括预置点P0和第一随机数r的更新,具体包括:
获取1比特第四随机数b,更新第一随机数r=(-1)b·2r,点P0=[n-r]G=(-1)b·2·[n-r]G。
5.根据权利要求4所述的掩码运算方法,其特征在于,在获取到计算生成的点P2=[k]G=(x,y)和随机数k之后,获取SM2算法的签名值过程具体包括:
将x的数据类型转换成整数,计算r’=(e+x)modn,若r’=0或r’+k=n,则输出错误标识,并返回重新计算生成第三随机数k和生成点P2;
计算s’=(1+dA)-1·(k-r·dA)modn,若s’=0,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
将获得的r’、s’的数据类型转换为字符串,消息的签名值为(r’,s’);
其中,e为消息经过哈希计算后的值,dA为私钥。
6.一种SM2算法的掩码运算装置,其特征在于,所述掩码运算装置包括:预置模块、随机数生成模块、随机数运算模块和点乘运算模块、点加运算模块;
所述预置模块,用于在芯片内部预置点P0=[n-r]G和第一随机数r;其中,P0为有限域椭圆曲线上的点,n为椭圆曲线的阶数,G为椭圆曲线上的基点;
所述随机数生成模块,用于在芯片内部生成第二随机数d;
所述点乘运算模块,用于计算生成点P1=[d]G;
所述随机数运算模块,用于通过第一随机数r和第二随机数d计算生成第三随机数k=d-r;
所述点加运算模块,用于计算生成点
P2=[k]G=[d-r]G=[d]G-[r]G=[d]G+[n-r]G=P0+P1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州信大捷安信息技术股份有限公司,未经郑州信大捷安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010968059.5/1.html,转载请声明来源钻瓜专利网。