模乘运算处理方法、装置、电子设备及可读介质制造方法及图纸

技术编号:39309807 阅读:9 留言:0更新日期:2023-11-12 15:56
本发明专利技术公开了一种模乘运算处理方法、装置、电子设备及可读介质,用于计算R

【技术实现步骤摘要】
模乘运算处理方法、装置、电子设备及可读介质


[0001]本专利技术是关于电数字数据处理领域,特别是关于一种模乘运算处理方法、装置、电子设备及可读介质。

技术介绍

[0002]大数模乘运算是许多密码学算法的核心运算,例如RSA算法。大数模乘运算指两数相乘再求模即x
·
y(mod N),其中x和y表示两个乘数,N表示模数(2
n
‑1<N<2
n
,n表示比特)。求模运算会涉及到除法,对于大数模乘运算,除法会导致模乘运算效率降低。为了避免除法运算,提升大数模乘运算的效率,通常需要将模乘运算转换为montgomery模乘运算即MonMul(x,y,N)。montgomery模乘运算需要将两个乘数x和y转换到montgomery域,然后再进行乘法运算。montgomery模乘运算需要计算R
·
R(mod N),其中R=2
n
,然后根据R
·
R(mod N)的计算结果将乘数转换到montgomery域。R
·
R(mod N)的计算速度的快慢会对montgomery模乘运算速度的快慢产生影响。
[0003]在嵌入式系统应用中,R
·
R(mod N)传统的计算方法一般是通过软件进行计算或者将R
·
R(mod N)的值从外部写入到FLASH中。软件计算方法虽然不占用额外的面积,但是计算速度慢。将R
·
R(mod N)的值从外部写入到FLASH中虽然不消耗计算时间,但是占用的FLASH空间较大。
[0004]因此,针对上述技术问题,有必要提供一种新的模乘运算处理方法、装置、电子设备及可读介质。

技术实现思路

