CN115268839A - 一种以2为基的蒙哥马利模乘方法及装置 - Google Patents
一种以2为基的蒙哥马利模乘方法及装置 Download PDFInfo
- Publication number
- CN115268839A CN115268839A CN202210742595.2A CN202210742595A CN115268839A CN 115268839 A CN115268839 A CN 115268839A CN 202210742595 A CN202210742595 A CN 202210742595A CN 115268839 A CN115268839 A CN 115268839A
- Authority
- CN
- China
- Prior art keywords
- calculation
- montgomery
- bit
- unit
- modulus
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000004364 calculation method Methods 0.000 claims abstract description 119
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 abstract description 13
- 238000005457 optimization Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000007704 transition Effects 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/722—Modular multiplication
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种以2为基的蒙哥马利模乘方法及装置。通过简化减法运算、中间系数和乘法运算等操作,对以2为基的标准蒙哥马利模乘算法进行了结构性调整与优化。其装置包括顶层控制单元、数据分发单元以及核心计算单元,顶层控制单元的输入端连接输入数据X、Y、N、计算完成信号、中间计算结果,其输出端输出蒙哥马利计算数A、B、模数N、最终结果以及最终结果有效信号;数据分发单元与顶层控制单元连接,输出蒙哥马利计算数A的某一比特位、计算数B、模数N以及数据分发完成信号;核心计算单元与数据分发单元连接,输出中间计算结果以及计算完成信号。本发明应用于大数模乘运算,可使实际运行中所需的用时和资源大大减少。
Description
技术领域
本发明涉及一种以2为基的蒙哥马利模乘方法及装置,属于超大规模集成电路的数字信号处理领域和信息加密领域。
背景技术
RSA算法是目前应用最为广泛的非对称密码体制之一,其原理是:由数论可知,寻找两个几百甚至上千比特位的大素数较为简单,而将它们的乘积进行因式分解以求解出这两个大素数的过程却极其困难。根据这一原理可以得到相应的公钥私钥对。RSA算法利用这一公钥私钥对作为幂指数进行模幂运算来实现对原始文本的加密和解密操作。
RSA算法的性能主要取决于将模幂运算分解后的模乘和幂运算的效率。由于在RSA算法中涉及的运算均为上千位的大数计算,模乘运算便成为了RSA算法的速度瓶颈。影响模乘运算速度的主要因素为模运算,而模运算本质上就是除法运算,除法运算与加减乘法运算相比存在更多时间和空间上的损耗,这将大大降低RSA加密解密的运算速度。为了解决这一问题,1985年,蒙哥马利通过将乘数与被乘数转化为模数N的剩余类表示(蒙哥马利域),进而发现了一种只需加法乘法运算和数的移位运算就可以实现模乘运算的算法,由于在这一过程中,本应使用的除法运算被乘法运算和移位运算代替,因此蒙哥马利模乘算法实现了更加高效的模乘运算。
目前在实现任意长度的蒙哥马利模乘运算时,每次循环计算中存在对大数的逐位比较、减法运算以及大量乘法运算这样消耗大量硬件资源和时间资源的操作,导致在硬件上实现该算法的计算效率较低,因此需要更加适合硬件实现的方式代替对以上操作的使用。
发明内容
为了优化硬件的面积和功耗,提高系统的性能和能效比,本发明提供一种优化的以2为基的蒙哥马利模乘方法及装置。
本发明方法采用的技术方案如下:
一种以2为基的蒙哥马利模乘方法,该方法的具体步骤包括:
S1,根据乘数X和Y的位长k求得RRN,其中RRN=2^2(k+3)mod N,N为模数;将乘数X和RRN分别赋值至计算数A和B,并按如下步骤对计算数A、B和模数N进行蒙哥马利模乘运算:
S11,将计算数A的位长扩展为k+3并令A的最高两位A[k+2]和A[k+1]为0,将计算数B的位长扩展为k+2后左移一位并令B的最低位B[0]为0,然后将上一次循环得到的蒙哥马利模乘计算结果S的最低位S[0]赋值至中间系数q,再使用判断语句实现将计算数A的最低位A[0]与计算数B的乘积和中间系数q与模数N的乘积的求和,并将上述求和结果与蒙哥马利模乘计算结果S进行求和并右移一位后得到更新后的S的值;其中,第一次循环中参加运算的计算结果S的初始值为0;
S12,对步骤S11重复进行k+3次,每次运算中的最低位A[0]由计算数A的第i位A[i]代替,并在运算结束后将i的值加1;当i的值等于k+2时循环运算结束;更新计算结果S为中间计算结果mid_S并作为X’,X’为乘数X在蒙哥马利域中的值;
S2,将乘数Y和RRN分别赋值至计算数A、B并重复步骤S1,获得Y’,Y’为乘数Y在蒙哥马利域中的值;
S3,将X’和Y’分别赋值至计算数A、B并重复步骤S1,获得Z’,Z’为乘数X和Y以N为模数模乘的最终结果Z在蒙哥马利域中的值;
S4,将Z’和1分别赋值至计算数A、B并重复步骤S1,获得最终结果Z。
进一步地,所述步骤S11中,由于计算数A的第i位A[i]和中间系数q均为1bit的数,先将两者拼接为一个2bit的数后再进行判断,若拼接后为00,则令S更新为S;若为01,则令S更新为S+N;若为10,则令S更新为S+B;若为11,则令S更新为S+B+N。
本发明还提供一种以2为基的蒙哥马利模乘实现装置,包括:
顶层控制单元,用于接收输入数据以及来自核心计算单元的数据,并根据顶层控制单元状态机当前状态以及从核心计算单元输入的信号选择需要进行蒙哥马利模乘的计算数和模数;
数据分发单元,用于接收顶层控制单元传输的计算数和模数,并将计算数A从低到高逐位传输给核心计算单元,同时将计算数B和模数N传输给核心计算单元;
核心计算单元,用于接收数据分发单元传输的数据,其输入端连接数据分发单元的输出端,且用于计算得到新的中间计算结果并将其传输至顶层控制单元。
进一步地,所述顶层控制单元包括四个状态的状态机结构,四个状态分别为:将乘数X转化至蒙哥马利域、将乘数Y转化至蒙哥马利域、在蒙哥马利域中进行运算以及将Z’从蒙哥马利域中转化为最终结果Z,其中Z’为最终结果Z在蒙哥马利域中的值;所述顶层控制单元的输入端输入乘数X、Y和模数N、计算完成信号和中间计算结果mid_S,其输出端向数据分发单元输出蒙哥马利计算数A、B和模数N,向外部输出最终结果Z以及最终结果有效信号Z_done;当所述顶层控制单元遍历上述四个状态后,即完成对输入数据X、Y、N的模乘运算,得到最终结果Z。
进一步地,所述数据分发单元用于将计算数A从低到高逐位传输给核心计算单元,同时将计算数B和模数N传输给核心计算单元;当计算数A的最高位传输完成后,所述数据分发单元向核心计算单元传输数据分发完成信号;所述数据分发单元的输入端输入顶层控制单元输出的蒙哥马利计算数A、B和模数N,其输出端输出蒙哥马利计算数A的某一比特位、计算数B、模数N以及数据分发完成信号dis_done。
进一步地,所述核心计算单元包括一个多路选择器、两个加法器以及一个移位寄存器;核心计算单元的输出端向顶层控制单元输出中间计算结果mid_S以及计算完成信号Z_done。
本发明基于标准算法进行简化减法运算、中间系数和乘法运算等操作,对以2为基的蒙哥马利模乘算法进行了结构性调整与优化。其中,简化减法运算优化了对上千比特位大数的逐位比较和减法运算;简化中间系数计算减少了循环中一次加法和一次高位乘法运算;优化乘法运算将原有循环中的三个乘法器和三个加法器简化为一个多路选择器和两个加法器。本发明的硬件架构在实际实现过程中,时间延迟、硬件面积及功耗均大大减少,提高了整体性能和能效比,相较于现有的标准蒙哥马利模乘算法有着很大的优势。
附图说明
图1利用蒙哥马利模乘进行模乘运算的流程示意图,(a)一次完整模乘运算流程图(其中包含四次蒙哥马利模乘),其中,X、Y、N表示输入数据,Z表示输出数据,X’Y’Z’表示相应数据在蒙哥马利域中的值;(b)标准蒙哥马利模乘操作流程图,其中,A、B、N表示输入数据,S表示蒙哥马利模乘计算结果。
图2为本发明采用简化减法运算、中间系数和乘法运算操作后的蒙哥马利模乘伪代码。
图3为本发明利用蒙哥马利模乘进行模乘运算的整体硬件架构示意图。
图4为本发明顶层控制单元的结构示意图。
图5为本发明数据分发单元的结构示意图。
图6为本发明仅采用简化减法运算时核心计算单元的结构示意图。
图7为本发明采用简化减法运算和中间系数计算时核心计算单元的结构示意图。
图8为本发明采用简化减法运算、中间系数计算以及乘法运算时核心计算单元的结构示意图。
具体实施方式
本发明实施例提供了一种优化的以2为基的蒙哥马利模乘方法,具体步骤包括:
S1,当接收到乘数X、Y、模数N时,根据乘数X和Y的位长k求得RRN,其中RRN=2^2(k+3)mod N,N为模数;将乘数X和RRN分别赋值至计算数A和B,并按如下步骤对计算数A、B和模数N进行蒙哥马利模乘运算:
S11,将计算数A的位长扩展为k+3并令A的最高两位A[k+2]和A[k+1]为0,将计算数B的位长扩展为k+2后左移一位并令B的最低位B[0]为0,然后将上一次循环得到的蒙哥马利模乘计算结果S的最低位S[0]赋值至中间系数q,再使用判断语句实现将计算数A的最低位A[0]与计算数B的乘积和中间系数q与模数N的乘积的求和,并将上述求和结果与蒙哥马利模乘计算结果S进行求和并右移一位后得到更新后的S的值;其中,第一次循环中参加运算的计算结果S的初始值为0;
S12,对步骤S11重复进行k+3次,每次运算中的最低位A[0]由计算数A的第i位A[i]代替,并在运算结束后将i的值加1;当i的值等于k+2时循环运算结束;更新计算结果S为中间计算结果mid_S并作为X’,X’为乘数X在蒙哥马利域中的值;
S2,将乘数Y和RRN分别赋值至计算数A、B并重复步骤S1,获得Y’,Y’为乘数Y在蒙哥马利域中的值;
S3,将X’和Y’分别赋值至计算数A、B并重复步骤S1,获得Z’,Z’为乘数X和Y以N为模数模乘的最终结果Z在蒙哥马利域中的值;
S4,将Z’和1分别赋值至计算数A、B并重复步骤S1,获得最终结果Z。
本发明优化的以2为基的蒙哥马利模乘方法如图2所示,相比于现有标准蒙哥马利模乘算法进行了结构性调整与优化,具体包括:
1、简化减法运算:如图1(b)所示,在标准蒙哥马利模乘运算的过程中,S的范围为S<2N,因此在循环结束后还需至多进行一次比较以及减法运算。如果将输入的计算数A和B也收敛在2N之内,便可在连续模乘运算的过程中省去S和N的比较以及S-N的减法计算,只需在最后一次模乘后进行一次减法运算即可得到最终结果。为使A<2N,B<2N,本发明令k→k+2,这样2N<2(k+2)-1;在保证A<2N,B<2N后,为使在增加了循环次数后,仍有S<2N,这里分别扩展A和B的位长为k+2和k+1并令A的最高位A[k+1]=0。
一次蒙哥马利模乘运算并未进行完整的模乘运算,如图1的(a)图所示,完整的模乘运算还需进行一次蒙哥马利模乘运算MMM(Z’,1)运算,因此最终结果为ZR=Z’+QN(其中Q为将每次循环中的q按位排列得到的数,R为2^(k+2))。下面的推导证明了本发明将保证乘数X和Y以N为模数模乘的最终结果Z满足Z<N:
ZR=Z’+QN
Z=(Z’+QN)/R
Z≤(Z’+(R-1)N)/R (1)
Z<(R+1)N/R
Z<(R+1)N/R
Z<N+N/R
由于N/R<1且Z和N均为正整数,故有Z≤N。而如果Z=N,则有Z’≡0mod N,进而推得A≡0mod N。然而由定义可知A<N,因此S≠N,同时可得S<N,故上述最后一次模乘后进行的减法运算也可省去
2、简化中间系数的计算:在消除了减法运算的基础上,可以进一步简化中间系数q的计算,现有的中间系数q的计算公式如下,
q=S[0]+A[i]B[0] (2)
由于S[0]和A[i]均参与循环,因此只能在B[0]处进行优化。将B左移一位,即令B→2B,这样做的好处是使得b[0]=0,进而本发明将q的计算公式将简化为q=S[0]。然而由于B的值变为了之前的两倍,需要通过增加一次循环(即k+2→k+3),将计算数A的位长扩展为k+3并令A的最高两位A[k+2]和A[k+1]为0,将计算数B的位长扩展为k+2以获得正确的模乘结果。上述减少一次加法和一次高位乘法运算的数据处理方法将显著提高模乘运算的运行速度。
3、简化乘法运算:由于在乘法A[i]B和qN中,A[i]和中间系数q均为1bit的数,可以使用判断语句实现乘法操作,即先将A[i],q拼接为一个2bit数后再进行判断,若拼接后为00,则令S更新为S;若为01,则令S更新为S+N;若为10,则令S更新为S+B;若为11,则令S更新为S+B+N。如此可以省略两次乘法运算,只需至多进行两次加法运算即可完成当前循环。
本实施例还提供一种实现上述方法的装置,包括顶层控制单元、数据分发单元以及核心计算单元,如图3所示。其中,顶层控制单元接收输入数据X、Y、N和中间计算结果mid_S,输出最终结果Z,,并以状态机的形式控制其余单元进行如图1(a)所示的四次蒙哥马利模乘;数据分发单元将从顶层控制单元得到的计算数A逐位分发给核心计算单元,同时将计算数B、模数N分发给核心计算单元;核心计算单元将分发得到的数据计算后得到中间计算结果并将其传输给顶层控制单元存储。这一过程中,计算数A的各位分发完成以及核心计算单元计算完成后,顶层控制单元的一个状态进行完成。当第四个状态完成后,输出最终结果Z。
上述装置的具体实现流程包括:
(1)顶层控制单元接受输入数据以及来自核心计算单元的数据,根据状态机当前状态以及数据分发单元和核心计算单元输入的信号选择需要进行蒙哥马利模乘的计算数和模数。其中,由于采用了简化减法运算和中间系数计算的优化,计算数RRN将不同于标准算法如图4所示,顶层控制单元为包括四个状态的状态机结构,四个状态分别为:将乘数X转化至蒙哥马利域、将乘数Y转化至蒙哥马利域、在蒙哥马利域中进行运算以及将Z’从蒙哥马利域中转化为最终结果Z,其中Z’为最终结果Z在蒙哥马利域中的值。顶层控制单元的输入端输入乘数X、Y和模数N、计算完成信号和中间计算结果mid_S,其输出端向数据分发单元输出蒙哥马利计算数A、B和模数N,向外部输出最终结果Z以及最终结果有效信号Z_done;当顶层控制单元遍历上述四个状态后,即完成对输入数据X、Y、N的模乘运算,得到最终结果Z。
(2)数据分发单元在接受顶层控制单元传输的蒙哥马利模乘的计算数和模数后,将计算数A从低到高逐位,以及计算数B、模数N等大数传输给核心计算单元。当计算数A的最高位传输完成后,数据分发单元向核心计算单元传输数据分发完成信号。数据分发单元的数据接口如图5所示,其输入端输入顶层控制单元输出的蒙哥马利计算数A、B和模数N,其输出端输出蒙哥马利计算数A的某一比特位、计算数B、模数N以及数据分发完成信号dis_done。
(3)核心计算单元输入端连接数据分发单元的输出端,在接受数据分发单元传输的各计算数后,计算得到新的中间计算结果mid_S并将其传输至顶层控制单元。
实施例1
本实施例使用如图3所示的整体硬件架构以及图6所示的核心计算单元,用于采用简化减法运算的优化方法。对于输入数据X、Y为k位大数时,由上述简化减法运算的优化,RRN为2^2(k+2)mod N;装置的输入端与各单元的系统时钟信号clk、系统复位信号rst_n以及顶层控制单元的输入数据X、Y、N相连,输出端与顶层控制单元的最终结果Z以及最终结果有效信号Z_done相连。
当输入数据X、Y、N信号到来且系统时钟信号上升沿时,顶层控制单元中的状态机处于00,计算出RRN的值并将X和RRN分别赋值到计算数A和B,将计算数A和B输出至数据分发单元。数据分发单元接收到计算数A并将其最高位扩展使得A[k+1]=0,逐位提取为A[i]并将A[i]、B、N分发至核心计算单元进行循环运算,即第一次循环分发A[0],第二次循环分发A[1],以此类推。同时,计数器开始计数,分发完成A的最高位A[k+1]后计数器置零,同时向核心计算单元传输分发完成信号dis_done。
核心计算单元在收到A[i]、B和N后开始与上一次循环得到的S进行计算,并在系统时钟信号上升沿到来时更新S的值,当接收到分发完成信号dis_done且完成计算后将S赋值至中间计算结果mid_S,同时将中间计算结果mid_S和计算完成信号cal_done传输至顶层控制单元。
当计算完成信号cal_done有效时,顶层控制单元接收中间计算结果mid_S并将其赋值到X’,且状态机转移至下一状态01。
当状态机处于状态01时,各单元重复上一状态的操作,与状态00不同的是,顶层控制单元将Y和RRN分别赋值到计算数A和B,同时,在cal_done有效时,将当前中间计算结果mid_S赋值到Y’,且状态机转移至下一状态10。
当状态机处于状态10和11时,其操作与上述状态同理,分别进行Z’=MMM(X’,Y’)以及Z=MMM(Z’,1)的计算,当状态11结束时,装置通过顶层控制单元输出最终结果Z以及最终结果有效信号,同时状态机转移至状态00等待下一组输入数据的到来。
实施例2
本实施例使用如图3所示的整体硬件架构以及图7所示的核心计算单元,用于采用简化减法运算和中间系数计算的优化方法。各单元接口与实施例1中均相同。区别在于,本实施例中RRN为2^2(k+3)mod N,且在数据分发单元中,将计算数A的最高位扩展使得A[k+2]=A[k+1]=0,将计算数B向左移位使得B[0]=0。本实施例的核心计算单元相较于实施例1中减少了一个乘法器和一个加法器,减少了装置的面积和功耗。
实施例3
本实施例使用如图3所示的整体硬件架构以及图8所示的核心计算单元,用于采用简化减法运算、中间系数计算以及乘法运算的优化方法。如图8所示,核心计算单元包含一个多路选择器、两个加法器以及一个移位寄存器,多路选择器以计算数B、模数N、B+N以及0为输入信号,S[0]和A[i]为判断信号,A[i]B+qN为输出信号;一个加法器实现B与N的加法运算;另一个加法器实现S与A[i]B+qN的加法运算;移位寄存器实现对后一加法器输出信号的移位运算,以更新后的S为输出信号。核心计算单元的输入端连接计算数A的一位、计算数B和模数N,经计算后其输出端连接顶层控制单元,向其传输新的中间计算结果mid_S以及计算完成信号cal_done。本实施例在实施例2的基础上仅对核心计算单元进行了优化,其余计算数以及循环次数均与实施例2相同。本实施例的核心计算单元相较于实施例2,用一个多路选择器代替了两个乘法器,可使实际运行中所需的用时和资源大大减少,提高性能和能效比。
Claims (6)
1.一种以2为基的蒙哥马利模乘方法,其特征在于,该方法的具体步骤包括:
S1,根据乘数X和Y的位长k求得RRN,其中RRN=2^2(k+3)mod N,N为模数;将乘数X和RRN分别赋值至计算数A和B,并按如下步骤对计算数A、B和模数N进行蒙哥马利模乘运算:
S11,将计算数A的位长扩展为k+3并令A的最高两位A[k+2]和A[k+1]为0,将计算数B的位长扩展为k+2后左移一位并令B的最低位B[0]为0,然后将上一次循环得到的蒙哥马利模乘计算结果S的最低位S[0]赋值至中间系数q,再使用判断语句实现将计算数A的最低位A[0]与计算数B的乘积和中间系数q与模数N的乘积的求和,并将上述求和结果与蒙哥马利模乘计算结果S进行求和并右移一位后得到更新后的S的值;其中,第一次循环中参加运算的计算结果S的初始值为0;
S12,对步骤S11重复进行k+3次,每次运算中的最低位A[0]由计算数A的第i位A[i]代替,并在运算结束后将i的值加1;当i的值等于k+2时循环运算结束;更新计算结果S为中间计算结果mid_S并作为X’,X’为乘数X在蒙哥马利域中的值;
S2,将乘数Y和RRN分别赋值至计算数A、B并重复步骤S1,获得Y’,Y’为乘数Y在蒙哥马利域中的值;
S3,将X’和Y’分别赋值至计算数A、B并重复步骤S1,获得Z’,Z’为乘数X和Y以N为模数模乘的最终结果Z在蒙哥马利域中的值;
S4,将Z’和1分别赋值至计算数A、B并重复步骤S1,获得最终结果Z。
2.根据权利要求1所述的一种以2为基的蒙哥马利模乘方法,其特征在于,所述步骤S11中,由于计算数A的第i位A[i]和中间系数q均为1bit的数,先将两者拼接为一个2bit的数后再进行判断,若拼接后为00,则令S更新为S;若为01,则令S更新为S+N;若为10,则令S更新为S+B;若为11,则令S更新为S+B+N。
3.一种以2为基的蒙哥马利模乘实现装置,其特征在于,包括:
顶层控制单元,用于接收输入数据以及来自核心计算单元的数据,并根据顶层控制单元状态机当前状态以及从核心计算单元输入的信号选择需要进行蒙哥马利模乘的计算数和模数;
数据分发单元,用于接收顶层控制单元传输的计算数和模数,并将计算数A从低到高逐位传输给核心计算单元,同时将计算数B和模数N传输给核心计算单元;
核心计算单元,用于接收数据分发单元传输的数据,其输入端连接数据分发单元的输出端,且用于计算得到新的中间计算结果并将其传输至顶层控制单元。
4.根据权利要求3所述的一种以2为基的蒙哥马利模乘实现装置,其特征在于,所述顶层控制单元包括四个状态的状态机结构,四个状态分别为:将乘数X转化至蒙哥马利域、将乘数Y转化至蒙哥马利域、在蒙哥马利域中进行运算以及将Z’从蒙哥马利域中转化为最终结果Z,其中Z’为最终结果Z在蒙哥马利域中的值;所述顶层控制单元的输入端输入乘数X、Y和模数N、计算完成信号和中间计算结果mid_S,其输出端向数据分发单元输出蒙哥马利计算数A、B和模数N,向外部输出最终结果Z以及最终结果有效信号Z_done;当所述顶层控制单元遍历上述四个状态后,即完成对输入数据X、Y、N的模乘运算,得到最终结果Z。
5.根据权利要求3所述的一种以2为基的蒙哥马利模乘实现装置,其特征在于,所述数据分发单元用于将计算数A从低到高逐位传输给核心计算单元,同时将计算数B和模数N传输给核心计算单元;当计算数A的最高位传输完成后,所述数据分发单元向核心计算单元传输数据分发完成信号;所述数据分发单元的输入端输入顶层控制单元输出的蒙哥马利计算数A、B和模数N,其输出端输出蒙哥马利计算数A的某一比特位、计算数B、模数N以及数据分发完成信号dis_done。
6.根据权利要求3所述的一种以2为基的蒙哥马利模乘实现装置,其特征在于,所述核心计算单元包括一个多路选择器、两个加法器以及一个移位寄存器;核心计算单元的输出端向顶层控制单元输出中间计算结果mid_S以及计算完成信号Z_done。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210742595.2A CN115268839A (zh) | 2022-06-28 | 2022-06-28 | 一种以2为基的蒙哥马利模乘方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210742595.2A CN115268839A (zh) | 2022-06-28 | 2022-06-28 | 一种以2为基的蒙哥马利模乘方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115268839A true CN115268839A (zh) | 2022-11-01 |
Family
ID=83764716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210742595.2A Pending CN115268839A (zh) | 2022-06-28 | 2022-06-28 | 一种以2为基的蒙哥马利模乘方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115268839A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785129A (zh) * | 2024-02-23 | 2024-03-29 | 蓝象智联(杭州)科技有限公司 | 一种基于gpu的蒙哥马利模乘运算方法 |
-
2022
- 2022-06-28 CN CN202210742595.2A patent/CN115268839A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785129A (zh) * | 2024-02-23 | 2024-03-29 | 蓝象智联(杭州)科技有限公司 | 一种基于gpu的蒙哥马利模乘运算方法 |
CN117785129B (zh) * | 2024-02-23 | 2024-05-07 | 蓝象智联(杭州)科技有限公司 | 一种基于gpu的蒙哥马利模乘运算方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3784156B2 (ja) | モジュラ掛け算方法 | |
Okada et al. | Implementation of Elliptic Curve Cryptographic Coprocessor over GF (2 m) on an FPGA | |
Kwon et al. | Two implementation methods of a 1024-bit RSA cryptoprocessor based on modified Montgomery algorithm | |
US5745398A (en) | Method for the implementation of modular multiplication according to the Montgomery method | |
US5210710A (en) | Modulo arithmetic processor chip | |
EP1471420A2 (en) | Montgomery modular multiplier and method thereof using carry save addition | |
KR100591761B1 (ko) | 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법 | |
Jeong et al. | VLSI array algorithms and architectures for RSA modular multiplication | |
KR100459732B1 (ko) | 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법 | |
CN115268839A (zh) | 一种以2为基的蒙哥马利模乘方法及装置 | |
Abdulrahman et al. | High-speed hybrid-double multiplication architectures using new serial-out bit-level mastrovito multipliers | |
US7266577B2 (en) | Modular multiplication apparatus, modular multiplication method, and modular exponentiation apparatus | |
US6912558B2 (en) | Multiplication module, multiplicative inverse arithmetic circuit, multiplicative inverse arithmetic control method, apparatus employing multiplicative inverse arithmetic circuit, and cryptographic apparatus and error correction decoder therefor | |
O'Rourke et al. | Achieving NTRU with Montgomery multiplication | |
CN115270155A (zh) | 一种获取大数拓展最大公约数的方法及硬件架构 | |
Premkumar et al. | High-speed and low-cost reverse converters for the (2n-1, 2n, 2n+ 1) moduli set | |
CN115202616A (zh) | 模乘器、安全芯片、电子设备及加密方法 | |
US5948051A (en) | Device improving the processing speed of a modular arithmetic coprocessor | |
US6138134A (en) | Computational method and apparatus for finite field multiplication | |
CN112631546A (zh) | 基于ko-8算法的高性能模乘器 | |
CN1550975A (zh) | 蒙哥马利模数乘法器及其方法 | |
Kavyashree et al. | Design and implementation of different architectures of montgomery modular multiplication | |
KR20070062901A (ko) | 중국인 나머지 정리(crt)와 캐리 저장 가산 기반의모듈러 곱셈 장치 및 방법 | |
KR100946256B1 (ko) | 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기 | |
KR100858559B1 (ko) | 잉여 이진수의 덧셈 방법, 잉여 이진수의 곱셈 방법, 잉여이진수 덧셈기 및 잉여 이진수 곱셈기 |
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 |