CN114327370A - 计算蒙哥马利模乘算法中mr值的方法及电路 - Google Patents

计算蒙哥马利模乘算法中mr值的方法及电路 Download PDF

Info

Publication number
CN114327370A
CN114327370A CN202210229606.7A CN202210229606A CN114327370A CN 114327370 A CN114327370 A CN 114327370A CN 202210229606 A CN202210229606 A CN 202210229606A CN 114327370 A CN114327370 A CN 114327370A
Authority
CN
China
Prior art keywords
value
register
bit
circuit
modular multiplication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210229606.7A
Other languages
English (en)
Other versions
CN114327370B (zh
Inventor
杨帆
张鹏翔
穆永亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hubei Xinqing Technology Co ltd
Original Assignee
Hubei Xinqing Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hubei Xinqing Technology Co ltd filed Critical Hubei Xinqing Technology Co ltd
Priority to CN202210229606.7A priority Critical patent/CN114327370B/zh
Publication of CN114327370A publication Critical patent/CN114327370A/zh
Application granted granted Critical
Publication of CN114327370B publication Critical patent/CN114327370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种计算蒙哥马利模乘算法中MR值的方法及电路,蒙哥马利模乘算法中模数、MR值的位宽分别为N、K比特。其方法包括:S1、将模数的最低4a比特的值输入至组合逻辑电路中;S2、将模数与步骤S1生成的基础MR值相乘;S3、将步骤S2生成的乘积的最低N比特的值进行加法运算;S4、将加法运算后的值与基础MR值相乘;S5、若n=1,将S4生成的乘积的最低K比特的值作为最终MR值;S6、若n>1,根据n‑1确定重复步骤S2‑S4的次数,并将S4生成的乘积的最低K比特的值作为中间MR值以替换掉基础MR值,并重复步骤S2‑S4以得到最终MR值。本发明通过上述方法能快速得到蒙哥马利模乘算法中MR值。

Description

计算蒙哥马利模乘算法中MR值的方法及电路
技术领域
本发明涉及公钥加密技术领域,尤其涉及一种计算蒙哥马利模乘算法中MR值的方法及电路。
背景技术
蒙哥马利模乘算法是实现公钥密码的基础算法,广泛应用于非对称密码加密、解密的加速设备中,其基本思想是利用完全剩余系的性质,借助构造一个模的剩余系,将普通求模运算转化成移位和加法操作或将乘法和求模运算进行结合,以避免单独的取模运算。
蒙哥马利模乘算法中MR值是蒙哥马利模乘计算过程中需要的一个值,该值与蒙哥马利模乘算法中模数的乘积的最低若干二进制位的值均为1,通过该值可提高蒙哥马利模乘算法的运算速度。现有技术中,蒙哥马利模乘算法中MR值通常采用逐位判断法从最低位往高位依次计算MR值上的每个二进制位的值,导致生成MR值的速度较慢。
发明内容
针对现有技术的不足,本发明提供了一种计算蒙哥马利模乘算法中MR值的方法及电路,旨在解决现有技术中计算蒙哥马利模乘算法中MR值的速度较慢的技术问题。
第一方面,本发明实施例提供一种计算蒙哥马利模乘算法中MR值的方法,所述蒙 哥马利模乘算法中模数的位宽为N比特,所述蒙哥马利模乘算法中MR值的位宽为K比特,
Figure 100002_DEST_PATH_IMAGE001
,n为正整数,a为1或2;所述方法包括:
S1、将所述模数的最低4a比特的值输入至组合逻辑电路中,得到与所述最低4a比特的值对应的基础MR值;其中,所述基础MR值与所述模数的乘积的最低4a比特的值中每个比特位均为1;
S2、将所述模数与所述基础MR值相乘,得到第一乘积;
S3、将所述第一乘积的最低N比特的值输入至加法电路中进行加法运算,得到加法运算后的值;
S4、将加法运算后的值与所述基础MR值相乘,得到第二乘积;
S5、若n=1,则将所述第二乘积的最低K比特的值作为所述蒙哥马利模乘算法中的MR值;其中,所述最低K比特的值与所述模数的乘积的最低K比特的值中每个比特位均为1;
S6、若n>1,根据n-1确定重复步骤S2-S4的次数,并将所述第二乘积的最低K比特的值作为中间MR值,所述中间MR值替换所述基础MR值以重复步骤S2-S4,直至得到所述蒙哥马利模乘算法中的MR值。
第二方面,本发明实施例还提供一种计算蒙哥马利模乘算法中MR值的电路,采用第一方面所述的方法生成所述蒙哥马利模乘算法中MR值,所述电路包括:第一寄存器、组合逻辑电路、第二寄存器、多路器、乘法器、第三寄存器以及加法电路,其中,
所述第一寄存器用于存储所述模数;
所述组合逻辑电路的输入端与所述第一寄存器的输出端连接,所述组合逻辑电路的输出端用于输出所述模数的最低4a比特的值对应的基础MR值;
所述第二寄存器的输入端分别与所述组合逻辑电路的输出端、所述乘法器的输出端连接,所述第二寄存器用于存储MR值,所述MR值为所述基础MR值、中间MR值以及所述蒙哥马利模乘算法中的MR值中任意一种;所述中间MR值的位宽小于K比特;
所述多路器的输入端分别与所述第一寄存器的输出端、所述第三寄存器的输出端连接,所述多路器的输出端与所述乘法器的输入端连接并用于将所述模数、所述第三寄存器中存储的值分别输出至所述乘法器中;
所述第三寄存器的输入端分别与所述乘法器的输出端、所述加法电路的输出端连接,所述第三寄存器用于存储所述模数与所述第二寄存器中MR值的乘积、以及所述加法电路中生成的值;
所述乘法器的输入端与所述第二寄存器的输入端连接,并用于将所述模数与所述第二寄存器中MR值相乘,同时还用于将所述加法电路中生成的值与所述第二寄存器中MR值相乘,以得到所述中间MR值或所述蒙哥马利模乘算法中的MR值;
所述加法电路的输入端与所述第三寄存器的输出端连接,并用于对所述第三寄存器中的值进行加法运算。
进一步的,在所述的计算蒙哥马利模乘算法中MR值的电路中,所述第一寄存器的位宽为N比特。
进一步的,在所述的计算蒙哥马利模乘算法中MR值的电路中,所述第二寄存器的位宽为N比特,所述蒙哥马利模乘算法中MR值的位宽小于或等于N比特。
更进一步的,在所述的计算蒙哥马利模乘算法中MR值的电路中,若K>N,则将所述加法电路中生成的值与所述第二寄存器中MR值的乘积的最低N比特的值作为所述蒙哥马利模乘算法中MR值,并存储于所述第二寄存器中。
进一步的,在所述的计算蒙哥马利模乘算法中MR值的电路中,所述第三寄存器的位宽为N比特,所述模数与所述第二寄存器中MR值的乘积的最低N比特的值存储于所述第三寄存器中。
更进一步的,在所述的计算蒙哥马利模乘算法中MR值的电路中,所述模数与所述第二寄存器中MR值的乘积的最低N比特的值在所述加法电路中进行加法运算。
更进一步的,在所述的计算蒙哥马利模乘算法中MR值的电路中,所述模数与所述第二寄存器中MR值的乘积的最低N比特的值在所述加法电路中与数值2相加,并将生成的值存储于所述第三寄存器中。
更进一步的,在所述的计算蒙哥马利模乘算法中MR值的电路中,若所述加法电路中生成的值的位宽大于N比特,将生成的比特值中的最低N比特的值存储于所述第三寄存器中。
第三方面,本发明实施例还提供一种蒙哥马利模乘电路,该电路包括上述所述的计算蒙哥马利模乘算法中MR值的电路。
本发明实施例提供了一种计算蒙哥马利模乘算法中MR值的方法及电路,该方法通过将模数的最低4a比特的值输入至组合逻辑电路中生成最低4a比特的值对应的基础MR值后,将基础MR值与模数相乘,并将乘积的进行加法运算,将加法运算后的值与所述基础MR值相乘,并根据其乘积、蒙哥马利模乘算法中的MR值的位宽得到重复进行加法运算以及乘法运算的次数,若次数大于1,则将与所述基础MR值相乘的最低K比特的值作为中间MR值以替换掉基础MR值,进而重复进行加法运算以及乘法运算,直至生成蒙哥马利模乘算法中的MR值。本发明通过该方法可极大缩短计算蒙哥马利模乘算法中MR值的时间,提高了计算蒙哥马利模乘算法中MR值的速度。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的计算蒙哥马利模乘算法中MR值的方法的流程图;
图2为本发明实施例提供的计算蒙哥马利模乘算法中MR值的电路结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、元素、组件和/或其集合的存在或添加。
目前,在对ab(mod N)进行模运算时,常规方法是利用带余除法进行计算,然而除法运算需要多次的乘法,导致计算复杂度较高。因此为了降低计算的复杂度,提高模乘运算的效率,通常采用蒙哥马利模乘算法来解决模乘运算的效率问题。
具体的,蒙哥利马模乘包括整数乘法和蒙哥马利约简(Montgomery reduction),在蒙哥利马模乘算法中,为了计算ab(mod N)时,需要找一个R,使得蒙哥利马模乘表示法为:a'=aR(mod N),b'=bR(mod N)。
采用蒙哥马利模乘算法计算ab(mod N)时,令X=a'b',则可设计一个函数计算XR-1(mod N),通过计算可以发现该函数的计算结果中X1≡XR-1≡a'b'R-1≡abR(mod N),因此,通过调用该函数计算X1R-1(mod N),便可计算得到ab(mod N)的值。
其中,R需要满足两个条件:(1)R=2k>N,k为满足条件的最小的正数,以保证除以R就相当于右移k位,进而避免除法运算;(2)R、N的最大公约数gcd(R,N)=1,从而一定可以找到一个m,使得X+mN是R的倍数。
蒙哥马利模乘算法的具体流程为:
(1)已知a、b、N,计算a'、b'、R以及X,即a'=aR(mod N),b'=bR(mod N),X=a'b';
(2)调用蒙哥马利约简算法计算X1,即X1=Montgomery reduction(X,R,N)≡XR-1≡a'b'R-1≡abR(mod N);
(3)再次调用蒙哥马利约简算法计算:y=Montgomery reduction(X1,R,N)≡X1R-1(mod N)≡ab(mod N)。
其中,蒙哥马利约简算法就是:找到一个m,使得X+mN是R的倍数,m的计算方法是X*MR再取最低k比特,k是R=2k中的k。
上述在执行蒙哥马利模乘算法时,在已知a、b、N时,需要计算a'、b'、R以及X,即a'=aR(mod N),b'=bR(mod N),X=a'b',其中,在计算X=a'b'时,需要借助MR值来计算出a'b',进而执行蒙哥马利模乘算法后续步骤。
其中,MR值与模数的乘积的最低若干位全是1,例如,若模数为0xBDBB_764D_4DEB,则该模数对应的48比特的MR值为0x1CED_267E_8D3D,该模数与其对应的48比特的MR值的乘积的最低48比特全是1,该模数对应的64比特的MR值为0x1438_1CED_267E_8D3D,该模数与其对应的64比特的MR值的乘积的最低64比特全是1。
下面以一个模乘计算的实施例来解释蒙哥马利模乘算法中的MR值。
例如,若a'=0x4D,b'=0xA9,蒙哥马利模乘算法中的模数为0xAD,蒙哥马利模乘算法中8比特的MR值为0xDB,其中,0x为16进制数的开头表示方法,其为C语言的惯用语法。
上述可以得到模数与8比特的MR值的乘积(0xAD*0xDB= 0x93FF)的最低8比特全是1。此时a'与b'的乘积的蒙哥马利约简计算过程为:0x4D*0xA9 + 0x37*0xAD=0x32D5+0x252B=0x5800,抛弃0x5800最后的两个0,进而得到的0x58便为a'与b'的蒙哥马利模乘的乘积,即a与b的模乘的积在蒙哥马利域里面的值。其中,若0x58大于0xAD,则需对0x58进行一次减法运算。
另外,上述过程中的0x37的计算过程为:计算0xD5与蒙哥马利模乘算法中8比特的MR为0xDB的乘积,再取乘积的最低8比特的值,而0xD5为a'与b'的乘积的最低8比特的值。
目前,采用逐位判断法依次计算MR值上的每个比特位上的值,其具体过程为:
(1)由于模数一定为奇数,模数的最低1比特的值一定为1,故MR值的最低1比特的值一定为1,即0x0001为1比特的MR值;
(2)将模数与1比特的MR值相乘,判断其乘积的第2比特的值(从低位往高位数)为1或0,若为1,则2比特的MR值为0x0001;若为0,则2比特的MR值为0x0003;
(3)将模数与2比特的MR值相乘,判断其乘积的第3比特的值(从低位往高位数)为1或0,若为1,则MR值从低位往高位数第3比特为0;若为0,则MR值从低位往高位数第3比特为1;
(4)将模数与3比特的MR值相乘,判断其乘积的第4比特的值(从低位往高位数)为1或0,若为1,则MR值从低位往高位数第4比特为0;若为0,则MR值从低位往高位数第4比特为1;
(5)依次将模数与4、5、…、N比特的MR值相乘,进而得到任意比特的MR值。
从逐位判断法依次计算MR值上的每个比特上的值的过程中可以看出,当需要计算256比特的MR值时,采用逐位法计算时,则需要256个时钟周期,导致生成MR值的速度较慢。
图1为本发明实施例提供的计算蒙哥马利模乘算法中MR值的方法的流程图。如图1 所示,为了解决计算MR值的速度较慢的技术问题,本发明实施例提供的一种计算蒙哥马利 模乘算法中MR值的方法,其中,蒙哥马利模乘算法中模数的位宽为N比特,所述蒙哥马利模 乘算法中MR值的位宽为K比特,
Figure DEST_PATH_IMAGE002
,n为正整数,a为1或2。
当a=1时,计算蒙哥马利模乘算法中MR值的方法包括:
S1、将所述模数的最低4比特的值输入至组合逻辑电路中,得到所述最低4比特的值对应的基础MR值;其中,所述基础MR值与所述模数的乘积的最低4比特中每个比特位上的值均为1;
S2、将所述模数与所述基础MR值相乘,得到第一乘积;
S3、将所述第一乘积的最低N比特的值输入至加法电路中进行加法运算,得到加法运算后的值;
S4、将加法运算后的值与所述基础MR值相乘,得到第二乘积;
S5、若n=1,则将所述第二乘积的最低K比特的值作为所述蒙哥马利模乘算法中的MR值;其中,所述最低K比特的值与所述模数的乘积的最低K比特中每个比特位上的值均为1;
S6、若n>1,根据n-1确定重复步骤S2-S4的次数,并将所述第二乘积的最低4*2n'(n'为循环次数,n'取值范围为0~n)比特的值作为中间MR值,所述中间MR值替换成所述基础MR值以重复步骤S2-S4,直至得到所述蒙哥马利模乘算法中的MR值。
例如,当计算蒙哥马利模乘算法中模数对应的256比特的MR值时,N=256,其具体步骤为:
S1、将模数的最低4比特的值输入至组合逻辑电路中,得到最低4比特的值对应的基础MR值;其中,基础MR值与模数的乘积的最低4比特中每个比特位上的值均为1;
S2、将模数与基础MR值相乘,得到第一乘积;
S3、将第一乘积的最低256比特值输入至加法电路中进行加法运算,得到加法运算后的值;
S4、将加法运算后的值与基础MR值相乘,得到第二乘积;
S5、将第二乘积的最低8比特的值作为第一中间MR值,并与模数相乘,得到第三乘积;
S6、将第三乘积的最低256比特的值输入至加法电路中进行加法运算,得到加法运算后的值;
S7、将加法运算后的值与第一中间MR值相乘,得到第四乘积;
S8、将第四乘积的最低16比特的值作为第二中间MR值,并与模数相乘,得到第五乘积;
S9、将第五乘积的最低256比特的值输入至加法电路中进行加法运算,得到加法运算后的值;
S10、将加法运算后的值与第二中间MR值相乘,得到第六乘积;
S11、将第六乘积的最低32比特的值作为第三中间MR值,并与模数相乘,得到第七乘积;
S12、将第七乘积的最低256比特的值输入至加法电路中进行加法运算,得到加法运算后的值;
S13、将加法运算后的值与第三中间MR值相乘,得到第八乘积;
S14、将第八乘积的最低64比特的值作为第四中间MR值,并与模数相乘,得到第九乘积;
S15、将第九乘积的最低256比特的值输入至加法电路中进行加法运算,得到加法运算后的值;
S16、将加法运算后的值与第四中间MR值相乘,得到第十乘积;
S17、将第十乘积的最低128比特的值作为第五中间MR值,并与模数相乘,得到第十一乘积;
S18、将第十一乘积的最低256比特的值输入至加法电路中进行加法运算,得到加法运算后的值;
S19、将加法运算后的值与第五中间MR值相乘,得到第十二乘积;
S20、将第十二乘积的最低256比特的值作为最终MR值,即蒙哥马利模乘算法中模数对应的256比特的MR值。
由此可以看出,本发明所述的计算蒙哥马利模乘算法中MR值的方法与逐位判断法计算MR值相比,本发明提供的方法可极大缩短蒙哥马利模乘算法中MR值的计算时间,提高了蒙哥马利模乘算法中MR值的运算速度。
在一实施例中,本发明还提供一种计算蒙哥马利模乘算法中MR值的电路,其中,蒙 哥马利模乘算法中模数的位宽为N比特,所述蒙哥马利模乘算法中MR值的位宽为K比特,
Figure DEST_PATH_IMAGE003
,n为正整数,a为1或2。
当a=1时,计算蒙哥马利模乘算法中MR值的电路包括:第一寄存器、组合逻辑电路、第二寄存器、多路器、乘法器、第三寄存器以及加法电路,其中;
所述第一寄存器用于存储所述模数;
所述组合逻辑电路的输入端与所述第一寄存器的输出端连接,所述组合逻辑电路的输出端用于输出所述模数的最低4比特的值对应的基础MR值;
所述第二寄存器的输入端分别与所述组合逻辑电路的输出端、所述乘法器的输出端连接,所述第二寄存器用于存储MR值,所述MR值包括所述基础MR值、中间MR值以及所述蒙哥马利模乘算法中的MR值;所述中间MR值的位宽小于K比特;
所述多路器的输入端分别与所述第一寄存器的输出端、所述第三寄存器的输出端连接,所述多路器的输出端与所述乘法器的输入端连接并用于将所述模数、所述第三寄存器中存储的值分别输出至所述乘法器中;
所述第三寄存器的输入端分别与所述乘法器的输出端、所述加法电路的输出端连接,所述第三寄存器用于存储所述模数与所述第二寄存器中MR值的乘积、以及所述加法电路中生成的值;
所述乘法器的输入端与所述第二寄存器的输入端连接,并用于将所述模数与所述第二寄存器中MR值相乘,同时还用于将所述加法电路中生成的值与所述第二寄存器中MR值相乘以得到所述中间MR值或所述蒙哥马利模乘算法中的MR值;
所述加法电路的输入端与所述第三寄存器的输出端连接,并用于对所述第三寄存器中的值进行加法运算。
请参阅图2,图2为本发明实施例提供的计算蒙哥马利模乘算法中MR值的电路结构图。如图2所示,R1为第一寄存器,R2为第二寄存器,R3为第三寄存器,圆圈中画叉的图案表示一个乘法器电路,l1线路为乘法器输入被乘数,l2线路为乘法器输入乘数,乘法的积可以存入第二寄存器,也可以存入第三寄存器;倒梯形图案表示多路器,该多路器表示l1线路输送的被乘数可以来自第一寄存器,也可以来自第三寄存器;方框中写有+2的图案表示将第三寄存器内存储的值加上数值2再存储于第三寄存器中;图中LUT表示一个输入为4比特的值,输出也为4比特的值的组合逻辑电路,输出与输入的乘积最低4比特中每个比特位的值均为1。本实施例还提供了用于生成基础MR值的LUT的真值表,如下表1所示:
表1 LUT的真值表
Figure DEST_PATH_IMAGE004
从表1中可以看出,若输入0xB,则组合逻辑电路的输出为0xD,0xB与0xD的乘积为0x8F,即其最低4比特均为1。
在一实施例中,第一寄存器、第二寄存器、第三寄存器的位宽均为N比特,蒙哥马利模乘算法中MR值的位宽小于或等于N比特,模数与第二寄存器中MR值的乘积存储于第三寄存器的过程中,均以乘积的最低N或K=4×2n'(n'表示循环次数,直到K>N,则取乘积的最低N)比特的值存储于第三寄存器中。
若加法电路中生成的值与第二寄存器中MR值的乘积的最低K比特大于N比特,则将加法电路中生成的值与第二寄存器中MR值的乘积的最低N比特的值作为蒙哥马利模乘算法中MR值,并存储于第二寄存器中。
另外,从图2中可以看出,模数与第二寄存器中MR值的乘积的最低N比特的值在加法电路中进行加法运算,若加法电路中生成的值的位宽大于N比特,将生成的值中最低N比特的值存储于第三寄存器中。
例如,当采用图2中的电路计算48比特的MR值时,若模数为0xBDBB_764D_4DEB,a=1,第一寄存器、第二寄存器、第三寄存器的位宽均为48比特,其具体计算过程为:
(1)将模数0xBDBB_764D_4DEB输入第一寄存器中;
(2)将第一寄存器中的最低4比特0xB输入组合逻辑电路中,采用组合逻辑电路中的LUT计算4比特的基础MR值;
(3)将4比特的基础MR值0xD存入第二寄存器中;
(4)将第一寄存器中的模数与第二寄存器中的基础MR值相乘,并将乘积的最低48比特的值存入第三寄存器中,此时第一寄存器中的值为0xBDBB_764D_4DEB,第二寄存器中的值为0xD,第三寄存器中的值为0xA285 01EC F4EF;
(5)将第三寄存器中的值输入加法电路中加上数值2后进行加法运算,运算完成后存入第三寄存器,此时第三寄存器中的值为0xA285 01EC F4F1;
(6)将第三寄存器中的值与第二寄存器中的值相乘,乘积最低8比特的值存入第二寄存器中,此时第二寄存器中的值为0x3D;
(7)将第一寄存器中的模数与第二寄存器中当前存储的值相乘,乘积的最低48比特的值存入第三寄存器中,此时第一寄存器中的值为0xBDBB_764D_4DEB,第二寄存器中的值为0x3D,第三寄存器中的值为0x35AB 306B 90FF;
(8)将第三寄存器中的值输入加法电路中加上数值2后进行加法运算,运算完成后存入第三寄存器,此时第三寄存器中的值为0x35AB 306B 9101;
(9)将第三寄存器中的值与第二寄存器中的值相乘,乘积最低16比特的值存入第二寄存器中,此时第二寄存器中的值为0x8D3D;
(10)将第一寄存器中的模数与第二寄存器中当前存储的值相乘,乘积的最低48比特的值存入第三寄存器中,此时第一寄存器中的值为0xBDBB_764D_4DEB,第二寄存器中的值为0x8D3D,第三寄存器中的值为0x75D3 C455 FFFF;
(11)第三寄存器中的值输入加法电路中加上数值2后进行加法运算,运算完成后存入第三寄存器,此时第三寄存器中的值为0x75D3 C456 0001;
(12)将第三寄存器中的值与第二寄存器中的值相乘,乘积最低32比特的值存入第二寄存器中,此时第二寄存器中的值为0x267E 8D3D;
(13)将第一寄存器中的模数与第二寄存器中当前存储的值相乘,乘积的最低48比特的值存入第三寄存器中,此时第一寄存器中的值为0xBDBB_764D_4DEB,第二寄存器中的值为0x267E 8D3D,第三寄存器中的值为0x2970 FFFF FFFF;
(14)第三寄存器中的值输入加法电路中加上数值2后进行加法运算,运算完成后存入第三寄存器,此时第三寄存器中的值为0x2971 0000 0001;
(15)将第三寄存器中的值与第二寄存器中的值相乘,乘积最低48比特的值存入第二寄存器中,此步骤中可计算出64比特的MR值,由于第二寄存器的位宽为48比特,且只需计算48比特的MR值,因此,此时第二寄存器中只存储48比特的MR值,该值为0x1CED 267E8D3D。
本发明所述的计算蒙哥马利模乘算法中MR值的电路在计算任意比特的MR值时,只需调整第一寄存器、第二寄存器以及第三寄存器的位宽,便可快速地计算出2n比特的MR值,极大缩短蒙哥马利模乘算法中MR值的计算时间,提高了蒙哥马利模乘算法中MR值的运算速度。
在一实施例中,本发明还提供一种蒙哥马利模乘电路,该电路保护上述计算蒙哥马利模乘算法中MR值的电路。采用蒙哥马利模乘电路进行模乘运算时,若涉及到计算蒙哥马利模乘算法中的MR值时,只需通过上述计算蒙哥马利模乘算法中MR值的电路,便可得到蒙哥马利模乘算法中的MR值。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种计算蒙哥马利模乘算法中MR值的方法,其特征在于,所述蒙哥马利模乘算法中 模数的位宽为N比特,所述蒙哥马利模乘算法中MR值的位宽为K比特,
Figure DEST_PATH_IMAGE001
,n为正 整数,a为1或2;所述方法包括:
S1、将所述模数的最低4a比特的值输入至组合逻辑电路中,得到与所述最低4a比特的值对应的基础MR值;其中,所述基础MR值与所述模数的乘积的最低4a比特中每个比特位上的值均为1;
S2、将所述模数与所述基础MR值相乘,得到第一乘积;
S3、将所述第一乘积的最低N比特的值输入至加法电路中进行加法运算,得到加法运算后的值;
S4、将加法运算后的值与所述基础MR值相乘,得到第二乘积;
S5、若n=1,则将所述第二乘积的最低K比特的值作为所述蒙哥马利模乘算法中的MR值;其中,所述最低K比特的值与所述模数的乘积的最低K比特中每个比特位上的值均为1;
S6、若n>1,根据n-1确定重复步骤S2-S4的次数,并将所述第二乘积的最低K比特的值作为中间MR值,所述中间MR值替换所述基础MR值以重复步骤S2-S4,直至得到所述蒙哥马利模乘算法中的MR值。
2.一种计算蒙哥马利模乘算法中MR值的电路,其特征在于,采用权利要求1所述的方法生成所述蒙哥马利模乘算法中MR值,所述电路包括:第一寄存器、组合逻辑电路、第二寄存器、多路器、乘法器、第三寄存器以及加法电路,其中,
所述第一寄存器用于存储所述模数;
所述组合逻辑电路的输入端与所述第一寄存器的输出端连接,所述组合逻辑电路的输出端用于输出所述模数的最低4a比特的值对应的基础MR值;
所述第二寄存器的输入端分别与所述组合逻辑电路的输出端、所述乘法器的输出端连接,所述第二寄存器用于存储MR值,所述MR值为所述基础MR值、中间MR值以及所述蒙哥马利模乘算法中的MR值中任意一种;所述中间MR值的位宽小于K比特;
所述多路器的输入端分别与所述第一寄存器的输出端、所述第三寄存器的输出端连接,所述多路器的输出端与所述乘法器的输入端连接并用于将所述模数、所述第三寄存器中存储的值分别输出至所述乘法器中;
所述第三寄存器的输入端分别与所述乘法器的输出端、所述加法电路的输出端连接,所述第三寄存器用于存储所述模数与所述第二寄存器中MR值的乘积、以及所述加法电路中生成的值;
所述乘法器的输入端与所述第二寄存器的输入端连接,并用于将所述模数与所述第二寄存器中MR值相乘,同时还用于将所述加法电路中生成的值与所述第二寄存器中MR值相乘,以得到所述中间MR值或所述蒙哥马利模乘算法中的MR值;
所述加法电路的输入端与所述第三寄存器的输出端连接,并用于对所述第三寄存器中的值进行加法运算。
3.根据权利要求2所述的计算蒙哥马利模乘算法中MR值的电路,其特征在于,所述第一寄存器的位宽为N比特。
4.根据权利要求2所述的计算蒙哥马利模乘算法中MR值的电路,其特征在于,所述第二寄存器的位宽为N比特,所述蒙哥马利模乘算法中MR值的位宽小于或等于N比特。
5.根据权利要求4所述的计算蒙哥马利模乘算法中MR值的电路,其特征在于,若K>N,则将所述加法电路中生成的值与所述第二寄存器中MR值的乘积的最低N比特的值作为所述蒙哥马利模乘算法中MR值,并存储于所述第二寄存器中。
6.根据权利要求2所述的计算蒙哥马利模乘算法中MR值的电路,其特征在于,所述第三寄存器的位宽为N比特,所述模数与所述第二寄存器中MR值的乘积的最低N比特的值存储于所述第三寄存器中。
7.根据权利要求6所述的计算蒙哥马利模乘算法中MR值的电路,其特征在于,所述模数与所述第二寄存器中MR值的乘积的最低N比特的值在所述加法电路中进行加法运算。
8.根据权利要求7所述的计算蒙哥马利模乘算法中MR值的电路,其特征在于,所述模数与所述第二寄存器中MR值的乘积的最低N比特的值在所述加法电路中与数值2相加,并将生成的值存储于所述第三寄存器中。
9.根据权利要求8所述的计算蒙哥马利模乘算法中MR值的电路,其特征在于,若所述加法电路中生成的值的位宽大于N比特,将所述生成的值中的最低N比特的值存储于所述第三寄存器中。
10.一种蒙哥马利模乘电路,其特征在于,包括权利要求2-9中任意一项所述的计算蒙哥马利模乘算法中MR值的电路。
CN202210229606.7A 2022-03-10 2022-03-10 计算蒙哥马利模乘算法中mr值的方法及电路 Active CN114327370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210229606.7A CN114327370B (zh) 2022-03-10 2022-03-10 计算蒙哥马利模乘算法中mr值的方法及电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210229606.7A CN114327370B (zh) 2022-03-10 2022-03-10 计算蒙哥马利模乘算法中mr值的方法及电路

