适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法技术

技术编号:21453504 阅读:44 留言:0更新日期:2019-06-26 04:38
本发明专利技术公布了适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,通过信息安全芯片中的蒙哥马利乘模器来实现,在蒙哥马利乘模器进行初始化操作后完成大数乘法运算然后进行一次循环累加计算最后进行一次无符号大数减法运算得出结果,大量减少蒙哥马利模乘中耗时的乘法运算,从而提高信息安全芯片在运算sm2p256v1曲线参数时蒙哥马利模乘器的运算效率,减少相同运算过程的功耗。

【技术实现步骤摘要】
适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法
本专利技术涉及信息安全领域用的模乘算法,尤其涉及适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法。
技术介绍
在信息安全芯片进行国密运算时,蒙哥马利模乘器是调用频率最高最耗时的模块,虽然通用算法可以适配任何国密曲线参数,但是针对使用频率占绝对优势的国密推荐曲线sm2p256v1,现有的信息安全芯片使用嵌套循环的计算方式,提高了时间复杂度,使得系统性能较差,同时芯片的功耗较大。
技术实现思路
本专利技术的目的在于,大量减少信息安全芯片中蒙哥马利模乘器耗时的乘法运算,从而提高在国密sm2p256v1曲线参数下蒙哥马利模乘器的运算效率,减少相同运算过程的功耗。本专利技术的专利技术目的是通过以下技术方案实现的:适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,通过信息安全芯片中的蒙哥马利乘模器来实现,经过优化运算方法,从而降低芯片的运算功耗,其特征在于,蒙哥马利乘模器运算包括以下步骤:S1:进行初始化操作;S2:完成大数乘法运算;S3:进行一次循环累加计算;S4:进行一次无符号大数减法运算。进一步的,所述的初始化操作具体为:首先初始化Z=(Z16,...,Z0)=0,Z是数据位宽为544bit的大数,初始化进位寄存器CARRY=0,CARRY的数据位宽为32bit.进一步的,所述的大数乘法运算为:Z=(Z16,...,Z0)=A×B,Z=(Z16,...,Z0)为循环累加所需的中间变量,A和B为两个n-bit输入,均为位宽为256bit大整数。进一步的,所述的循环累加计算为:在每一轮循环累加前,初始化进位寄存器C为0,其中C的数据位宽为32bit,并分别通过公式T=Zi、X1=T<<32-T和X2=X1-T计算X1和X2,其中X1和X2为临时变量,数据位宽均为64bit,然后按照以下步骤依次计算出(Zi+8,...,Zi+0):S41:(C,Zi+0)=Zi+0+X1+C;S42:(C,Zi+1)=Zi+1+X1+C;S43:(C,Zi+2)=Zi+2+0+C;S44:(C,Zi+3)=Zi+3+X1+C;S45:(C,Zi+4)=Zi+4+X1+C;S46:(C,Zi+5)=Zi+5+X1+C;S47:(C,Zi+6)=Zi+6+X1+C;S48:(C,Zi+7)=Zi+7+X2+C;S49:(CARRY,Zi+8)=Zi+8+C+CAARY;如S41中(C,Zi+0)=Zi+0+X1+C,其中其中Zi、Zi+0的数据位宽均为32bit,C的数据位宽为64bit,步骤S42~S49以此类推,Zi为32bit中间变量。进一步的,所述的无符号的大数运算具体为:循环完成8次上述运算过程后,计算Z16=CARRY,然后判断如果(Z16,...,Z8)≥M,则R=(Z16,...,Z8)-M,否则R=(Z15,...,Z8),最后输出R,其中M是n-bit模数。有益效果:本专利技术将信息安全芯片中原有的蒙哥马利模乘器中的嵌套循环改进为一次循环累加的计算,从而大量减少蒙哥马利模乘器中耗时的乘法运算,并且提高了信息安全芯片在运算国密sm2p256v1曲线参数时蒙哥马利模乘器的运算效率,减少相同运算过程的功耗,在降低芯片运算功耗的基础上可以相应的简化信息安全芯片的内部结构,从而降低芯片的生产制造成本。基于sm2p256v1曲线参数的蒙哥马利模乘方法中的M×T运算,仅需要1次移位操作,2次减法运算,以及6次进位累加操作,该方法可以在椭圆曲线运算的软件程序中实施,也可以在可编程逻辑器件中实施,以SM2签名为例,使用该方法每次签名可以减少20万次左右的乘法运算。具体实施方式对本专利技术做进一步的描述,但本专利技术的保护范围不局限于以下所述。本专利技术的专利技术目的是通过以下技术方案实现的:适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,通过信息安全芯片中的蒙哥马利乘模器来实现,经过优化运算方法,从而降低芯片的运算功耗,其特征在于,蒙哥马利乘模器运算包括以下步骤:S1:进行初始化操作;S2:完成大数乘法运算;S3:进行一次循环累加计算;S4:进行一次无符号大数减法运算。进一步的,所述的初始化操作具体为:首先初始化Z=(Z16,...,Z0)=0,Z是数据位宽为544bit的大数,初始化进位寄存器CARRY=0,CARRY的数据位宽为32bit。进一步的,所述的大数乘法运算为:Z=(Z16,...,Z0)=A×B,Z=(Z16,...,Z0)为循环累加所需的中间变量,A和B为两个n-bit输入,均为位宽为256bit大整数。进一步的,所述的循环累加计算为:在每一轮循环累加前,初始化进位寄存器C为0,其中C的数据位宽为32bit,并分别通过公式T=Zi、X1=T<<32-T和X2=X1-T计算X1和X2,其中X1和X2为临时变量,数据位宽均为64bit,然后按照以下步骤依次计算出(Zi+8,...,Zi+0):S41:(C,Zi+0)=Zi+0+X1+C;S42:(C,Zi+1)=Zi+1+X1+C;S43:(C,Zi+2)=Zi+2+0+C;S44:(C,Zi+3)=Zi+3+X1+C;S45:(C,Zi+4)=Zi+4+X1+C;S46:(C,Zi+5)=Zi+5+X1+C;S47:(C,Zi+6)=Zi+6+X1+C;S48:(C,Zi+7)=Zi+7+X2+C;S49:(CARRY,Zi+8)=Zi+8+C+CAARY;如S41中(C,Zi+0)=Zi+0+X1+C,其中Zi、Zi+0的数据位宽均为32bit,X1和C的数据位宽均为64bit,步骤S42~S49以此类推,Zi为32bit中间变量。进一步的,所述的无符号的大数运算具体为:循环完成8次上述运算过程后,计算Z16=CARRY,然后判断如果(Z16,...,Z8)≥M,则R=(Z16,...,Z8)-M,否则R=(Z15,...,Z8),最后输出R,其中M是n-bit模数。进一步的,所述的国密sm2p256v1算法是国密推荐的素数域256位椭圆曲线参数,椭圆曲线方程为y2=x3+ax+b,曲线参数如下:p=FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFa=FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFCb=28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93n=FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123Gx=32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7Gy=BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0其中参数p为蒙哥马利模乘中需要固定使用参数。进一步的,适用于国密sm2p256v1算法的快速蒙哥马本文档来自技高网...

