实现SM2算法的多倍点计算方法、装置与流程

文档序号:18247755发布日期:2019-07-24 09:29阅读:1863来源:国知局
导航: X技术> 最新专利> 电子通信装置的制造及其应用技术
实现SM2算法的多倍点计算方法、装置与流程

本发明涉及计算机领域,尤其涉及一种实现SM2算法的多倍点计算方法、装置。



背景技术:

SM2算法是基于ECC算法设计的一种特定的椭圆曲线加密算法,基于有限域空间点的多倍点运算实现加密、解密、签名、验证等功能。SM2多倍点运算是SM2算法中耗时最久的运算,严重制约了加密器件的加密性能,多倍点可以分解为点加和倍点运算。由于SM2是特定参数的椭圆曲线,所以可以针对该曲线做专门的优化,从而加快SM2点乘运算的速度。SM2算法实现椭圆曲线的多倍点计算如下:

Q=[k]P=P+P+P+…P。

现有技术实现椭圆曲线多倍点运算可采用二进制展开法计算,二进制展开法的算法如下:

输入:点P,l比特的整数

输出:Q=[k]P

1)Q=0;

2)For(j=l-1;j>0;j=j-1)

Q=[2]Q;

If(kj==1)

Q=Q+P;

3)输出Q。

在使用二进制展开算法计算多倍点时,假设k的长度与P的长度相等为l,点加性能为1.5D,倍点性能为D,其中,D为计算机进行一次运算的时间。不考虑坐标转化的情况下,运算时间为t=l*(1.5D+D)=2.5lD,运算速度非常慢。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术中运算速度慢的缺陷,提供一种实现SM2算法的多倍点计算方法、装置,可提高运算速度。

本发明解决其技术问题所采用的技术方案是:构造一种实现SM2算法的多倍点计算方法,用于计算整数P的多倍点,包括:

步骤S10.获取二进制数k,并将k从低位开始进行窗口划分,以获取w个位串K,且每个位串K的长度为d,其中,w大于1;

步骤S20.将初始的i设置为d-1,将初始的Q设置为0;

步骤S30.逐个窗口扫描,以获取每个位串K的第i位Kiw-1、…、Ki1、Ki0,且根据公式1更新Q值:

Q=2Q, 公式1;

步骤S40.判断Kiw-1、…、Ki1、Ki0是否全为0,若否,则执行步骤S50;若是,则执行步骤S60;

步骤S50.根据Kiw-1、…、Ki1、Ki0,从预存储的多个点乘值中获取相对应的点乘值M,并根据公式2更新Q值,其中,预存储的多个点乘值是P分别与2w个不同的长度为w的位串的点乘值;

Q=Q+M, 公式2;

步骤S60.将当前i减1,并判断当前i是否小于0,若否,则执行步骤S30,若是,则执行步骤S70;

步骤S70.输出当前Q值。

优选地,在步骤S10中,将k进行窗口划分,包括:

判断k的最高的位串的长度是否为d,若否,则在k的最高位前填充0,以使最高的位串的长度为d。

本发明还构造一种实现SM2算法的多倍点计算装置,用于计算整数P的多倍点,包括:

预置点存储器,用于预存储P分别与2w个不同的长度为w的位串的点乘值;

多倍点运算控制器,用于获取二进制数k,并将k从低位开始进行窗口划分,以获取w个位串K,且每个位串K的长度为d,其中,w大于1,而且,对于从d-1开始至0的每个i,均逐个窗口扫描,以获取每个位串K的第i位 Kiw-1、…、Ki1、Ki0,并根据Kiw-1、…、Ki1、Ki0,从预存储的多个点乘值中获取相对应的点乘值M,然后,将点乘值M送入点加点倍运算电路;还用于在判断当前i小于0时,输出当前Q值;

点加点倍运算电路,用于先根据公式1更新Q值,并在判断Kiw-1、…、Ki1、 Ki0不全为0时,再根据公式2更新Q值,并向所述多倍点运算控制器返回当前Q值;

Q=2Q, 公式1;

Q=Q+M, 公式2。

优选地,所述多倍点运算控制器,用于在判断出k的最高的位串的长度小于d,在k的最高位前填充0,以使最高的位串的长度为d。

本发明还构造一种实现SM2算法的多倍点计算装置,包括处理器及存储器,所述存储器存储有计算机程序,其特征在于,所述处理器在执行所述计算机程序时实现以上所述的方法的步骤。

实施本发明的技术方案,通过预置多倍点并使用窗口算法,使用少量的存储空间便可加快SM2的多倍点计算,带来性能的成倍增加。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图中:

图1是本发明实现SM2算法的多倍点计算方法实施例一的流程图;

