当前位置: 首页 > 专利查询>张家豪专利>正文

一种模逆运算方法及运算器技术

技术编号:16365308 阅读:24 留言:0更新日期:2017-10-10 21:17
本发明专利技术涉及一种模逆运算方法及运算器,已知正整数u、m,求u

A modular inverse operation method and arithmetic unit

The invention relates to a modulo inverse operation method and an arithmetic unit, wherein a positive integer u, a m and a u are known

【技术实现步骤摘要】
一种模逆运算方法及运算器
本专利技术涉及模逆计算
,更具体地说,涉及一种模逆运算方法及运算器。
技术介绍
模逆运算广泛应用在公钥密码体制中,例如,在RSA算法中的解密密钥生成时应用到模逆运算,模逆运算也可以用于椭圆曲线密码算法中的点加和倍点运算。目前,求解模逆运算的方法主要包括模幂算法、扩展欧几里得算法、二进制扩展欧几里得算法等。模幂算法以费马小定理为基础,将模逆运算转换成模幂运算,但是模幂算法无法确定模逆结果是否存在。采用模乘器作为硬件运算单元,较为复杂且功耗较大。扩展欧几里得算法通过辗转相除计算最大公因子求解模逆,当最大公因子为非1整数时无法获取模逆的计算结果。采用除法器作为硬件运算单元,实现仍较为复杂。二进制扩展欧几里得算法将除法转换成移位和加减法,但是,在移位的过程中,操作数的权值发生了改变,最终运算结果中包含有2n(n为操作数的位长)项权重因子,去除权重因子需进行多次除2的操作,因此,要求模必须是奇数。现有的二进制扩展欧几里得算法方法在进行模逆运算时仍存在一定的限制,无法针对任意非零整数求模,并且计算过程较为复杂。因此,现有技术亟待有很大的进步。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述的缺陷,提供一种模逆运算方法,已知正整数u、m,求u-1modm,包括步骤:S1、如果m为奇数,则n1=u,n2=m,标志位flag=0;否则m不为奇数:如果u为偶数,则u-1不存在,运算结束,如果u不为偶数,则n1=m,n2=u,标志位flag=1;S2、执行算法:S21、n1=m,n2=u,s=0,t=1,k=0;S22、while(n2>0)如果n1为偶数,则n1=n1/2,t=2t,k=k+1;否则如果n2为偶数,则n2=n2/2,s=2s,k=k+1;否则如果n1>n2,那么n1=(n1-n2)/2,s=s+t,t=2t,k=k+1;否则n2=(n2-n1)/2,t=s+t,s=2s,k=k+1;S23、如果n1≠1,则u-1不存在,运算结束;否则m=-s(modm)S3、如果n1-1不存在,则运算结束;S4、如果标志位flag=0,则u-1=n1-1;否则标志位flag=1,相应地,本专利技术还提供了一种模逆运算的运算器,包括加法器、减法器、存储器、控制器;所述控制器用于判断且设置数值,S1、如果m为奇数,则n1=u,n2=m,标志位flag=0;否则m不为奇数:如果u为偶数,则u-1不存在,运算结束,如果u不为偶数,则n1=m,n2=u,标志位flag=1;S21、n1=m,n2=u,s=0,t=1,k=0;S22、while(n2>0)如果n1为偶数,则n1=n1/2,t=2t,k=k+1;否则如果n2为偶数,则n2=n2/2,s=2s,k=k+1;否则如果n1>n2,那么n1=(n1-n2)/2,s=s+t,t=2t,k=k+1;否则n2=(n2-n1)/2,t=s+t,s=2s,k=k+1;S23、如果n1≠1,则u-1不存在,运算结束;否则m=-s(modm)S3、如果n1-1不存在,则运算结束;S4、如果标志位flag=0,则u-1=n1-1;否则标志位flag=1,所述减法器执行减法操作;所述加法器执行加分操作;所述存储器用于存储参与计算的数据、标志位flag的值,计算结果值。实施本专利技术的模逆运算方法及运算器,具有以下有益效果:该算法只需要增加一个标志位,和最多一次乘法、两次减法运算,能大大提高运算速度,在硬件实现上,具有通用性、高效性特点;相比于现有的二进制扩展欧几里得算法,不需要再对运算结果进行权重因子的消除操作,并且可以不限定模必须为奇数,可以实现模为任意非零整数的模逆运算,并提高模逆运算的计算效率,降低硬件功耗。具体实施方式现有的二进制扩展欧几里得算法将除法转换成移位和加减法,但是,在移位的过程中,操作数的权值发生了改变,最终运算结果中包含有2n(n为操作数的位长)项权重因子,去除权重因子需进行多次除2的操作,因此,要求模必须是奇数。但是,现有的二进制扩展欧几里得算法方法在进行模逆运算时仍存在一定的限制,无法针对任意非零整数求模,并且计算过程较为复杂。本专利技术提出了一种模逆运算,已知正整数u、m,求u-1modm,其特征在于,包括步骤:S1、如果m为奇数,则n1=u,n2=m,标志位flag=0;否则m不为奇数:如果u为偶数,则u-1不存在,运算结束,如果u不为偶数,则n1=m,n2=u,标志位flag=1;S2、执行算法:S21、n1=m,n2=u,s=0,t=1,k=0;S22、while(n2>0)如果n1为偶数,则n1=n1/2,t=2t,k=k+1;否则如果n2为偶数,则n2=n2/2,s=2s,k=k+1;否则如果n1>n2,那么n1=(n1-n2)/2,s=s+t,t=2t,k=k+1;否则n2=(n2-n1)/2,t=s+t,s=2s,k=k+1;S23、如果n1≠1,则u-1不存在,运算结束;否则m=-s(modm)S3、如果n1-1不存在,则运算结束;S4、如果标志位flag=0,则u-1=n1-1;否则标志位flag=1,相应地,本专利技术还公开了一种模逆运算器,包括加法器、减法器、存储器、控制器;所述控制器用于判断且设置数值,S1、如果m为奇数,则n1=u,n2=m,标志位flag=0;否则m不为奇数:如果u为偶数,则u-1不存在,运算结束,如果u不为偶数,则n1=m,n2=u,标志位flag=1;S21、n1=m,n2=u,s=0,t=1,k=0;S22、while(n2>0)如果n1为偶数,则n1=n1/2,t=2t,k=k+1;否则如果n2为偶数,则n2=n2/2,s=2s,k=k+1;否则如果n1>n2,那么n1=(n1-n2)/2,s=s+t,t=2t,k=k+1;否则n2=(n2-n1)/2,t=s+t,s=2s,k=k+1;S23、如果n1≠1,则u-1不存在,运算结束;否则m=-s(modm)S3、如果n1-1不存在,则运算结束;S4、如果标志位flag=0,则u-1=n1-1;否则标志位flag=1,所述减法器执行减法操作;所述加法器执行加分操作;所述存储器用于存储参与计算的数据、标志位flag的值,计算结果值。通过利用标志位区分不同的情况,从而更准确的计算出数据结果。本专利技术通过以上实施例的设计,可以做到该算法只需要增加一个标志位,和最多一次乘法、两次减法运算,能大大提高运算速度,在硬件实现上,具有通用性、高效性特点;相比于现有的二进制扩展欧几里得算法,不需要再对运算结果进行权重因子的消除操作,并且可以不限定模必须为奇数,可以实现模为任意非零整数的模逆运算,并提高模逆运算的计算效率,降低硬件功耗。本专利技术是根据特定实施例进行描述的,但本领域的技术人员应明白在不脱离本专利技术范围时,可进行各种变化和等同替换。此外,为适应本专利技术技术的特定场合,可对本专利技术进行诸多修改而不脱离其保护范围。因此,本专利技术并不限于在此公开的特定实施例,而包括所有落入到权利要求保护范围的实施例。本文档来自技高网...

