CN103226461A - 一种蒙哥马利模乘方法及其电路 - Google Patents

一种蒙哥马利模乘方法及其电路 Download PDF

Info

Publication number
CN103226461A
CN103226461A CN2013101009441A CN201310100944A CN103226461A CN 103226461 A CN103226461 A CN 103226461A CN 2013101009441 A CN2013101009441 A CN 2013101009441A CN 201310100944 A CN201310100944 A CN 201310100944A CN 103226461 A CN103226461 A CN 103226461A
Authority
CN
China
Prior art keywords
result
word
storer
register
polynomial expression
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
CN2013101009441A
Other languages
English (en)
Other versions
CN103226461B (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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201310100944.1A priority Critical patent/CN103226461B/zh
Publication of CN103226461A publication Critical patent/CN103226461A/zh
Application granted granted Critical
Publication of CN103226461B publication Critical patent/CN103226461B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种蒙哥马利模乘方法及其电路。方法中,模长度k=sw,w为算法每次处理的字长大小,s为算法for循环所需的次数;输入参数包括a、b和模数n,r为存储器,其高k位为存放输入参数a和输出结果的r2,低k位为存放输入参数b的r1;t为多项式临时计算结果,其余为中间变量,运算步骤为:计算r2=MonPro(a,b,n)=a*b*2-k mod n;将t和i赋零值;r32=r[i];令i为0开始外循环;计算(c,z1)=t[i]+r[i]*r32;(c,z1)=z1*n0';x2=z1;x1=r[i];令j为0开始内循环;计算(c,t[i+j])=t[i+j]+x1*r[i]+x2*n[i]+c;t[i+s]=c;变量j加1,当j小于s时重复内循环,否则退出内循环;变量i加1,当i小于s时重复外循环,否则退出外循环;判断t的高k位是否大于n,若是则将r2=r2-n,否则将t的低k位赋给r2;根据r2输出模乘结果。本发明能提高算法的运算速度和降低功耗。

Description

一种蒙哥马利模乘方法及其电路
技术领域
本发明涉及公钥加密领域,更具体地,涉及一种蒙哥马利模乘方法及其电路。
背景技术
公钥加密利用的是非对称密码,使用两个独立担忧存在着某种数学联系的密钥:公钥和私钥。通信的各方保密各自的私钥,公开其公钥,发送者使用接收者的动摇加密,接收者使用只有自己制动的私钥解密。公钥加密还可以用于解决数字签名的问题。
RSA是一种公钥加密算法,既可以作为数据加解密也可以用来数字签名和验证,这使得该算法得到了广泛的应用,例如网络信息安全、智能卡、安全芯片以及手机移动通信等。RSA算法的安全依赖于大数分解的难易性,随着计算机的飞速发展,512位密钥长度的RSA加密算法安全性受到威胁,因此高安全的应用中必须将密钥长度增加到1024位甚至2048位。密钥长度的增加使硬件电路设计变得复杂,需要占用更多的硬件资源开销,面积功耗都会大幅上升,速度也会下降。RSA加密最关键的计算步骤就是模乘,根据运算公式C=MEmodN,需要不断重复模乘操作以得到运算结果,模乘算法的优劣决定了整个加密运算时间的长短。
现有设计大部分采用蒙哥马利模乘算法优化加解密时间,然而一味的提高模乘速度会使得功耗和面积增加,这对面积和功耗受限制的芯片设计带来巨大的挑战。而且传统的模乘算法是在软件中实现,这将取决于处理器的速度,每个操作都需要取指令、译码以及执行指令,大大降低了算法执行速度。随着集成电路的发展,模乘算法大多采用硬件实现,其最关键的电路便是多项式乘加器。但由于乘加器功耗大,现有做法普遍是用多个时钟实现,非常速度慢。
发明内容
本发明旨在至少在一定程度上解决上述技术问题。
本发明的首要目的是提供一种高速低功耗的蒙哥马利模乘方法。
本发明的进一步目的是提供一种高速低功耗的蒙哥马利模乘电路。
本发明第一个目的技术方案为:
一种蒙哥马利模乘方法,模长度为k,k=sw,其中w为算法每次处理的字长大小,s为算法for循环所需的次数;输入参数包括a、b和模数n,r为一存储器,r的高k位为存放输入参数a和输出结果的r2,r的低k位为存放输入参数b的r1,t为多项式临时计算结果,r32、z1、c、x1、x2、n0'为中间变量,i和j为循环变量,其运算步骤为:
计算r2=MonPro(a,b,n)=a*b*2-k mod n;
将t和i赋零值;
将中间变量r32赋值为r的第s个字,其中,r32表示存储器r的第32为地址的数据;
令i为0开始外循环;
将t的第i个字与r32相乘,乘积结果与t的第i个字相加,结果的低k位赋给z1,高k位赋给c;
接着将z1与n0'相乘,乘积结果的低k位赋给z1,高k位赋给c,其中,n0`通过预先计算获取,n0'=-n0-1mod(232),n0是指模数n的低32位值,n从外部输入;
令x2=z1;令x1等于r的第i个字;
令j为0开始内循环;
将x1与r的第i个字相乘后的结果和x2与n的第i个字相乘后的结果相加,相加结果再加上c和t的第i+j个字,最终结果的低k位赋给t的第i+j个字,高k位赋给c;并令t的第i+s个字等于c,然后循环变量j加1,当j小于s时重复内循环,当j大于或者等于s时退出内循环;
循环变量i加1,当i小于s时重复外循环,当i大于或者等于s时退出外循环;
判断t的高k位是否大于n,若是则将r2=r2-n,否则将t的低k位赋给r2;
根据r2输出模乘结果。
在本方法中,多项式乘加器公式的运算只需要一个时钟周期,运算速度得到大大的提升。而且本发明的蒙哥马利模乘方法采用一体化设计集成相关操作,使得多项式乘加器公式只需要做两次加法以及两次乘法,时间复杂度为O(s2),大大简化了运算的复杂度,进一步提升运算的速度,降低系统功耗。
本发明第二个目的技术方案为:
一种蒙哥马利模乘电路,所述蒙哥马利模乘采用权利要求1所述的方法实现,所述电路包括依次连接的接口电路、SRAM存储器、蒙哥马利模乘控制器、临时寄存器和多项式乘加器;
接口电路与外部总线连接,将输入参数a、b写进SRAM存储器的r中,并将计算完毕后的输出结果读出;
SRAM存储器包括r存储器和t存储器,用于存储输入参数a、输入参数b、中间处理数据以及最终计算结果;
蒙哥马利模乘控制器用于产生地址和控制信号,读取SRAM存储器中的数据并放入相应寄存器中进行处理,其内设置有地址产生器、减法器、计数器和控制电路;
所述地址产生器用于产生状态跳转信号和访问SRAM存储器的地址信号;
减法器用于完成r2=r2-n的减法操作;
计数器用于计算外部循环次数i和内部循环次数j;
控制电路控制循环的进入和退出以及在每个时钟内,根据地址产生器产生的地址从SRAM存储器中取出相应数据放到临时寄存器中,并将中间结果和多项式临时计算结果t写回到SRAM存储器中;
临时寄存器用于暂存SRAM存储器读写数据以及多项式乘加器的输入输出结果;
多项式乘加器,用于完成如下计算:将x1与r的第i个字相乘后的结果和x2与n的第i个字相乘后的结果相加,相加结果再加上c和t的第i+j个字,最终结果的低k位赋给t的第i+j个字,高k位赋给c。
在本发明的蒙哥马利模乘电路中,多项式乘加器采用一体化设计,即用一个组合逻辑模块将两次加法、两次乘法运算集成在一起,大大降低了时间复杂度,提升了算法的运算速度。
在一种优选方案中,所述临时寄存器中包括七个寄存器:ti寄存器、x1寄存器、y1寄存器、x2寄存器、y2寄存器、c寄存器和z1寄存器。这七个寄存器分别用于暂存SRAM存储器读写数据以及多项式乘加器的输入输出结果。
所述SRAM存储器为双端口SRAM存储器,其在时钟的下降沿完成读操作,在时钟的上升沿完成写操作。
在一种优选方案中,所述SRAM存储器为双端口寄存器文件,其在时钟的下降沿完成读操作,在时钟的上升沿完成写操作。双端口寄存器功耗低,访问速度快,其在时钟的下降沿完成读操作,上升沿完成写操作,使其能够在一个时钟内完成读写操作。
在一种优选方案中,多项式乘加器对多项式采用基4的Booth编码,其产生的部分和利用4:2压缩器逐级压缩。
与现有技术相比,本发明技术方案的有益效果是:
本发明的多项式乘加器采用一体化设计,将两次加法、两次乘法运算集成在一起,使多项式乘加器能够在一个时钟周期内完成多项式的一次计算,降低了算法的时间复杂度,从而提升了算法的运算速度,降低整个算法运行的功耗。
附图说明
图1为本发明一种蒙哥马利模乘电路硬件实现架构图。
图2为本发明多项式乘加器采用华莱士树压缩结构的示意图。
图3为本发明关键路径图。
图4为本发明中涉及到的门控时钟电路图。
图5为本发明的模乘算法时序图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
一种蒙哥马利模乘方法,模长度为k,k=sw,其中w为算法每次处理的字长大小,s为算法for循环所需的次数;输入参数包括a、b和模数n、n0`,其中,n0`通过预先计算获取,n0'=-n0-1mod(232),n0是指模数n的低32位值;r为一存储器,r的高k位为存放输入参数a和输出结果的r2,也就是说输出结果保存在r2中,r的低k位为存放输入参数b的r1,t为多项式临时计算结果,r32、z1、c、x1、x2、n0'为中间变量,其中,r32表示存储器r的第32为地址的数据,i和j为循环变量,如图1所示,其通过如下运算步骤计算输出结果:
S1.r2=MonPro(a,b,n)=a*b*2-k mod n
S2.t=0,i=0;
S3.r32=r[s];
S4.for(i==0;i++;i<s)
S5.    (c,z1)=t[i]+r[i]*r32;
S6.    (c,z1)=z1*n0';
S7.    x2=z1;
S8.    x1=r[i];
S9.    for(j==0;j++;j<s)
S10.       (c,t[i+j])=t[i+j]+x1*r[i]+x2*n[i]+c;
S11.       t[i+s]=c;
S12.if    t2>n,then(r2=t2-n)
S13.   else(r2=t1)。
输出结果存储在r2中,通过r2即可得到输出结果。
本实施例采用一体化设计集成上述操作,S10中的多项式t[i+j]+x1*r[i]+x2*n[i]+c即为多项式乘加器公式,其只需要做两次加法以及两次乘法。在本实施例中,步骤S10和S11的计算只需要一个时钟周期,大大减少了运算的时钟周期,从而提高了蒙哥马利模乘的运算速度。很明显,本实施例中算法的时间复杂度为O(s2),假设是1024位模乘运算,s=w=32,于是一次模乘就只需要大概1024个时钟周期,从而能够提升算法的运算速度和降低系统的功耗。
开始工作之前,对t寄存器和i计数器清零,并从s地址的r存储器中读出内容放到r32寄存器中,然后开始第一重循环。S5、S6、S7、S8步骤为初始化操作步骤,是为了S10的高速计算做铺垫的,由于S9的循环i是不变化的,故可以在S7和S8中先计算出x1和x2,然后进入S9的s次循环,每次循环x1和x2都不需要重新载入。在第10步骤中,在时钟的上升沿将地址为i+j的t寄存器数据、x1寄存器、地址为i的r寄存器、x2寄存器、地址为i的n以及c寄存器放到多项式乘加器中,在下一个时钟上升沿将乘加器的内容保存回t存储器中,以上操作只需一个时钟便可完成复杂计算,这是速度提升的关键技术所在。
实施例2
本实施例以1024位模乘运算为例在硬件上实现实施例1所述的方法,以本实施例算法为基础实现的其他长度(如512位、2048位等)模乘运算及其硬件实现应当属于本发明的保护范围。
如图2所示,一种蒙哥马利模乘电路,其中蒙哥马利模乘采用上述蒙哥马利模乘方法实现,该电路包括依次连接的接口电路、SRAM存储器、蒙哥马利模乘控制器、临时寄存器和多项式乘加器;
接口电路与外部总线连接,将输入参数a、b写进SRAM存储器的r中,并将计算完毕后的输出结果读出;
SRAM存储器包括r存储器和t存储器,用于存储输入参数a、输入参数b、中间处理数据以及最终计算结果。以32位字长为单位,由于是1024位模乘运算,一共需要2048位r和t,因此需要64组r[i]和t[i](i为0到63的整数)。本实施例的SRAM存储器采用双端口存储器,在低功耗的应用场景,SRAM存储器也可以采用双端口寄存器文件,功耗低,访问速度快,可在一个时钟内完成读写操作,在时钟的下降沿完成读操作,上升沿完成写操作。为了加快读写操作,r存储器和t存储器可以同时执行读操作,写操作可以不在同一个时钟内执行。此外,在SRAM存储器不操作器件,可以将其使能信号关闭,降低功耗。采用SRAM存储器的好处在于,不仅可以获取高速读写能力,还可以节省面积,同样的存储内容,用SRAM存储器要比普通的寄存器要省一倍以上面积。
蒙哥马利模乘控制器,用于产生地址和控制信号,读取SRAM存储器中的数据并放入相应寄存器中进行处理,其内设置有地址产生器、减法器、计数器和控制电路;
所述地址产生器用于产生状态跳转信号和访问SRAM存储器的地址信号;
减法器用于完成r2=r2-n的减法操作,即实现实施例1中S12步骤中的减法操作。
计数器用于计算外部循环次数i和内部循环次数j;
控制电路控制循环的进入和退出以及在每个时钟内,根据地址产生器产生的地址从SRAM存储器中取出相应数据放到临时寄存器中,并将中间结果和多项式临时计算结果t写回到SRAM存储器中;
临时寄存器均为32位,包括七个寄存器,分别为ti寄存器、x1寄存器、y1寄存器、x2寄存器、y2寄存器、c寄存器和z1寄存器,用于暂存SRAM存储器读写数据以及多项式乘加器的输入输出结果。临时寄存器的增加使得从SRAM存钱到多项式乘加器的数据通路最为便捷。本发明采用了多个临时寄存器保存中间数据,寄存器功耗大,为了进一步降低功耗,其可以采用图4所示的门控时钟电路来降低寄存器的动态功耗,只有触发器需要干活时才给触发器时钟,否则不给时钟;图4的门控时钟电路包括第一寄存器D1、第二寄存器D2以及与门A1;该结构可以由DesignCompiler综合工具自动生成,在信号高电平期间锁存器是保持的,在信号低电平期间锁存器是透明的,此时数据可以传进来。
多项式乘加器,用于完成“t+x1*y1+x2*y2+c”计算,即将x1与r的第i个字相乘后的结果和x2与n的第i个字相乘后的结果相加,相加结果再加上c和t的第i+j个字,最终结果的低k位赋给t的第i+j个字,高k位赋给c。此多项式乘加器采用一体化设计,即用一个组合逻辑模块将两次加法、两次乘法运算做到一起。对于104为的模乘运算来说,多项式采用基4的booth编码原理,共产生36个部分和,为了最大限度提高性能,本实施例采用4:2压缩器逐级压缩部分和。如图2所示,第一级压缩需要9组压缩器,第二级需要4组压缩器,第三级需要2组压缩器,第四级需要1级压缩器,第五级需要1级压缩器,第六级采用全加器将剩余的两组累加起来并得到最后结果。多项式乘加器能在一个时钟周期计算出多项式t+x1*y1+x2*y2+c的结果,并保存在SRAM存储器中,算法第9步中的循环,每轮循环只需要一个时钟,其关键技术在于,每个时钟的下降沿将SRAM的数据读出到t、x1、y1、x2、y2以及c临时寄存器中,在紧接着的上升沿将上一次多项式计算结果写回SRAM中,其关键路径涉及到SRAM读写时间、时钟延时、组合逻辑延时以及多项式乘加器延时,其中延时最大的是多项式乘加器,图3所示是本发明关键路径图,总延时T由以下几部分组成,D3触发器延时TD3、组合逻辑路径延时Tlogic、多项式乘加器延时Tp以及SRAM存储器延时Tr,用公式表示如下:
T=TD3+Tlogic+Tp+Tr
其中Tp的延时是最大的,涉及到两个32位并行乘法器的延时。本发明通过优化多项式乘加器达到较高速度;模乘电路所需时间数量级为O(s2),大大节省操作时间。如图5所示是本发明关键操作时序图,clk为系统时钟,r0,r1和r2是r存储器的开始三个存储数据,rd_address是r存储器的读地址信号,sram_out为r存储器读出的数据,wr_address是r存储器的写地址,sram_in是r存储器的写数据。从图中可以看到,经过三个时钟上升沿后,每个时钟都有SRAM写数据操作,即用一个时钟实现了第9步和第10步的算法操作。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (6)

1.一种蒙哥马利模乘方法,其特征在于,模长度为k,k=sw,其中w为算法每次处理的字长大小,s为算法for循环所需的次数;输入参数包括a、b和模数n,r为一存储器,r的高k位为存放输入参数a和输出结果的r2,r的低k位为存放输入参数b的r1,t为多项式临时计算结果,r32、z1、c、x1、x2、n0'为中间变量,i和j为循环变量,其运算步骤为:
计算r2=MonPro(a,b,n)=a*b*2-k mod n;
将t和i赋零值;
将中间变量r32赋值为r的第s个字,其中,r32表示存储器r的第32为地址的数据;
令i为0开始外循环;
将t的第i个字与r32相乘,乘积结果与t的第i个字相加,结果的低k位赋给z1,高k位赋给c;
接着将z1与n0'相乘,乘积结果的低k位赋给z1,高k位赋给c,其中,n0`通过预先计算获取,n0'=-n0-1mod(232),n0是指模数n的低32位值,n从外部输入;
令x2=z1;令x1等于r的第i个字;
令j为0开始内循环;
将x1与r的第i个字相乘后的结果和x2与n的第i个字相乘后的结果相加,相加结果再加上c和t的第i+j个字,最终结果的低k位赋给t的第i+j个字,高k位赋给c;并令t的第i+s个字等于c,然后循环变量j加1,当j小于s时重复内循环,当j大于或者等于s时退出内循环;
循环变量i加1,当i小于s时重复外循环,当i大于或者等于s时退出外循环;
判断t的高k位是否大于n,若是则将r2=r2-n,否则将t的低k位赋给r2;
根据r2输出模乘结果。
2.一种蒙哥马利模乘电路,其特征在于,蒙哥马利模乘采用权利要求1所述的方法实现,所述电路包括依次连接的接口电路、SRAM存储器、蒙哥马利模乘控制器、临时寄存器和多项式乘加器;
接口电路与外部总线连接,将输入参数a、b写进SRAM存储器的r存储器中,并将计算完毕后的输出结果读出;
SRAM存储器包括r存储器和t存储器,用于存储输入参数a、输入参数b、中间处理数据以及最终计算结果;
蒙哥马利模乘控制器,用于产生地址和控制信号、读取SRAM存储器中的数据并放入相应寄存器中进行处理,其内设置有地址产生器、减法器、计数器和控制电路;
所述地址产生器用于产生状态跳转信号和访问SRAM存储器的地址信号;
减法器用于完成r2=r2-n的减法操作;
计数器用于计算外部循环次数i和内部循环次数j;
控制电路控制循环的进入和退出以及在每个时钟内,根据地址产生器产生的地址从SRAM存储器中取出相应数据放到临时寄存器中,并将中间结果和多项式临时计算结果t写回到SRAM存储器中;
临时寄存器用于暂存SRAM存储器读写数据以及多项式乘加器的输入输出结果;
多项式乘加器,用于完成如下计算:将x1与r的第i个字相乘后的结果和x2与n的第i个字相乘后的结果相加,相加结果再加上c和t的第i+j个字,最终结果的低k位赋给t的第i+j个字,高k位赋给c。
3.根据权利要求2所述的蒙哥马利模乘电路,其特征在于,所述临时寄存器中包括七个寄存器:ti寄存器、x1寄存器、y1寄存器、x2寄存器、y2寄存器、c寄存器和z1寄存器。
4.根据权利要求2所述的蒙哥马利模乘电路,其特征在于,所述SRAM存储器为双端口SRAM存储器,其在时钟的下降沿完成读操作,在时钟的上升沿完成写操作。
5.根据权利要求2所述的蒙哥马利模乘电路,其特征在于,所述SRAM存储器为双端口寄存器文件,其在时钟的下降沿完成读操作,在时钟的上升沿完成写操作。
6.根据权利要求2所述的蒙哥马利模乘电路,其特征在于,多项式乘加器对多项式采用基4的Booth编码,其产生的部分和利用4:2压缩器逐级压缩。
CN201310100944.1A 2013-03-26 2013-03-26 一种用于电路的蒙哥马利模乘方法及其电路 Expired - Fee Related CN103226461B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310100944.1A CN103226461B (zh) 2013-03-26 2013-03-26 一种用于电路的蒙哥马利模乘方法及其电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310100944.1A CN103226461B (zh) 2013-03-26 2013-03-26 一种用于电路的蒙哥马利模乘方法及其电路

Publications (2)

Publication Number Publication Date
CN103226461A true CN103226461A (zh) 2013-07-31
CN103226461B CN103226461B (zh) 2016-07-06

Family

ID=48836930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310100944.1A Expired - Fee Related CN103226461B (zh) 2013-03-26 2013-03-26 一种用于电路的蒙哥马利模乘方法及其电路

Country Status (1)

Country Link
CN (1) CN103226461B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683094A (zh) * 2013-11-29 2015-06-03 上海华虹集成电路有限责任公司 用于rsa密码的蒙哥马利阶梯算法
CN104765586A (zh) * 2015-04-15 2015-07-08 深圳国微技术有限公司 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法
TWI630545B (zh) * 2016-03-30 2018-07-21 華邦電子股份有限公司 非模數乘法器、用於非模數乘法的方法及計算裝置
CN109271137A (zh) * 2018-09-11 2019-01-25 网御安全技术(深圳)有限公司 一种基于公钥加密算法的模乘装置及协处理器
CN110457744A (zh) * 2019-06-27 2019-11-15 山东方寸微电子科技有限公司 一种sd/sdio设备仿真模型框架及其设计方法
CN112286496A (zh) * 2020-12-25 2021-01-29 九州华兴集成电路设计(北京)有限公司 蒙哥马利算法的模乘器和电子设备
CN112486457A (zh) * 2020-11-23 2021-03-12 杭州电子科技大学 一种实现改进的fios模乘算法的硬件系统
CN113342310A (zh) * 2021-06-18 2021-09-03 南京大学 一种应用于格密码的串行参数可配快速数论变换硬件加速器
CN114327370A (zh) * 2022-03-10 2022-04-12 湖北芯擎科技有限公司 计算蒙哥马利模乘算法中mr值的方法及电路
CN114706557A (zh) * 2022-04-01 2022-07-05 华控清交信息科技(北京)有限公司 一种asic芯片及蒙哥马利模乘的实现方法和装置
CN117785129A (zh) * 2024-02-23 2024-03-29 蓝象智联(杭州)科技有限公司 一种基于gpu的蒙哥马利模乘运算方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085210A (en) * 1998-01-22 2000-07-04 Philips Semiconductor, Inc. High-speed modular exponentiator and multiplier
WO2002073450A1 (fr) * 2001-03-14 2002-09-19 Bull S.A. Procede et dispositif pour reduire le temps de calcul d'un produit, d'une multiplication et d'une exponentiation modulaire selon la methode de montgomery
CN1492316A (zh) * 2003-09-09 2004-04-28 大唐微电子技术有限公司 一种蒙格玛丽模乘算法及其模乘、模幂运算电路
CN1786900A (zh) * 2005-10-28 2006-06-14 清华大学 基于改进的蒙哥马利算法的模乘器
TW200842611A (en) * 2007-04-24 2008-11-01 Chunghwa Telecom Co Ltd Modular exponentiation silicon intellectual property design architecture for increasing computation speed of cryptosystem
CN102207847A (zh) * 2011-05-06 2011-10-05 广州杰赛科技股份有限公司 基于蒙哥马利模乘运算的数据加解密处理方法及装置
US20120265794A1 (en) * 2011-04-18 2012-10-18 Inside Secure Montgomery multiplication circuit

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085210A (en) * 1998-01-22 2000-07-04 Philips Semiconductor, Inc. High-speed modular exponentiator and multiplier
WO2002073450A1 (fr) * 2001-03-14 2002-09-19 Bull S.A. Procede et dispositif pour reduire le temps de calcul d'un produit, d'une multiplication et d'une exponentiation modulaire selon la methode de montgomery
CN1492316A (zh) * 2003-09-09 2004-04-28 大唐微电子技术有限公司 一种蒙格玛丽模乘算法及其模乘、模幂运算电路
CN1786900A (zh) * 2005-10-28 2006-06-14 清华大学 基于改进的蒙哥马利算法的模乘器
TW200842611A (en) * 2007-04-24 2008-11-01 Chunghwa Telecom Co Ltd Modular exponentiation silicon intellectual property design architecture for increasing computation speed of cryptosystem
US20120265794A1 (en) * 2011-04-18 2012-10-18 Inside Secure Montgomery multiplication circuit
CN102207847A (zh) * 2011-05-06 2011-10-05 广州杰赛科技股份有限公司 基于蒙哥马利模乘运算的数据加解密处理方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DALY A, MARNANE W.: "Efficient architectures for implementing montgomery modular multiplication and RSA modular exponentiation on reconfigurable logic", 《PROCEEDINGS OF THE 2002 ACM》, 31 December 2002 (2002-12-31), pages 40 - 49 *
MCLOONE M, MCCANNY J V.: "Fast Montgomery modular multiplication and RSA cryptographic processor architectures", 《SIGNALS, SYSTEMS AND COMPUTERS》, 31 December 2004 (2004-12-31), pages 379 - 384 *
蒋晓娜,段成华: "改进的蒙哥马利算法及其模乘法器实现", 《计算机工程》, vol. 34, no. 12, 30 June 2008 (2008-06-30), pages 209 - 211 *
谢元斌,史江一,郝跃: "一种长整数模乘幂的改进算法与实现", 《西安电于科技人学学报(自然科学版)》, vol. 38, no. 2, 30 April 2011 (2011-04-30), pages 129 - 134 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683094A (zh) * 2013-11-29 2015-06-03 上海华虹集成电路有限责任公司 用于rsa密码的蒙哥马利阶梯算法
CN104683094B (zh) * 2013-11-29 2018-10-26 上海华虹集成电路有限责任公司 用于rsa密码的蒙哥马利阶梯算法
CN104765586A (zh) * 2015-04-15 2015-07-08 深圳国微技术有限公司 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法
CN104765586B (zh) * 2015-04-15 2018-09-28 深圳国微技术有限公司 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法
TWI630545B (zh) * 2016-03-30 2018-07-21 華邦電子股份有限公司 非模數乘法器、用於非模數乘法的方法及計算裝置
CN109271137A (zh) * 2018-09-11 2019-01-25 网御安全技术(深圳)有限公司 一种基于公钥加密算法的模乘装置及协处理器
CN110457744A (zh) * 2019-06-27 2019-11-15 山东方寸微电子科技有限公司 一种sd/sdio设备仿真模型框架及其设计方法
CN110457744B (zh) * 2019-06-27 2023-01-20 山东方寸微电子科技有限公司 一种sd/sdio设备仿真模型框架及其设计方法
CN112486457A (zh) * 2020-11-23 2021-03-12 杭州电子科技大学 一种实现改进的fios模乘算法的硬件系统
CN112286496A (zh) * 2020-12-25 2021-01-29 九州华兴集成电路设计(北京)有限公司 蒙哥马利算法的模乘器和电子设备
CN113342310A (zh) * 2021-06-18 2021-09-03 南京大学 一种应用于格密码的串行参数可配快速数论变换硬件加速器
CN113342310B (zh) * 2021-06-18 2023-08-22 南京大学 一种应用于格密码的串行参数可配快速数论变换硬件加速器
CN114327370A (zh) * 2022-03-10 2022-04-12 湖北芯擎科技有限公司 计算蒙哥马利模乘算法中mr值的方法及电路
CN114327370B (zh) * 2022-03-10 2022-06-21 湖北芯擎科技有限公司 计算蒙哥马利模乘算法中mr值的方法及电路
CN114706557A (zh) * 2022-04-01 2022-07-05 华控清交信息科技(北京)有限公司 一种asic芯片及蒙哥马利模乘的实现方法和装置
CN114706557B (zh) * 2022-04-01 2023-03-10 华控清交信息科技(北京)有限公司 一种asic芯片及蒙哥马利模乘的实现方法和装置
CN117785129A (zh) * 2024-02-23 2024-03-29 蓝象智联(杭州)科技有限公司 一种基于gpu的蒙哥马利模乘运算方法
CN117785129B (zh) * 2024-02-23 2024-05-07 蓝象智联(杭州)科技有限公司 一种基于gpu的蒙哥马利模乘运算方法

Also Published As

Publication number Publication date
CN103226461B (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN103226461A (zh) 一种蒙哥马利模乘方法及其电路
Alrimeih et al. Fast and flexible hardware support for ECC over multiple standard prime fields
Lutz et al. High performance FPGA based elliptic curve cryptographic co-processor
CN102999313B (zh) 一种基于蒙哥马利模乘的数据处理方法
US7835517B2 (en) Encryption processing apparatus, encryption processing method, and computer program
Kocabaş et al. Implementation of binary Edwards curves for very-constrained devices
CN103761068A (zh) 优化的蒙哥马利模乘方法、模平方方法和模乘硬件
Koschuch et al. Hardware/software co-design of elliptic curve cryptography on an 8051 microcontroller
Ghosh et al. Core based architecture to speed up optimal ate pairing on FPGA platform
CN103793199A (zh) 一种支持双域的快速rsa密码协处理器
CN102122241A (zh) 一种适用于素域和多项式域的模乘模除器
Harb et al. FPGA implementation of the ECC over GF (2m) for small embedded applications
Kumar et al. Reconfigurable instruction set extension for enabling ECC on an 8-bit processor
Gautschi et al. SIR10US: A tightly coupled elliptic-curve cryptography co-processor for the OpenRISC
US7693926B2 (en) Modular multiplication acceleration circuit and method for data encryption/decryption
Wang et al. Area-efficient and ultra-low-power architecture of RSA processor for RFID
Targhetta et al. Energy-efficient implementations of GF (p) and GF (2m) elliptic curve cryptography
Cui et al. High-speed elliptic curve cryptography on the NVIDIA GT200 graphics processing unit
CN1696894B (zh) 大数模乘计算乘法器
CN105094746A (zh) 一种椭圆曲线密码的点加/点倍的实现方法
Zimmermann et al. High-performance integer factoring with reconfigurable devices
CN106796505A (zh) 指令执行的方法及处理器
CN107463354A (zh) 一种面向ECC的双域并行度可变的Montgomery模乘电路
CN114510217A (zh) 处理数据的方法、装置和设备
Xie et al. Low-complexity systolic multiplier for GF (2 m) using Toeplitz matrix-vector product method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160706

Termination date: 20210326