图2是本发明实现SM2算法的多倍点计算装置实施例一的逻辑结构图。

具体实施方式

下面结合附图详细说明本发明的具体实施方式。

在此记载的具体实施方式/实施例为本发明的特定的具体实施方式,用于说明本发明的构思,均是解释性和示例性的,不应解释为对本发明实施方式及本发明范围的限制。除在此记载的实施例外,本领域技术人员还能够基于本申请权利要求书和说明书所公开的内容采用显而易见的其它技术方案,这些技术方案包括采用对在此记载的实施例的做出任何显而易见的替换和修改的技术方案,都在本发明的保护范围之内。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

对于长度为1的大数k,其二进制表示为:可以从低位开始,将其划分为w个二进制的位串K,每个位串的长度为d,需说明的是,若1 不是d的倍数,可在k的最高位前填充合适数量的0,以使k的长度变为t,而且,这样,k可以表示为:

k=(kt-1,kt-2,…,k1,k0)2=(Kw-1||…||K1||K0)2

将位串Kj写作代表矩阵的行,其中各列会同时处理。

另外,可预先设置2w个不同的长度为w的位串(aw-1,aw-2,…,a1,a0)2,即,第一位串涵盖了所有的长度为w的位串,然后,预计算如下定义的点乘:

[aw-1,aw-2,…,a1,a0]P=aw-12(w-1)dP+aw-22(w-2)dP+…+a12dP+a0P

而且,将所计算的所有点乘结果与曲线参数一样,当做常量存储起来。

下面结合图1说明实现SM2算法的多倍点计算过程:

步骤S10.获取二进制数k,并将k从低位开始进行窗口划分,以获取w个位串K,且每个位串K的长度为d,其中,w大于1;

步骤S20.将初始的i设置为d-1,将初始的Q设置为0;

步骤S30.逐个窗口扫描,以获取每个位串K的第i位Kiw-1、…、Ki1、Ki0,且根据公式1更新Q值:

Q=2Q, 公式1;

步骤S40.判断Kiw-1、…、Ki1、Ki0是否全为0,若否,则执行步骤S50;若是,则执行步骤S60;

步骤S50.根据Kiw-1、…、Ki1、Ki0,从预存储的多个点乘值中获取相对应的点乘值M,并根据公式2更新Q值,其中,预存储的多个点乘值是P分别与2w个不同的长度为w的位串的点乘值;

Q=Q+M, 公式2;

步骤S60.将当前i减1,并判断当前i是否小于0,若否,则执行步骤S30,若是,则执行步骤S70;

步骤S70.输出当前Q值。

实施本发明的技术方案,通过预置多倍点并使用窗口算法,使用少量的存储空间便可加快SM2的多倍点计算,带来性能的成倍增加。

在一个具体实施例中,假设窗口宽度w为4,长度为4的二进制位串 (a3,a2,a1,a0)2共有24(16)种可能,因此,需预计算每一种长度为4的可能的位串分别与P的点乘值:a3·23dP+a2·22dP+a1·2dP+a0P。

若要计算Q=kP,对于一个输入的二进制数k,若其长度(包括最高位填充0后的长度)为t,则k可以表示为:k=(kt-1,kt-2,…,k1,k0)2,对其进行窗口划分后,每个位串K的长度点P∈E(Fq),此时,k可以表示为: k=(K3||K2||K1||K0)2,其中每个Kj的长度为d,用表示Kj的第i位,j=3、2、 1,i=d-1、…、1、0。

首先,设初始的Q设置为0,即无穷远点;

接着,对于i从d-1到0,重复执行以下两个步骤:

1)Q=2Q;

2)若不全为0,则根据下公式更新Q:

最后,返回Q值。

本发明通过模运算优化和点运算优化,使用少量的存储空间,带来性能的成倍增加,具体地:

当窗口w=4时,运算时间为:

当窗口w=5时,运算时间为:

当窗口w=6时,运算时间为:

当窗口w=7时,运算时间为:

图2是本发明实现SM2算法的多倍点计算装置实施例一的逻辑结构图,该实施例的多倍点计算装置包括预置点存储器10、多倍点运算控制器20及点加点倍运算电路30,其中,预置点存储器10用于预存储P分别与2w个不同的长度为w的位串的点乘值;多倍点运算控制器20用于获取二进制数k,并将k从低位开始进行窗口划分,以获取w个位串K,且每个位串K的长度为 d,其中,w大于1,而且,对于从d-1开始至0的每个i,均逐个窗口扫描,以获取每个位串K的第i位Kiw-1、…、Ki1、Ki0,并根据Kiw-1、…、Ki1、Ki0,从预存储的多个点乘值中获取相对应的点乘值M,然后,将点乘值M送入点加点倍运算电路30;还用于在判断当前i小于0时,输出当前Q值;点加点倍运算电路30用于先根据公式1更新Q值,并在判断Kiw-1、…、Ki1、Ki0不全为0时,再根据公式2更新Q值,并向多倍点运算控制器20返回当前Q值;

