适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件制造技术

技术编号:21453506 阅读:52 留言:0更新日期:2019-06-26 04:38
适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件,包括大数乘法器、临时变量生产器、循环进位累加器和大数减法器,输入位宽为256bit的大整数A和B通过大数乘法器得到一个位宽为512bit的大整数Z,通过Z生成临时变量X1和X2后与Z进行8次进位累加操作,每一位进位累加得到的结果Z再作为进位累加器和临时变量生成器的输入,在完成8次进位累加操作后,如果Z大于或等于大整数常量M,则将M于Z进行一次大数减法运算,否则直接输出8次循环进位累加器的结果。

【技术实现步骤摘要】
适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件
本专利技术涉及信息安全领域,尤其涉及适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件。
技术介绍
在信息安全芯片进行国密运算时,蒙哥马利模乘器是调用频率最高最耗时的模块,虽然通用算法可以适配任何曲线参数,但是针对使用频率占绝对优势的国密推荐曲线sm2p256v1,使用嵌套循环的计算方式,时间复杂度高,硬件设计复杂度高,功耗高。
技术实现思路
本专利技术的目的在于,大量减少了乘法器资源,降低了蒙哥马利模乘器的设计复杂度,降低了硬件功耗,设计适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件。本专利技术的专利技术目的是通过以下技术方案实现的:适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件,包括:大数乘法器、临时变量生产器、循环进位累加器和大数减法器,输入位宽为256bit的大整数A和B通过大数乘法器得到一个位宽为512bit的大整数Z,通过Z生成临时变量X1和X2后与Z进行8次进位累加操作,每一位进位累加得到的结果Z再作为进位累加器和临时变量生成器的输入,在完成8次进位累加操作后,如果Z大于或等于大整数常量M,则将M于Z进行一次大数减法运算,否则直接输出8次循环进位累加器的结果。进一步的,所述的大数乘法器运算方式为:Z=(Z16,...,Z0)=A×B。进一步的所述的临时变量生产器运算方式为:通过公式T=Zi、X1=T<<32-T和X2=X1-T计算X1和X2,其中X1和X2的数据位宽均为64bit。进一步的,所述的循环进位累加器运算方式为:按照以下步骤依次计算出(Zi+8,...,Zi+0):S1:(C,Zi+0)=Zi+0+X1+C;S2:(C,Zi+1)=Zi+1+X1+C;S3:(C,Zi+2)=Zi+2+0+C;S4:(C,Zi+3)=Zi+3+X1+C;S5:(C,Zi+4)=Zi+4+X1+C;S6:(C,Zi+5)=Zi+5+X1+C;S7:(C,Zi+6)=Zi+6+X1+C;S8:(C,Zi+7)=Zi+7+X2+C;S9:(CARRY,Zi+8)=Zi+8+C+CAARY;如S1中(C,Zi+0)=Zi+0+X1+C,其中Zi+0的数据位宽为32bit,X1和C的数据位宽均为64bit,步骤S2~S9以此类推,Zi为32bit中间变量。进一步的,所述的大数减法器运算方式为:如果(Z16,...,Z8)≥M,则R=(Z16,...,Z8)-M。有益效果:本专利技术适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件大量减少了乘法器资源,降低了蒙哥马利模乘器的设计复杂度,降低了硬件功耗,并且提高了信息安全芯片在运算国密sm2p256v1曲线参数时蒙哥马利模乘器的运算效率,在降低芯片运算功耗的基础上可以相应的简化信息安全芯片的内部结构,从而降低芯片的生产制造成本。附图说明图1是蒙哥马利模乘器优化组件结构图。具体实施方式对本专利技术做进一步的描述,但本专利技术的保护范围不局限于以下所述。如图1所示,适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件,包括:大数乘法器、临时变量生产器、循环进位累加器和大数减法器,输入位宽为256bit的大整数A和B通过大数乘法器得到一个位宽为512bit的大整数Z,通过Z生成临时变量X1和X2后与Z进行8次进位累加操作,每一位进位累加得到的结果Z再作为进位累加器和临时变量生成器的输入,在完成8次进位累加操作后,如果Z大于或等于大整数常量M,则将M于Z进行一次大数减法运算,否则直接输出8次循环进位累加器的结果。进一步的,所述的大数乘法器运算方式为:Z=(Z16,...,Z0)=A×B。进一步的所述的临时变量生产器运算方式为:通过公式T=Zi、X1=T<<32-T和X2=X1-T计算X1和X2,其中X1和X2的数据位宽均为64bit。进一步的,所述的循环进位累加器运算方式为:按照以下步骤依次计算出(Zi+8,...,Zi+0):S1:(C,Zi+0)=Zi+0+X1+C;S2:(C,Zi+1)=Zi+1+X1+C;S3:(C,Zi+2)=Zi+2+0+C;S4:(C,Zi+3)=Zi+3+X1+C;S5:(C,Zi+4)=Zi+4+X1+C;S6:(C,Zi+5)=Zi+5+X1+C;S7:(C,Zi+6)=Zi+6+X1+C;S8:(C,Zi+7)=Zi+7+X2+C;S9:(CARRY,Zi+8)=Zi+8+C+CAARY;如S1中(C,Zi+0)=Zi+0+X1+C,其中Zi+0的数据位宽为32bit,X1和C的数据位宽均为64bit,步骤S2~S9以此类推,Zi为32bit中间变量。进一步的,所述的大数减法器运算方式为:如果(Z16,...,Z8)≥M,则R=(Z16,...,Z8)-M。进一步的,所述的sm2p256v1是国密推荐的素数域256位椭圆曲线参数,椭圆曲线方程为y2=x3+ax+b。曲线参数如下:其中参数p为蒙哥马利模乘中需要固定使用参数。有益效果:本专利技术适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件大量减少了乘法器资源,降低了蒙哥马利模乘器的设计复杂度,降低了硬件功耗,并且提高了信息安全芯片在运算国密sm2p256v1曲线参数时蒙哥马利模乘器的运算效率,在降低芯片运算功耗的基础上可以相应的简化信息安全芯片的内部结构,从而降低芯片的生产制造成本。以上显示和描述了本专利技术的基本原理和主要特征和本专利技术的优点。本行业的技术人员应该了解,本专利技术不受上述实施例的限制,上述实施例和说明书中描述的只是说明本专利技术的原理,在不脱离本专利技术精神和范围的前提下,本专利技术还会有各种变化和改进,这些变化和改进都落入要求保护的本专利技术范围内。本专利技术要求保护范围由所附的权利要求书及其等效物界定。本文档来自技高网...