【技术保护点】
一种模逆运算方法,已知正整数u、m,求u

【技术特征摘要】
1.一种模逆运算方法,已知正整数u、m,求u-1modm,其特征在于,包括步骤:S1、如果m为奇数,则n1=u,n2=m,标志位flag=0;否则m不为奇数:如果u为偶数,则u-1不存在,运算结束,如果u不为偶数,则n1=m,n2=u,标志位flag=1;S2、执行算法:S21、n1=m,n2=u,s=0,t=1,k=0;S22、while(n2>0)如果n1为偶数,则n1=n1/2,t=2t,k=k+1;否则如果n2为偶数,则n2=n2/2,s=2s,k=k+1;否则如果n1>n2,那么n1=(n1-n2)/2,s=s+t,t=2t,k=k+1;否则n2=(n2-n1)/2,t=s+t,s=2s,k=k+1;S23、如果n1≠1,则u-1不存在,运算结束;否则m=-s(modm)S3、如果n1-1不存在,则运算结束;S4、如果标志位flag=0,则u-1=n1-1;否则标志位flag=1,2.一种采用权利要求1所述的模逆运算方法的运算器,其特征在于,包括加法器...

【专利技术属性】
技术研发人员:张家豪张云峰武阿娜
申请(专利权)人:张家豪
类型:发明
国别省市:山东,37

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

1