Publications (2)

Publication Number Publication Date
CN114327370A true CN114327370A (zh) 2022-04-12
CN114327370B CN114327370B (zh) 2022-06-21

Family

ID=81033825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210229606.7A Active CN114327370B (zh) 2022-03-10 2022-03-10 计算蒙哥马利模乘算法中mr值的方法及电路

Country Status (1)

Country Link
CN (1) CN114327370B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004226674A (ja) * 2003-01-23 2004-08-12 Renesas Technology Corp 情報処理方法
US20050149595A1 (en) * 2002-04-29 2005-07-07 Infineon Technologies Ag Apparatus and method for calculating a result of a modular multiplication
US20060010192A1 (en) * 2002-12-23 2006-01-12 Infineon Technologies Ag Apparatus and method for calculating a multiplication
US20100146028A1 (en) * 2008-10-30 2010-06-10 Certicom Corp. Method and apparatus for modulus reduction
CN103226461A (zh) * 2013-03-26 2013-07-31 中山大学 一种蒙哥马利模乘方法及其电路
US20150277855A1 (en) * 2014-03-31 2015-10-01 Samsung Electronics Co., Ltd. Montgomery multiplication method for performing final modular reduction without comparison operation and montgomery multiplier
CN107040362A (zh) * 2015-12-29 2017-08-11 智能Ic卡公司 模乘设备和方法
CN109814838A (zh) * 2019-03-28 2019-05-28 贵州华芯通半导体技术有限公司 获取加解密运算中的中间结果组的方法、硬件装置和系统
CN112070222A (zh) * 2020-11-10 2020-12-11 深圳致星科技有限公司 用于联邦学习的处理架构、加速器及方法
CN112733161A (zh) * 2020-12-30 2021-04-30 深圳致星科技有限公司 用于联邦学习密文运算的装置及方法
CN112865954A (zh) * 2021-04-26 2021-05-28 深圳致星科技有限公司 用于Paillier解密的加速器、芯片及系统
CN112988237A (zh) * 2021-04-21 2021-06-18 深圳致星科技有限公司 一种Paillier解密系统、芯片和方法
US20210243006A1 (en) * 2020-01-31 2021-08-05 Infineon Technologies Ag Integrated circuit for modular multiplication of two integers for a cryptographic method, and method for the cryptographic processing of data based on modular multiplication
CN113468099A (zh) * 2021-05-31 2021-10-01 深圳致星科技有限公司 可重构计算装置、处理器及方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149595A1 (en) * 2002-04-29 2005-07-07 Infineon Technologies Ag Apparatus and method for calculating a result of a modular multiplication
US20060010192A1 (en) * 2002-12-23 2006-01-12 Infineon Technologies Ag Apparatus and method for calculating a multiplication
JP2004226674A (ja) * 2003-01-23 2004-08-12 Renesas Technology Corp 情報処理方法
US20100146028A1 (en) * 2008-10-30 2010-06-10 Certicom Corp. Method and apparatus for modulus reduction
CN103226461A (zh) * 2013-03-26 2013-07-31 中山大学 一种蒙哥马利模乘方法及其电路
US20150277855A1 (en) * 2014-03-31 2015-10-01 Samsung Electronics Co., Ltd. Montgomery multiplication method for performing final modular reduction without comparison operation and montgomery multiplier
CN107040362A (zh) * 2015-12-29 2017-08-11 智能Ic卡公司 模乘设备和方法
CN109814838A (zh) * 2019-03-28 2019-05-28 贵州华芯通半导体技术有限公司 获取加解密运算中的中间结果组的方法、硬件装置和系统
US20210243006A1 (en) * 2020-01-31 2021-08-05 Infineon Technologies Ag Integrated circuit for modular multiplication of two integers for a cryptographic method, and method for the cryptographic processing of data based on modular multiplication
CN112070222A (zh) * 2020-11-10 2020-12-11 深圳致星科技有限公司 用于联邦学习的处理架构、加速器及方法
CN112733161A (zh) * 2020-12-30 2021-04-30 深圳致星科技有限公司 用于联邦学习密文运算的装置及方法
CN112988237A (zh) * 2021-04-21 2021-06-18 深圳致星科技有限公司 一种Paillier解密系统、芯片和方法
CN112865954A (zh) * 2021-04-26 2021-05-28 深圳致星科技有限公司 用于Paillier解密的加速器、芯片及系统
CN113468099A (zh) * 2021-05-31 2021-10-01 深圳致星科技有限公司 可重构计算装置、处理器及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
车文洁等: "Montgomery模乘法器的实现与优化", 《计算机应用与软件》 *