Q=2Q, 公式1;

Q=Q+M, 公式2。

在该实施例中,首先,通过软件预计算多个P点的倍数点(点乘值),并预置到预置点存储器10中,预置点存储器10可以使用Flash,Ram,Rom等存储体作为实现载体。当整数k输入到多倍点运算控制器20中时,多倍点运算控制器20对k进行窗口划分,并逐个窗口扫描k值,然后根据当前窗口k 值从预置点存储器10获取相应的多倍点的值,送到点加点倍运算电路30进行计算。最后,由多倍点运算控制器30将计算最终结果Q输出。该实施例的技术方案通过使用少量的存储空间,就可减少多倍点的运算量,提高了SM2多倍点计算速度。

关于预置点存储器10,需说明的是,若窗口长度w=4,k为256比特的大数,可将k分割成四个位串,每个位串均为64比特,即d=64。而且,由于 (a3,a2,a1,a0)2一共有16种可能,所以,a3·2192P+a2·2128P+a1·264P+a0P,ai∈{0,1}也一共有16种可能,分别对应的预计算的点乘值如下:

0000对应的是0P(即无穷远点,可不存储);

0001对应的是1P(即P,已经有的,可不存储);

0010对应的是264P;

0011对应的是264P;

0100对应的是2128P;

1111对应的是(2192+2128+264+1)P

在此需说明的是,在实际应用中,由于0000对应的点乘值为0,0001对应的点乘值为P,所以,这两个值无需在预置点存储器10中存储,实际只存储后14 个点就可以。

关于算法的计算量,需说明的是,假设k的长度与P的长度相等,均为l,点加性能为1.5D,倍点性能为D,不考虑坐标转化的情况下,则

当w=4时,需要保存的点乘值为14(24-2)个,运算时间为:

当w=5时,需要保存的点乘值为30(25-2)个,运算时间为:

当w=6时,需要保存的点乘值为62(26-2)个,运算时间为:

当w=7时,需要保存的点乘值为126(27-2)个,运算时间为:

本发明还构造一种实现SM2算法的多倍点计算装置,该多倍点计算装置包括处理器及存储器,而且,存储器存储有计算机程序,处理器在执行该计算机程序时实现以上方法的步骤。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何纂改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

完整全部详细技术资料下载
当前第1页 1  2  3 
相关技术
  • 会话密钥传输方法、设备及计算...
  • 会话密钥处理方法、设备及计算...
  • 一种简单的偏振编码量子密钥分...
  • 一种数字签名方法、装置及存储...
  • 一种电力载波系统的制作方法
  • 用于复制密码机设备的方法和系...
  • 一种可追踪用户身份的云共享数...
  • 加密的方法和装置、存储介质与...
  • 动态密码发送方法、装置及计算...
  • 基于量子卫星密钥网络的电力业...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
算法实现相关技术
  • 基于区块链系统的网络交易方法及装置与流程
  • 通过传感器检测实现自适应照明的方法及系统与流程
  • 一种基于svm算法的干细胞活性检测系统的制造方法与工艺
  • 实现人脸图像融合的方法及装置与流程
  • 一种满足差分隐私的协同过滤推荐方法与流程
  • 一种实现协同工作的控制方法及系统与流程
  • 应用于WDM业务疏导网络中的加密动态恢复方法与流程
  • 一种采用闭环控制技术实现自动调温的减速器的制造方法与工艺
  • 一种基站及其预失真参数更新方法与制造工艺
  • 一种无线网络融合的实现方法与制造工艺

深圳SEO优化公司南联百度seo公司果洛网站推广工具多少钱肇庆至尊标王报价合肥网站推广岳阳网站推广公司伊春推广网站和田网站搜索优化报价潍坊百度竞价多少钱张家界关键词按天收费哪家好南联百度网站优化排名报价柳州百度竞价报价北京网络推广多少钱黔东南网站关键词优化公司临沂网站优化软件报价观澜百度网站优化排名公司凉山企业网站制作价格铜川外贸网站设计多少钱北京网站推广方案报价沧州关键词按天收费哪家好揭阳网站搜索优化推荐怒江推广网站推荐金昌关键词按天计费杭州百度爱采购价格通辽百度网站优化排名报价德宏设计公司网站报价光明关键词按天扣费多少钱长春关键词排名包年推广公司汉中模板网站建设公司铜陵网站制作设计衢州模板制作多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化