[发明专利]一种用于椭圆曲线密码的倍点运算方法及系统有效
申请号: | 202010226416.0 | 申请日: | 2020-03-26 |
公开(公告)号: | CN111538480B | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 彭金辉;张朝阳;雷宗华;廖正赟;刘武忠;卫志刚 | 申请(专利权)人: | 郑州信大捷安信息技术股份有限公司 |
主分类号: | G06F7/72 | 分类号: | G06F7/72;H04L9/30 |
代理公司: | 郑州德勤知识产权代理有限公司 41128 | 代理人: | 张微微 |
地址: | 450000 河南省*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 椭圆 曲线 密码 运算 方法 系统 | ||
本发明提出一种用于椭圆曲线密码的倍点运算方法,包括:根据椭圆曲线阶的位数N比特计算椭圆曲线上点(x,y)占用空间;将椭圆曲线阶的位数N依据V比特划分为(N+V‑1)/V份单元,计算椭圆曲线上点(x,y)的数量和查找表的大小;根据查找表的大小和设备内存大小计算V的最大值;计算并依次计算k*2iVG,其中,k∈[1,2v‑1],并根据计算的结果生成划分的各个单元的查找表;计算N%V,并计算其中,k∈[1,2N%V‑1];依据K的取值不同依次从划分的各个单元的查找表中获取相应计算结果并进行点加运算获得椭圆曲线基点G的K倍点[K]G的点乘结果;本发明根据设备资源可动态构造查找表、提高倍点运算速度。
技术领域
本发明涉及密码技术领域,具体涉及一种用于椭圆曲线密码的倍点运算方法及系统。
背景技术
椭圆曲线密码(Elliptic Curve Cryptography,ECC)属于非对称密码体制,ECC具有密钥长度短、加解密速度快、对计算环境要求低、在需要通信时对带宽要求低等特点,因此,近年来,ECC被广泛应用于商用密码领域。国密SM2也是非对称密码体制,是一种基于ECC的非对称密码体制。
SM2椭圆曲线算法包括SM2加密/解密密码算法和SM2签名/验签密码算法,在SM2签名、验签和加密算法过程中,需要计算ECC椭圆曲线上一个固定点G的倍点,即计算[k]G,其中k为随机数,倍点运算是关键的一步,也是耗时最长的一步。目前,倍点运算的算法主要采用二进制展开法、加减法、滑动窗法、查表法等,其中以查表法计算速度最快,但是查表法存在占用资源(内存、闪存等)大的缺陷,已有实现并不能动态地适配各种设备资源,同样的算法在PC上可以正常有效地工作,但是在资源有限的设备中就不能正常工作。
因此如何根据设备资源来动态构造查找表、提高倍点运算的速度是目前急需解决的问题。
发明内容
本发明针对上述问题,有必要提供一种用于椭圆曲线密码的倍点运算方法及系统,其能够根据设备资源来动态构造查找表、提高倍点运算的速度。
本发明第一方面提出一种用于椭圆曲线密码的倍点运算方法,该方法包括:参数确定过程、查找表生成过程和倍点运算过程;
参数确定过程:
根据椭圆曲线阶的位数N比特计算椭圆曲线上点(x,y)的占用空间;
设定V比特,依据V比特将椭圆曲线阶的位数N划分为(N+V-1)/V份单元,计算椭圆曲线上点(x,y)的数量;
根据所述椭圆曲线上点(x,y)的数量计算查找表的大小;
根据所述查找表的大小和设备内存大小计算V的最大值;
查找表生成过程:
计算对每个k∈[1,2V-1],依次计算k*2iVG,其中,G为基点;并根据计算的结果生成所述划分的各个单元的查找表,存储于所述设备内存中;
计算N%V,并计算其中,k∈[1,2N%V-1];倍点运算过程:
依据K的取值不同依次从所述划分的各个单元的查找表中获取相应的计算结果并进行点加运算后获得椭圆曲线基点G的K倍点[K]G的点乘结果。
进一步的,所述椭圆曲线上点(x,y)的数量计算具体为:
根据所述椭圆曲线上点(x,y)的数量计算查找表的大小具体为:
根据所述查找表的大小和设备内存大小计算V的最大值具体为:
令计算出V的最大值;其中S为设备内存,单位为字节。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州信大捷安信息技术股份有限公司,未经郑州信大捷安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010226416.0/2.html,转载请声明来源钻瓜专利网。