【技术保护点】
1.适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,蒙哥马利乘模器运算包括以下步骤:S1:进行初始化操作;S2:完成大数乘法运算;S3:进行一次循环累加计算;S4:进行一次无符号大数减法运算。

【技术特征摘要】
1.适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,蒙哥马利乘模器运算包括以下步骤:S1:进行初始化操作;S2:完成大数乘法运算;S3:进行一次循环累加计算;S4:进行一次无符号大数减法运算。2.如权利要求1所述的适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,所述的初始化操作具体为:首先初始化Z=(Z16,...,Z0)=0,Z是数据位宽为544bit的大数,初始化进位寄存器CARRY=0,CARRY的数据位宽为32bit。3.如权利要求1所述的适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,所述的大数乘法运算为:Z=(Z16,...,Z0)=A×B,Z=(Z16,...,Z0)为循环累加所需的中间变量,A和B为两个n-bit输入,均为位宽为256bit大整数。4.如权利要求1所述的适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,所述的循环累加计算为:在每一轮循环累加前,初始化进位寄存器C为0,其中C的数据位宽为32bit,并分别通过公式T=Zi、X1=T<<32-T和X2=X1-T计算X1和X2,其中X1和X2为临时变量,数据位宽均为64bit,然后按照以下步骤依次计算出(Zi+8,...,Zi+0...

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

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

1