【技术保护点】
1.适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件,其特征在于,包括:大数乘法器、临时变量生产器、循环进位累加器和大数减法器,输入位宽为256bit的大整数A和B通过大数乘法器得到一个位宽为512bit的大整数Z,通过Z生成临时变量X1和X2后与Z进行8次进位累加操作,每一位进位累加得到的结果Z再作为进位累加器和临时变量生成器的输入,在完成8次进位累加操作后,如果Z大于或等于大整数常量M,则将M于Z进行一次大数减法运算,否则直接输出8次循环进位累加器的结果。

【技术特征摘要】
1.适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件,其特征在于,包括:大数乘法器、临时变量生产器、循环进位累加器和大数减法器,输入位宽为256bit的大整数A和B通过大数乘法器得到一个位宽为512bit的大整数Z,通过Z生成临时变量X1和X2后与Z进行8次进位累加操作,每一位进位累加得到的结果Z再作为进位累加器和临时变量生成器的输入,在完成8次进位累加操作后,如果Z大于或等于大整数常量M,则将M于Z进行一次大数减法运算,否则直接输出8次循环进位累加器的结果。2.如权利要求1所述的适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件,其特征在于,所述的大数乘法器运算方式为:Z=(Z16,...,Z0)=A×B。3.如权利要求1所述的适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件,其特征在于,所述的临时变量生产器运算方式为:通过公式T=Zi、X1=T<<32-T和X2=X1-T计算X1和X2,其中X1和X2的数据位宽均为64bit。4.如权利要求1所述的适用于国密sm...

【专利技术属性】
技术研发人员:吴汶泰秦放周健薛珊珊
申请(专利权)人:四川卫士通信息安全平台技术有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1