[0005]本专利技术的目的在于提供一种模乘运算处理方法、装置、电子设备及可读介质,其能够避免模乘运算中的除法运算,提高计算效率。
[0006]第一方面,本专利技术提供了一种模乘运算处理方法,用于计算R
·
A(mod N),其中,R=2
n
,2
n
‑1<N<2
n
,A和N为正整数,所述方法包括以下步骤:
[0007]S101:计算A(mod N)得到第一中间结果P,将所述第一中间结果P存入结果存储单元;
[0008]S102:读取所述结果存储单元中的所述第一中间结果P,将所述第一中间结果P转换成二进制数并左移预定位数,得到第二中间结果S,且使所述第二中间结果S<2N;
[0009]S103:比较所述第二中间结果S与N的大小;若所述第二中间结果S≥N,将第二中间结果S减去N得到第三中间结果RS,并将所述第三中间结果RS作为下一次循环中的第一中间结果P存入到结果存储单元中;若所述第二中间结果S<N,将所述第二中间结果S作为下一次循环中的第一中间结果P存入到结果存储单元中;
[0010]S104:循环步骤S102和S103,直至每次循环中对所述第一中间结果P的左移位数之和等于n。
[0011]在一个或多个实施方式中,将所述第一中间结果P转换成二进制并左移预定位数,
包括:
[0012]将所述第一中间结果P转换成二进制数并左移一位。
[0013]在一个或多个实施方式中,所述将所述第一中间结果P转换成二进制并左移预定位数,包括:
[0014]将所述第一中间结果P转换成n位二进制数;基于所述n位二进制数的最高的m位数据中,从高位到低位出现第一个1之前连续0的个数M,将所述第一中间结果P左移M位,且在M为0时,将所述第一中间结果P左移一位。
[0015]第二方面,本专利技术提供了一种模乘运算装置,用于实现如前所述的模乘运算处理方法,所述模乘运算装置包括:
[0016]模数存储单元,用于存储模数N;
[0017]结果存储单元,用于存储计算R
·
A(mod N)过程中的中间结果和最终结果;
[0018]移位单元,用于对所述结果存储单元中的中间结果进行左移处理;
[0019]比较单元,用于比较所述左移处理后的中间结果与所述模数N的大小;
[0020]减法单元,用于在所述左移处理后的中间结果大于所述模数N时,将所述左移处理后的中间结果减去所述模数N。
[0021]在一个或多个实施方式中,所述模数存储单元与所述比较单元及所述减法单元连接,所述结果存储单元与所述移位单元、所述比较单元及所述减法单元连接,所述减法单元与所述移位单元及所述比较单元连接。
[0022]在一个或多个实施方式中,所述模乘运算装置还包括多路选择单元,所述多路选择单元的输入端与所述移位单元及所述减法单元连接,所述多路选择单元的输出端与所述结果存储单元连接。
[0023]在一个或多个实施方式中,所述模乘运算装置还包括用于控制所述结果存储单元、减法单元及移位单元的数据流流向的控制单元,所述控制单元与所述多路选择单元的控制端连接。
[0024]在一个或多个实施方式中,所述模乘运算装置还包括用于在将第一中间结果P转换成n位二进制数后,检测所述n位二进制数最高的m位数据中从高位到低位出现第一个1之前连续0的个数的数据检测单元,所述数据检测单元与所述结果存储单元及所述移位单元连接。
[0025]第三方面,本专利技术提供了一种电子设备,包括存储器、处理器、以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如前所述的模乘运算处理方法。
[0026]第四方面,本专利技术提供了一种计算机可读介质,所述计算机可读介质中承载有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如前所述的模乘运算处理方法。
[0027]与现有技术相比,本专利技术提供的模乘运算处理方法,通过计算A(mod N)得到第一中间结果P,将所述第一中间结果P存入结果存储单元,然后通过循环左移和减法运算得到R
·
A(mod N)的结果,避免了除法运算,提高了计算效率;通过预定位数左移和比较运算,实现了以2为基底的R
·
A(mod N)计算,简化了计算过程,便于硬件实现;而且可以通过复用结果存储单元存储中间结果和最终结果,减少了存储空间的占用。
附图说明
[0028]图1是本专利技术一实施方式中模乘运算处理方法的流程图;
[0029]图2是本专利技术一实施方式中模乘运算装置的结构示意图;
[0030]图3是本专利技术另一实施方式中模乘运算装置的结构示意图;
[0031]图4是本专利技术一实施方式中电子设备的结构示意图。
具体实施方式
[0032]下面结合附图,对本专利技术的具体实施方式进行详细描述,但应当理解本专利技术的保护范围并不受具体实施方式的限制。
[0033]除非另有其他明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模乘运算处理方法,用于计算R
·
A(mod N),其中,R=2
n
,2
n
‑1<N<2
n
,A和N为正整数,其特征在于,所述方法包括以下步骤:S101:计算A(mod N)得到第一中间结果P,将所述第一中间结果P存入结果存储单元;S102:读取所述结果存储单元中的所述第一中间结果P,将所述第一中间结果P转换成二进制数并左移预定位数,得到第二中间结果S,且使所述第二中间结果S<2N;S103:比较所述第二中间结果S与N的大小;若所述第二中间结果S≥N,将第二中间结果S减去N得到第三中间结果RS,并将所述第三中间结果RS作为下一次循环中的第一中间结果P存入到结果存储单元中;若所述第二中间结果S<N,将所述第二中间结果S作为下一次循环中的第一中间结果P存入到结果存储单元中;S104:循环步骤S102和S103,直至每次循环中对所述第一中间结果P的左移位数之和等于n。2.如权利要求1所述的模乘运算处理方法,其特征在于,将所述第一中间结果P转换成二进制并左移预定位数,包括:将所述第一中间结果P转换成二进制数并左移一位。3.如权利要求1所述的模乘运算处理方法,其特征在于,将所述第一中间结果P转换成二进制并左移预定位数,包括:将所述第一中间结果P转换成n位二进制数;基于所述n位二进制数的最高的m位数据中,从高位到低位出现第一个1之前连续0的个数M,将所述第一中间结果P左移M位,且在M为0时,将所述第一中间结果P左移一位。4.一种模乘运算装置,用于实现如权利要求1

3中任一项所述的模乘运算处理方法,其特征在于,所述模乘运算装置包括:模数存储单元,用于存储模数N...

【专利技术属性】
技术研发人员:王权胜
申请(专利权)人:思瑞浦微电子科技上海有限责任公司
类型:发明
国别省市:

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

1