【技术实现步骤摘要】
用于SM2的快速安全硬件乘法器及其应用
本专利技术涉及的是一种信息安全领域的技术,具体是一种用于SM2的快速安全硬件乘法器及其应用。
技术介绍
现有的Montgomery模乘运算是SM2加密计算过程中的重要环节,其算法过程为:现有技术硬件结构复杂,运算时间长,没有有效地针对SM2参数进行设计。通过分析算法可见:第5步和第6步,第8步和第9步之间没有数据相关性,即后面一步的输入值不依赖于前面一步的计算结果,因此可以使用两个独立的乘加器来并行执行这几步运算,尤其是第8步和第9步的并行计算,可以将内层循环的计算时间缩短一半,从而起到良好的加速效果。
技术实现思路
本专利技术针对现有技术存在的上述不足,提出一种用于SM2的快速安全硬件乘法器及其应用,利用参数特点减少所需耗费的时钟周期;执行(c,z)=a+xy+b运算,其数据通路能够尽可能缩短关键路径上的延时,能够大幅度缩短Montgomery模乘运算延时的同时,针对算法中存在的侧信道攻击漏洞采取了有效的防护手段,使其在快速执行SM ...
【技术保护点】
1.一种用于SM2的快速安全硬件乘法器,其特征在于,包括:乘加模块、模乘控制器、用于存放计算中间结果的寄存器堆和减法器,其中:乘加模块包含两个独立的乘加器,每个乘加器对64位操作数执行(c,z)=a+xy+b的运算,模乘控制器分别与乘加模块和寄存器堆相连并按时钟周期发送执行指令,乘加模块输出计算中间结果至寄存器堆,寄存器堆的输出端分别与乘加模块的输入端以及减法器的输入端相连以实现循环计算和结果输出,减法器的输出端与寄存器堆的输出端与对外接口相连以输出最终结果。/n
【技术特征摘要】
1.一种用于SM2的快速安全硬件乘法器,其特征在于,包括:乘加模块、模乘控制器、用于存放计算中间结果的寄存器堆和减法器,其中:乘加模块包含两个独立的乘加器,每个乘加器对64位操作数执行(c,z)=a+xy+b的运算,模乘控制器分别与乘加模块和寄存器堆相连并按时钟周期发送执行指令,乘加模块输出计算中间结果至寄存器堆,寄存器堆的输出端分别与乘加模块的输入端以及减法器的输入端相连以实现循环计算和结果输出,减法器的输出端与寄存器堆的输出端与对外接口相连以输出最终结果。
2.根据权利要求1所述的快速安全硬件乘法器,其特征是,所述的乘加模块包括两个并行执行(c,z)=a+xy+b的乘加器,不同状态根据Montgomery模乘算法选择对应的数据输入至乘加器的输入端口a,x,y,b。
3.根据权利要求2所述的快速安全硬件乘法器,其特征是,进一步包括若干选择器,其中:模乘控制器和第一选择器均与乘加模块相连并分别输入状态信息state和算法输入数据P,乘加模块根据输入数据A、B、P和状态信息state进行(c,z)=a+xy+b的运算并输出结果至寄存器堆,寄存器堆输出数据Z的中间结果至第四选择器,输出中间数据ti,ca,cb,v,Z至乘加模块,减法器根据寄存器堆输出数据Z以及算法输入数据P分别输出计算结果Z-P和借位标志s至第四选择器,第四选择器根据借位标志s判断输出模乘运算结果。
4.根据权利要求1或2所述的快速安全硬件乘法器,其特征是,所述的模乘控制器,通过状态转换的方式控制算法的执行顺序,在收到start信号之后,其状态由空闲转为开始运行,之后每个时钟周期状态转换一次,同时向乘加模块和寄存器堆发送当前状态下的执行命令。
5.根据权利要求3所述的快速安全硬件乘法器,其特征是,所述的乘加模块具体包括:两个并行执行(c,z)=a+xy+b的乘加器及其对应的选择器,其中:第二选择器的输出端与第一乘加器的输入端口a,x,y,b相连,第三选择器的输出端与第二乘加器的输入端口a,x,y,b相连,两个乘加器分别输出两组128位中间结果的高64位数据c和低64位数据z至寄存器堆的中间数据ti,ca,cb,v,Z,不同状态下两个乘加器输出数据的排列组合包括:{(Z0,Ai,B0,0),(0,0,0,0)},{(0,Z0,w,0),(0,0,0,0)},{(Z0,ti,P0,0),(Z1,Ai,B1,ca)},{(Zj,ti,Pj,cb),(Zj+1,Ai,Bj+1,ca)},{(Zm-1,ti,Pm...
【专利技术属性】
技术研发人员:谷大武,王腾飞,陆海宁,张海峰,
申请(专利权)人:上海交通大学,北京智芯微电子科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。