当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于执行模幂运算的方法技术

技术编号:3515222 阅读:277 留言:0更新日期:2012-04-11 18:40
提供了一种用于执行模幂运算的方式。可以通过使用多个蒙哥马利乘法来完成模幂运算。蒙哥马利乘法包括多次迭代的基本操作(例如,进位保存加法),并由蒙哥马利乘法引擎(MME)来执行。多个较小尺寸的MME可以被链式连接在一起,以执行较大尺寸的模幂运算。另外,单个较小尺寸的MME可被调度来执行较大尺寸的模幂运算。此外,执行蒙哥马利乘法的过程可以在水平和垂直两个方向上流水线化。此外,执行两个蒙哥马利乘法的过程可以被交织在一起,并由同一个MME或链式连接的MME来执行。

【技术实现步骤摘要】

本专利技术总地涉及网络安全,更具体地,涉及执行模幂运算的方法和装置。
技术介绍
公钥密码术是诸如因特网密钥交换协议(IKE)(用在IP安全协议(IPSEC)中)和安全套接层协议(SSL)一类的密钥交换/连接建立协议的一部分。一些公钥安全方案,例如Diffie-Hellman密钥交换、Rivest Shamir Adleman(RSA)加密、RSA数字签名以及数字签名授权(DSA)都通常用于此目的。我们知道,公钥安全方案在计算上是非常密集的。作为大多数公钥安全方案核心的计算是超大数的模幂(modular exponentiation)运算。近来一般在使用512位和1024位的数字(密钥),并且还想增大密钥大小。不远的将来,模幂运算的操作数大小很有可能增大到2048和4096位数字,甚至更大。蒙哥马利乘法是一种用于执行模幂运算的常用方法。为了以当今网络所需的速率执行密钥交换/连接建立,需要专用的模幂运算硬件。当使用蒙哥马利乘法时,专用模幂运算硬件主要包括一个或多个蒙哥马利乘法引擎。蒙哥马利乘法引擎的速度影响着网络通信中执行密钥交换/连接建立的速度。因此,非常想要提高蒙哥马利乘法引擎(MME)的效率。另外,因为网络中的不同实体可以使用不同的密钥大小,并且公钥大小总地来说一直在增大,所以模幂运算硬件需要针对不同的密钥大小执行模幂运算。因此,模幂运算硬件内的MME需要执行不同大小的乘法,例如,如果公钥大小是512位的话,MME需要执行512位的操作数之间的乘法,如果公钥大小是1024位的话,则MME需要执行1024位的操作数之间的乘法。MME一般具有固定大小。例如,512位的MME被设计为对最大512位的操作数执行蒙哥马利乘法。理论上,大尺寸的MME可被用来对较小尺寸的操作数执行蒙哥马利乘法(例如,1024位的MME可被用来对512位的操作数执行蒙哥马利乘法),但是这样使用不见得有效率。因此,出于效率考虑,10种不同大小的MME应当被用来对10种不同的密钥大小执行模幂运算,每种大小的MME用于一种特定的密钥大小。随着密钥大小的增长,对于模幂运算硬件来说,如果每种密钥都要具有完全相同大小的MME,那么它很难适应于任意大小的密钥。很多具有模幂运算硬件的网络处理器,特别是那些中低端的处理器,出于成本和管芯(die)尺寸的考虑,一般都具有较小尺寸的MME。然而,这样的网络处理器仍然需要支持较大密钥大小的模幂运算。因此,非常想要使用较小尺寸的MME对较大尺寸的操作数执行蒙哥马利乘法。
技术实现思路
为实现以上目的,本专利技术提供了一种用于执行模幂运算的布置。可以通过使用多个蒙哥马利乘法来完成模幂运算。蒙哥马利乘法包括多次迭代的基本操作(例如,进位保存加法),并由蒙哥马利乘法引擎(MME)来执行。多个较小尺寸的MME可以被链式连接在一起,以执行较大尺寸的模幂运算。另外,单个较小尺寸的MME可被调度来执行较大尺寸的模幂运算。此外,执行蒙哥马利乘法的过程可以在水平和垂直两个方向上流水线化。此外,执行两个蒙哥马利乘法的过程可以被交织在一起,并由同一个MME或链式连接的MME来执行。根据本专利技术的一个方面,提供了一种用于执行模幂运算的装置,包括至少一个执行蒙哥马利乘法以完成模幂运算的蒙哥马利乘法引擎,即MME,所述模幂运算的尺寸由该模幂运算的模数中的位数来确定;和至少部分基于所述模幂运算的尺寸以及在所述至少一个MME当中的可用MME的尺寸,确定用于执行所述模幂运算的蒙哥马利乘法的方法的控制器。根据本专利技术的另一个方面,提供了一种,包括接收用于至少一个模幂运算的输入参数;至少部分基于所述至少一个模幂运算的尺寸,确定用于执行蒙哥马利乘法以完成所述至少一个模幂运算的方法;基于所确定的方法,使用至少一个蒙哥马利乘法引擎,即MME,来执行所述蒙哥马利乘法;以及基于来自所述至少一个MME的输出数据,产生所述至少一个模幂运算的结果。根据本专利技术的又一个方面,提供了一种网络系统,包括交换结构;多个通过所述交换结构互连的线卡;和多个模幂运算模块,每个模块可操作地与线卡耦合,用以执行模幂运算,模幂运算模块包括至少一个执行蒙哥马利乘法以完成模幂运算的蒙哥马利乘法引擎,即MME,所述模幂运算的尺寸由该模幂运算的模数中的位数来确定;和至少部分基于所述模幂运算的尺寸以及在所述至少一个MME当中的可用MME的尺寸,确定用于执行所述模幂运算的蒙哥马利乘法的方法的控制器,MME的尺寸是该MME被设计来支持的模幂运算的最大尺寸。附图说明从以下对本专利技术的详细描述中将会清楚本专利技术的特征和优点,其中图1图示了一种通用网络系统;图2的流程图示出了使用基于公钥安全方案的加密通信过程(现有技术);图3示出的伪码用于说明在基于公钥的加密过程中使用蒙哥马利乘法执行模幂运算的过程(现有技术);图4A、4B和4C示出的伪码用于说明执行蒙哥马利乘法的示例性过程;图5图示了蒙哥马利乘法的示例性实现方式;图6中的表图示了调度蒙哥马利乘法的过程;图7图示了使用多个较小尺寸的蒙哥马利乘法引擎来调度较大尺寸操作数的蒙哥马利乘法的过程;图8是一种示例性系统的框图,该系统通过链式连接多个不同尺寸的蒙哥马利乘法引擎,执行较大密钥尺寸的模幂运算;图9图示了使用单个较小尺寸的蒙哥马利乘法引擎来调度较大尺寸操作数的蒙哥马利乘法的过程;图10是一种示例性系统的框图,该系统使用单个较小尺寸的蒙哥马利乘法引擎,执行较大密钥尺寸的蒙哥马利乘法;图11的流程图示出了执行模幂运算的示例性过程;以及图12是包含基于蒙哥马利乘法的模幂运算模块的网络系统的图。具体实施例方式所公开技术的实施方案包括和装置。蒙哥马利乘法是一种用于执行模幂运算的常用方法,它可能是用于提高网络通信安全性的公钥安全方案中计算最密集的部分。蒙哥马利乘法可以通过一个或多个基本运算的多次迭代来完成。每个基本运算可以包括在分别具有一位或多位的两个操作数之间的加法或进位保存(carry-save)加法。一般来说,当蒙哥马利乘法用在公钥安全方案中时,迭代的次数等于密钥大小。基于公钥的密码术应用中的密钥大小在当今网络中一般为512位或1024位,但很有可能增大到2048位,甚至更高。即使对于512位的密钥来说,完成这么多数量的基本运算也是非常耗时的(特别是当基本运算是两位之间的运算时)。根据所公开技术的一个实施方案,一次迭代中的基本运算可被分组到多块中。在这些块中所包含的运算可以被流水线化(“水平流水线化操作”)。另外,不同迭代之间的块也可被流水线化(“垂直流水线化操作”)。此外,两个蒙哥马利乘法可被交织(interleave)在一起,并运行在同一引擎上(“交织操作”)。使用交织、水平流水线化和垂直流水线化技术,就可以提高蒙哥马利乘法引擎(MME)的效率。根据所公开技术的另一个实施方案,可以将多个较小尺寸的MME链式连接在一起,以对较大尺寸的操作数执行蒙哥马利乘法。还是根据本专利技术的另一个实施方案,单个较小尺寸的MME可被用来对较大尺寸的操作数执行蒙哥马利乘法。使用所公开的技术,具有较小尺寸MME的网络处理器可以以更高的效率来处理较大尺寸的公钥。在说明书中提及本专利技术的“一个实施方案”或“实施方案”是指关于该实施方案所描述的具体特征、结构或特性至少包括在本专利技术的一个实施本文档来自技高网
...

【技术保护点】
一种用于执行模幂运算的装置,包括:    至少一个执行蒙哥马利乘法以完成模幂运算的蒙哥马利乘法引擎(MME),所述模幂运算的尺寸由该模幂运算的模数中的位数来确定;以及    至少部分基于所述模幂运算的尺寸以及在所述至少一个MME当中的可用MME的尺寸,确定用于执行所述模幂运算的蒙哥马利乘法的方法的控制器。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:卡马尔科沙尔吉尔伯特沃尔里奇雅罗斯劳西迪尔瓦吉迪费格哈利
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1