Also Published As

Publication number Publication date
CN114327370B (zh) 2022-06-21

Similar Documents

Publication Publication Date Title
US20080292100A1 (en) Non-linear data converter, encoder and decoder
US8495116B2 (en) Circuit and method converting boolean and arithmetic masks
JP4783382B2 (ja) モンゴメリ法用乗算剰余計算装置
US7480691B2 (en) Arithmetic device for multiple precision arithmetic for Montgomery multiplication residue arithmetic
CN114327370B (zh) 计算蒙哥马利模乘算法中mr值的方法及电路
JP4177526B2 (ja) 乗算剰余演算方法および乗算剰余回路
JP2004227344A (ja) 乗算器及び暗号回路
JPH11212456A (ja) モンゴメリ法による乗算剰余計算装置
CN114615069B (zh) 一种Quartet轻量级加密算法的实现装置及方法
US7039186B2 (en) Encryption key generation circuit
CN115270155A (zh) 一种获取大数拓展最大公约数的方法及硬件架构
US20050086278A1 (en) Method and apparatus for performing multiplication in finite field GF(2n)
JP2002358010A (ja) べき乗剰余演算器
CN114626537B (zh) 一种基于x86平台SIMD的不可约多项式及量子安全哈希值计算方法
Shibuya et al. FPGA Implementation of Stream Cipher SOSEMANUK
KR100377173B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
JPH1152850A (ja) 暗号変換方法および装置
JPH11237973A (ja) 乗算器
CN109033894B (zh) 普通轮变换运算单元、普通轮变换电路及其aes加密电路
JP4472808B2 (ja) 積和演算装置及びこれを用いた暗号・復号装置
JP3592242B2 (ja) 2進10進変換回路及びその方法
JP4042215B2 (ja) 演算処理装置およびその方法
JPS6350883A (ja) 分割整数剰余計算機
JP3242231B2 (ja) 暗号化装置
WO2020231353A1 (en) A low-latency redundant multiplier and method for the same

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant