【技术实现步骤摘要】
一种用于椭圆曲线密码的倍点运算方法及系统
本专利技术涉及密码
,具体涉及一种用于椭圆曲线密码的倍点运算方法及系统。
技术介绍
椭圆曲线密码(EllipticCurveCryptography,ECC)属于非对称密码体制,ECC具有密钥长度短、加解密速度快、对计算环境要求低、在需要通信时对带宽要求低等特点,因此,近年来,ECC被广泛应用于商用密码领域。国密SM2也是非对称密码体制,是一种基于ECC的非对称密码体制。SM2椭圆曲线算法包括SM2加密/解密密码算法和SM2签名/验签密码算法,在SM2签名、验签和加密算法过程中,需要计算ECC椭圆曲线上一个固定点G的倍点,即计算[k]G,其中k为随机数,倍点运算是关键的一步,也是耗时最长的一步。目前,倍点运算的算法主要采用二进制展开法、加减法、滑动窗法、查表法等,其中以查表法计算速度最快,但是查表法存在占用资源(内存、闪存等)大的缺陷,已有实现并不能动态地适配各种设备资源,同样的算法在PC上可以正常有效地工作,但是在资源有限的设备中就不能正常工作。因此如何根据设备资源来动态构造查找表、提高倍点运算的速度是目前急需解决的问题。
技术实现思路
本专利技术针对上述问题,有必要提供一种用于椭圆曲线密码的倍点运算方法及系统,其能够根据设备资源来动态构造查找表、提高倍点运算的速度。本专利技术第一方面提出一种用于椭圆曲线密码的倍点运算方法,该方法包括:参数确定过程、查找表生成过程和倍点运算过程;参数确定过程:根据椭圆曲线阶的 ...
【技术保护点】
1.一种用于椭圆曲线密码的倍点运算方法,其特征在于,该方法包括:参数确定过程、查找表生成过程和倍点运算过程;/n参数确定过程:/n根据椭圆曲线阶的位数N比特计算椭圆曲线上点(x,y)的占用空间;/n设定V比特,依据V比特将椭圆曲线阶的位数N划分为(N+V-1)/V份单元,计算椭圆曲线上点(x,y)的数量;/n根据所述椭圆曲线上点(x,y)的数量计算查找表的大小;/n根据所述查找表的大小和设备内存大小计算V的最大值;/n查找表生成过程:/n计算
【技术特征摘要】
1.一种用于椭圆曲线密码的倍点运算方法,其特征在于,该方法包括:参数确定过程、查找表生成过程和倍点运算过程;
参数确定过程:
根据椭圆曲线阶的位数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的点乘结果。
2.根据权利要求1所述的倍点运算方法,其特征在于,所述椭圆曲线上点(x,y)的数量计算具体为:
根据所述椭圆曲线上点(x,y)的数量计算查找表的大小具体为:
根据所述查找表的大小和设备内存大小计算V的最大值具体为:令计算出V的最大值;其中S为设备内存,单位为字节。
3.根据权利要求1或2所述的倍点运算方法,其特征在于,椭圆曲线上点(x,y)的占用空间为N/4字节。
4.根据权利要求1所述的倍点运算方法,其特征在于,所述倍点运算方法还包括标记设置过程:
将预设V的阈值设置为是否使用查找表进行倍点运算的标记,若V不小于预设的阈值时,则使用查找表进行倍点运算;否则,使用非查找表方法进行倍点运算。
5.根据权利要求4所述的倍点运算方法,其特征在于,在所述标记设置设置过程中,预先通过对使用查找表进行倍点运算和使用非查找表方法进行倍点运算的运算量进行比较来设置V的阈值。
6.一种用于椭圆曲线密码的倍点运算系统,其特征在于,所述系统包括:参数确定单元、查找表生成单元和倍点运算单元;
所述参数确定单元包括第一计算模块和划分模块;
所述划分模块,用于将椭圆曲线阶的位数...
【专利技术属性】
技术研发人员:彭金辉,张朝阳,雷宗华,廖正赟,刘武忠,卫志刚,
申请(专利权)人:郑州信大捷安信息技术股份有限公司,
类型:发明
国别省市:河南;41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。