计算模数乘法之结果的装置及方法

文档序号:6407459阅读:224来源:国知局
专利名称:计算模数乘法之结果的装置及方法
技术领域
本发明系相关于计算算法,以及,特别地相关于密码应用所需之计算算法。
密码长度系特别地会于公开密码密码学中,但亦会在其它的密码学领域之中,稳定地增加,此系因为,寄托于如此之密码算法上的安全性需求系亦在增加,而该RSA方法作为一非对称密码概念之一代表的使用,也就是说,一公开码方法的使用,系会于所使用之密码长度增加时,增加所谓暴力攻击的安全性,再者,由于暴力攻击系为在一密码算法上的攻击,其中,一密码系会推论自所有可能性的试验,因此,其系立即地证明,随着该密码长度增加,理论上,为了试验所有可能性,一暴力攻击所需要的时间量亦会增加。
应该要指出的是,在此上下文中,以前所使用之具有密码长度512比特的RSA应用系充分地加以考虑,而由于"其它侧(other side)″所造成之技术以及数学上地进展,因此,用于典型RSA应用的密码长度系接着被增加到1024比特,现今,有许多的人主张即使是此密码长度一不足够,因此,系以RSA密码长度2048比特为目标。
换言之,当考虑既存之密码协处理器,例如,于智能卡(SmartCards)上,时,其系可以发现,当然,有需要亦允许具有,举例而言,2048比特之密码长度的RSA应用,于实际上仅为了,举例而言,1024比特之密码长度而加以发展的密码电路上运作,因此,用于既存智能卡应用的算术协处理器系会以它们已经为了不适用于大多数当前之安全性需求,亦即,太短,之一特有比特长度而加以发展的特有事实为特征,而此系会导致,举例而言,一2048比特RSA算法系无法有效地在1024比特协处理器上受到掌控的事实,对RSA应用而言,中国剩余定理(ChineseRemainder Theorem,CRT)系为已知,其中,具有一大密码长度的一模数幕乘(modular exponentiation)系被破坏成为两个具有一半该密码长度的模数幕乘,据此,一半该长度之两个模数幕乘的结果系相对应地结合在一起。
近来,其系已经试验出,该中国剩余定理系特别地受到DFA(DFA=differential fault analysis,差分错误分析)攻击的影响。
因此,相关于许多方法的一个问题是,在密码计算中之一中心操作之所谓模式乘法的"加倍(doubling)″,所以,一模数幕乘系可以被破坏成为许多个模数乘法,亦即,成为一第一操作数A以及一第二操作数B之一乘积系在相关于一模数N之一剩余分类(residual class)中加以计算的一操作,而若是该等操作数A以及B的每一个系具有一2n比特的长度时,则具有一n比特长度的计算单元系会典型地加以使用,这些计算单元系因为它们长的长度而被称之为长数计算单元(long-numbercalculating units),正如相对于,举例而言,PC或工作站运算器所使用之,举例而言,8比特、16比特、32比特、或64比特架构。
是以,系有需要在一n比特计算单元上执行具有一比特长度2n之数A、B以及N的一模数乘法A*B mod N,然,此系非常的耗时,因为该等数A,B,N系仅可能小部分接着小部分的加以加载,而若是它们没有完全失败的话,则此即为为什幺习知的方法需要一大量的组织并且系为错误倾向(error-prone)的原因。在习知技术中,至目前为止,系有数种可以解决此问题的方法,而这些方法系已藉由蒙哥马利乘法(Montgomery multiplication)、正常乘法,亦即,具有Karatsuba-Ofman、及一接续缩减,例如,Barret缩减的关键词而为已知。
而在一"CRt窗口″中之一蒙哥马利乘法的另一使用概念则已经于P.Pailler,"Low-cost double size modular exponentiation or howto stretch your cryptocoprocessor″中提出。
所有如此之概念系于计算时间以及资料组织方面相当的昂贵,并且,因此并不总是有效率。
本发明的一目的系为提供一种用于计算可以有效地使用执行以及计算时间之一模式乘法的一结果的概念。
此目的系藉由权利要求1中所主张之装置、或是藉由权利要求10中所主张之方法而加以达成。
本发明系基于发现,相关于一模数、两个操作数、以及具有一,举例而言,2n比特长度的该模数,该等操作数的一模数修饰系可以藉由一较短长度,举例而言,该长度之一半,例如,n比特,的次操作数At,Ab,Bt及/或次模数Nt,Nb,而被转换成为MultModDiv运算的一预先决定之步骤顺序,该等MultModDiv运算(MMD运算)系与一较短长度,举例而言,该长度之一半,之该等次操作数及/或次模数一起作用,而在MultModDiv运算中,除了提供一模数乘法之余数的该MultMod运算之外,该已知Div运算的结果系亦被插入,再者,除了在一MMD运算中的该余数之外,该Div运算的结果,亦即,该模数的该整数商,系加以计算,根据该预先决定步骤顺序,并藉由输入参数以及模数而执行如此的一MMD运算数次系会引起源自该步骤顺序之预先决定步骤的整数商数值以及剩余数值,其所有系皆具有较短的比特长度,举例而言,n比特,以及其系亦藉由一n比特加法器,举例而言,而可以被加总,以及写入在分别地点的一结果存储位置。
用于此的基础系为,作为用于衍生一较佳预先决定步骤顺序之一条件方程式的一逼近(At*2n+Ab)(Bt*2n+Bb),乘开该式子系会引起不同的乘积,而其系一步一步地藉由一MMD运算而加以取代,接着,该模数缩减,亦即,其系接着计算A*B mod N,系藉由等式Nt*2n=-Nb而加以考虑。
该指数"t″系表示一操作数A,B及/或一模数N的上部位,反之,指数"b″(b=bottom)系代表该分别数的底部位,因此,该操作数A,举例而言,系产生为At*2n+Ab,而相同的情形亦适用于模数N以及该第二操作数B,由于,正如已经提出的,该等部分乘积系一步一步地藉由MMD运算而加以取代,因此,仅有具有一因子2n之较n比特为短之一长度的数、或是一n比特长度的数的乘积将会在复数个取代步骤之后留下来,该结合定向系亦可以加以执行为一n比特加法器,以结合,一方面,乘上该因子2n的该等中间结果,以及,以结合,另一方面,未应用一因子2n之该等中间结果。
藉由一2n比特长度之操作数及/或一模数所得出之该模数乘法的结果,当然,系再次地为一比特计数2n,其系藉由将不具该因子2n之该等中间结果的总和写入该结果内存之该低阶比特而被结合入一结果内存,反之,已应用2n之该等中间结果的总和系被写入该结果内存之该上部位,而其系有可能为,可能存在之自该结果内存中之该等底部位至该结果内存中之上部位的一进位系很快地受到考虑。
本发明的一个优点是,本发明之概念系允许用于具有相对而言较长长度之数,具有相对而言较短长度之计算单元的使用。
本发明的另一优点是,本发明的概念系为有效率的,本发明之概念在Advanced Crypto Engine of Infineon Technologies,Munich上的一执行与已经记载于本发明之序言中之Pailler的概念间的一比较系显示出,举例而言,RSA,之执行时间的40%减少。
本发明的一另一优点是,该Div信息,也就是该整数商,系可以藉由软件、或是藉由硬件,以及藉由容易执行之方法,而获得自该MultMod运算,该MultMod运算系典型地于每一个多目的密码运算器上加以执行,再者,在模数算术中,正如典型地在现代密码系统中被使用一样,该Div运算的结果,也就是相关于该模数的该整数商,因为其系已经不需要,因此,至目前为止,系已经被忽略,不过,依照本发明,现在,此信息系不再简单地被忽略,而是加以计算以及使用,以于较短之计算单元上藉由较长之操作数执行计算。
本发明之在一优点是,该Div运算系经常可以在不需要实际上为硬接线之该计算单元中有所改变的情形下,仅藉由在一密码运算器之控制器中的改变而加以计算,而根据该观点,该MMD运算系需要与该MultMod运算相同量的时间,但是却会于该Mod结果的上部上提供额外的信息,精确地说,依照本发明而使用的该Div结果。
本发明之较佳实施例将于之后,以所附图
式做为参考,而进行更详尽地解释,其中第1图其系显示依照本发明之一实施例的一装置的方块图;第2图其系显示操作数A的一代表,At,Ab系为用于一半长度之次操作数;第3图其系显示MMD运算的一示意代表;第4图其系显示初始MMD运算之一示意代表;第5图其系显示一预先决定之步骤顺序的一较佳实施例,其中,仅使用MMD运算;第6图其系显示一预先决定之步骤顺序的一较佳实施例,其中,仅使用一初始MMD运算;第7图其系显示一预先决定之步骤顺序的一较佳实施例,其中,仅使用MMD运算;第8图其系显示一预先决定之步骤顺序的一较佳实施例,其中,仅使用一初始MMD运算;
第9图其系显示用于自该等操作数A、B以及该模数N之一因式分解(factorization)而取得第5图之该预先决定步骤顺序的一代表图;第10图其系显示用于自对该等操作数A、B以及该模数N之一因式分解(factorization)而取得第7图之该预先决定步骤顺序的一代表图;以及第11图其系显示一本发明之结合装置的一方块图。
第1图系显示本发明用于计算一第一操作数A以及一第二操作数B之一模式乘法的一结果的一装置的方块图,其系相关于一模式N,该第一以及第二操作数,以及具有一第一比特长度,举例而言,2n比特长度,的模数,该等操作数系会被馈送进入用于提供次运算源的装置10之中,而藉由装置10所提供之次操作数系为At,Ab,而它们系产生自该第一操作数A,接着,该用于提供之装置10系更进一步地提供系产生自该第二操作数B的次操作数Bt,Bb,最后,该用于提供之装置10系会提供产生自该模数N的次模数Nt,Nb,且该等变量At,Ab,Bt,Bb,Nt,以及Nb系具有较原先数为短的长度。在本发明的一较佳实施例中,其中,最大成就系加以达成,亦即,其中,该模数乘法系可以藉由该最短的计算单元而加以执行,该等次操作数及/或次运算模数系具有一长度n,也就是说,它们系与该分别"原先操作数″的一半一样长。
再者,根据本发明之装置系包括MMD装置12,而其比特长度系相等于最大次操作数及/或次模数的比特长度。若是所有的该等次操作数以及次模数系具有相同的n比特长度时,则MMD装置系亦会具有一n比特的长度,该MMD运算系加以定义为,一整数商数值Q(i)以及一剩余数值R(i)系计算自两个经由输入端12a、12b而被馈送至该MMD装置的输入操作数,以及计算自经由一第三输入端12c而被提供的一MMD模式,以及系加以定义为,该商数值以及剩余数值系被输出于同时连接至控制装置14以及连接至结合装置16的一输出端12d处,该用于对该MMD装置馈送以输入运算以及相关之MMD模数之预先结合的控制装置14,其系会依照一预先决定之步骤顺序而一步一步地执行此馈送,该等输入操作数以及MMD模数系会基于该第一操作数A之该第一次操作数At以及该第二次操作数Ab,基于该第二操作数B之该第一次操作数Bt以及该第二次操作数Bb,基于该模数N之该第一次模数Nt以及该第二次模数Nb,基于变量2x以及在该预先决定之步骤顺序中在前步骤的整数商数值以及剩余数值,其中,x系,特别地,较2n为短,而在一较佳实施例中,系相等于n,亦即,相等于该控制装置14可获得之该等数的最大长度。
该结合装置16系加以执行,以结合来自该预先决定之步骤顺序之预先决定步骤的整数商数值以及剩余数值,而获得结果E=A*B mod N,其系再次地具有一长度2n比特。
该用于提供之装置10之运算模式系将于之后,以第2图做为参考,而进行更详尽地解释。第2图系显示用于储存,举例而言,该第一操作数A之具有一2n比特长度的一第一站存器20。该用于提供之装置10系会藉由将该等前x个比特复制进入一次操作数寄存器22之中,而产生该操作数A的该第一次操作数Ab,其中,在较佳实施例中,x系相等于n,反之,该寄存器20的剩余比特,At,则被复制进入一第二次操作数寄存器24,因此,该第一以及第二次操作数系可以藉由简单地分开该基本长数操作数之该等比特而加以获得,所以,源自该两个次操作数寄存器22以及24的数系可以依照第2图所显示的方程式,亦即,藉由将该第一操作数写入一结果寄存器A,以及藉由将该第二操作数同样地也写入该结果寄存器,但向左移n个比特,正如因子2n所代表的,而再次地产生该原先的操作数。
第3图系显示该MMD装置12之运算模式的一更详细代表图,相同地包括,特别是,用于执行一MMD运算的一MMD运算子30,而"MMD″系代表"MultModDiv″,该MMD运算系会自三个输入数值A(i),B(i),以及N(i)而产生该整数商数值Q(i)以及一剩余数值R(i),以作为一模数,该剩余数值系照例藉由该mod运算而加以定义,反之,该商数值Q则是对应于A*B除以N的整数结果,因此,该MMD运算系会将该乘积A*B转换成为由该整数商与该模数之乘积以及该剩余数值所形成的总和,在右上角的该指数(i)系会符号化在该控制装置14所执行之该预先决定之步骤顺序中的一特殊步骤i,以利用一适当的方式控制该MMD装置12。
在本发明之一较佳实施例中,较佳地是,该预先决定之顺序不仅是包括MMD算,而是除了该MMD运算之外,亦会执行至少一初始MMD运算,该初始MMD运算系藉由在第4图标示为40的一方程式而加以定义,该运算系会将一式子A*B+C*2n转换成为乘上模数的一整数商以及余数的一表述,C系为任何所需的数,至于其数值n,该指数n系会对应于上述的例子,其中,该等原先的操作数A、、以及N系具有一n比特的长度,以及其中,该等次操作数及/次模数系具有一n比特之长度,若是使用不同于对半该等操作数的一分割时,则n将必须由第4图中之该数值x所取代,x系相等于该第一次操作数Ab,Bb及/或该次模数Nb的比特的数量,该整数余A系会如在第4图之方程式42中所表示地加以定义,此外,该整数商Q则会如在第4图之方程式44中所表示地加以定义,因此,一初始MMD运算子30b系会执行具有显示该等输入操作数A(i),B(i),N(i),C(i)以及n之一式子的一所谓的输出MMD运算,进而产生该整数商Q(i)以及该剩余数值R(i),以作为输出数值。
应该要指出的是,该初始MMD运算系为一特殊定义的运算,若是该预先决定之步骤顺序系在一MMD运算之外亦包括一初始MMD运算时,则其系亦可以于第1图之该MMD装置12中执行,在此例子,第1图之该MMD装置12系亦将被提供以该参数C以及该参数n,以作为该输入变量。
请参阅第5图,接着系叙述包括仅利用第1图之一MMD单元12以及第1图之具有一较短比特长度(较佳地为该比特长度之一半)的结合装置16,而计算A*B mod N之模数乘法之结果的七个MultModDiv运算的一步骤顺序。在一第一步骤51中,一第一整数商Q(i)以及一第一剩余数值R(i)系利用该等输入操作数Bt以及2n再加上该MMD模数Nt而加以计算,在一第二步骤中,一第二整数商以及一第二剩余数值则是利用将该第一剩余数值以及该第一次模数Nb作为输入操作数而加以计算,而正如在第5图中所表示的一样,此程序系接续着步骤53,54,55,56,以及57,以于最终接收一第七整数商数值Q(7)以及一第七剩余数值R(7),其系利用该第一操作数A之该第一次操作数Ab与该第二操作数B之该第二次操作数Bb以及数2n作为该MMD模数,而获得自一MMD运算。
第5图中,具有标题"输出″的一方程式58系代表第1图之该结合装置16的该结合运算,特别地是,该结合装置系首先会形成剩余数值R(7)-R(6)-R(5)的一总和,以作为一第一总和,再者,第1图的该等结合装置16系会计算R(3)+R(4)-Q(5)-Q(6)+Q(7)的一总和,以作为一第二总和,而正如在第5图所表示的一样,该第二总和系被乘上该因子2n,并且,接续地被加上该第一总和,也正如第11图所表示的,此运算系亦可以藉由一n比特计算单元,也就是说,一较点长度之一计算单元,而加以执行。
其系可由第5图获得证实,在第5图中所显示之该预先决定之步骤顺序中,仅需要具有输入操作数以及MMD模数之相对应结合的七个MMD运算,若是B系已于事先为已知时,正如通常的例子一样,则该前面的两个MMD运算系可以事先先加以计算,因此,系会得出5个MMD运算的一线上效能(online performance)的结果,不过,应该要特别注意的是,该预先决定之步骤顺序的该第三步骤53,在此步骤中,该式子R(1)-Q(2)+Bb系被使用作为该MMD运算的该第二输入操作数,而因为此式子系有可能变为负,因此,Q(3)以及Q(5)(第5图的第五步骤55)系亦可以变为负,在此例子中,其系较佳地采用在负数值会于其中发生的那些例子之模数算术领域中,系为普遍以及已知的适当预防,例如,举例而言,增加一模数,以将一负的结果带入正确的剩余分类(residual class)之中,也就是说,进入介于0以及构成该计算之基础的该模数之间的剩余分类之中。
第6图系显示一替代的预先决定顺序,其中,除了第3图的该MMD运算30a之外,第4图的该初始MMD运算30b系亦加以使用。当在第6图中所显示之该预先决定的步骤顺序的一第一步骤61中时,一第一商数值Q(1)以及一第一剩余数值R(1)系藉由At,Bt,以及一MMD模数Nt而计算自一MMD运算,接着,一初始MMD运算(MultModDivInt)系于步骤62中举行,精确地说,系具有作为该第一输入操作数的该第一输入操作数(对应于第4图的A),具有作为该第二输入操作数的-Q(1)(对应于第4图的B),具有作为该第三输入操作数的R(1)(对应于第4图的C),以及具有作为该MMD模数的该第二次模数Nt(对应于第4图的N)。
其系可以由第6图中看出,不像第5图,仅需要六个MMD运算,其中,一个运算,精确地说,在该第二步骤62中的该第二运算,系为一初始MMD运算,而要更进一步指出的是,由于Q(2)系可以变为负,其系在此成为可能,因此,再次地,上述之用于负变量的方法系可能必须加以使用。
在第6图的一行67中,第1图的该结合装置16所执行的任务系再次地加以表示,该任务系包括,形成R(5)以及-R(6)的该第一总和,形成R(2)+R(3)+R(4)+Q(5)-Q(6)的该第二总和以获得该第二总和,并且,以结合该第一以及第二总和,若是需要考虑一进位(carry)时,则正如将于之后以第11图作参考而具有之更详尽解释一样。
第7图其系显示包括用于计算平方该操作数A之结果之步骤71,72,73,74,75,76的一预先决定步骤顺序。在此例子中,该第一操作数系会对应于该第二操作数,亦即,该第一以及第二运算源系为相同的,而从第7图系可以看出,在第7图中所显示之该平方算法中,系没有使用具有初始的MMD运算,以及全部六个MMD运算系为足够,正如相对于若是该第一以及第二操作数并不相同时所需要的七个MMD运算一样,此外,其系应该要指出的是,由于存在于该第三步骤中的差异,因此,该第三商数值Q(3)以及该第四商数值Q(4)两者系会变为负的。
第8图系显示依照一替代实施例的一预先决定步骤顺序,其中,一初始MMD运算系再次地于该预先决定步骤顺序的该第二步骤82中加以使用,而该第一以及第二输入操作数系分别为Nb以及-Q(1),该第三输入操作数(对应于第4图中的C)系为该第一剩余数值R(1),以及该第一次模数Nt系被用作为该MMD模数。若是一初始MMD运算系加以使用时,则会产生五个MMD运算,正如相对于第7图在没有初始情况下的六个MMD运算,再次地,其系应该要指出的是,该第二整数商数值Q(2)系可能变为负的。
各种预先决定步骤顺序的一示范性衍生将于之后藉由第9A图以及第9B图而加以讨论。
特别地是,第9A图系显示用于不具有初始之一乘法之在第5图中所示之该预先决定步骤顺序的一衍生,而第9B图,相对地,则是显示用于具有初始之一乘法,也就是说,一初始MMD运算系于其中发生在该预先决定步骤顺序之一步骤中的一乘法,之在第6图中所示之该预先决定步骤顺序的一衍生。
第10图系显示用于不具初始之一平方的第7图的该预先决定步骤顺序的一衍生,也就是说,仅具有MMD运算,没有在该预先决定步骤顺序之任何步骤中执行任何初始MMD运算。
第9A图、第9B图、以及第10图的每一个系皆开始于建立相关的乘积进行计算,然而,现在,系加以考虑在第2图中所表示的连结,亦即,该第一以及第二操作数A、B系已经被该分别的第一以及第二次操作数所取代的事实,正如可以自第9A图之90a、第9B图之90b、以及第10图的100看出的一样,特别地是,一第一项次At*Z+Ab以及一第二项次Bt*Z+Bb的一乘积系加以建立,并且加以乘开。
接下来,请参阅在第9A图中的一示范性方式。乘开系产生在第9A图中的一行91,举例而言,在第9A图之该行91的该第一项次中,该乘积Bt*Z系经历会一MMD运算,z系对应于该数2n,正如在第9图、第9B图、以及第10图之右半边所表示一样,而由于该模数的该第一次模数Nt系被使用作为用于此第一MMD运算的该MMD模数,因此,系可以获得一第二行92,在其中,系出现了该第一整数商Q(1)以及该第一整数剩余R(1),接着,在一行93中,系使用提供于行93之右边的一关系,而该关系则在于陈述,乘上z的该第一次模数Nt乃会相等于该第二次模数NbmodN的负值,此连结系源自于下列的条件方程式N=Nt*Z+Nb.
若是Nb系自整个方程式被减去时,则会得到下列的方程式N-Nb=Nt*Z.
若是此方程式被缩减,在上述方程式中之左手侧的N被删除的话,因此系会得到下列的方程式Nt*Z=-Nbmod N.
藉由使用用于乘开于第9A图中该行92之该第一个刮号的上述条件方程式,其中,系会产生该因子Q(1)*Nt*At*Z,而当考虑第9A图之行93的该第二项次时,此因子系会变为-At*Q(1)*Nb,正如可由第9A图之一行93看出的一样,接着,在第9A图的一行94中,此第二项次现在会经历一MMD运算(第5图的步骤52),以获得一行94,在此之后,上述在Nt*Z以及-Nb之间的连结系会再次地加以考虑,而此程序系会重复数次,因此,在行91中所形成的该等部分乘积系会利用MMD运算而一步一步地加以处理,所以,仅会留下一n比特长度以及一因子2n之数、或是一n比特长度之数的乘积,正如可由第9A图之最后一行看出的一样,其系对应于第5图的行58。
在第9B图中所显示的该衍生例子系对应于第6图之该预先决定步骤顺序,亦即,对应于具有初始的一般乘法,一MultModDivInt,其亦为一初始MMD运算,系于一行95中加以执行,精确地说,系藉由第9B图的该第一项次。该第一操作数(对应于第4图的A)系为Nb,该第二操作数(对应于第4图中的B)系为该数值-Q(1),该第三操作数(对应于第4图的C)系为R(1),反之,该数Z系对应于2n,正如已经解释过的,该MMD初始运算的结果系显示于第9B图之行96的第一项次之中。
第10图系显示用于平方,也就是说,用于表示于第7图中之该预先决定步骤顺序,之不具有初始的一相对应衍生,原则上,其系再次地以相似于在第9A图以及第9B图中所示之该衍生的方式而加以执行。
由上述的表述系可以证实,任何预先决定的步骤顺序系皆可以利用由于数学转换之多样可能性的总和乘法逼近(sum multiplicationapproach)(90a,90b,100)而加以形成,以解决在该"总和乘积逼近(sum-product approach)″中所显示的运算,因此,将仅会留下具有一n比特长度的商数值以及剩余数值,及/或适当乘上2n的商数值以及剩余数值。而除了一正常加法之外,唯一所需要的运算系仅是一MMD运算、或可选择地,亦可以为一初始MD运算,然而,其系亦仅需要一x(较佳地为n)比特长度。
为了实际的理由,举例而言,为了能够掌控一进位、或一负数,其系较佳地使得用于执行该MMD运算、该初始MMD运算、或该结合装置16藉由少数比特,例如,1或2个比特,所执行之该运算的该计算单元大于n个比特,然而,若是不考虑尺寸的话,则此并不构成问题,亦即,现在,2n比特的操作数系可以在实际执行时需要更多少数比特的一n比特计算单元上,以一有效率且清楚的方式而加以计算,然而,相较于省略1024个比特及/或关于能够在既存装置上运作一安全算法的可能性,该等额外的比特系为微不足道。
在第1图中所显示的该结合装置16的一较佳实施例将以第11图做为参考而于之后进行更详尽的解释。该结合装置系用以转换,在电路工程方面,第5图之该预先决定步骤顺序的行58,第6图之该预先决定步骤顺序的行67,第7图之该预先决定步骤顺序的行77,或是第8图之该预先决定步骤顺序的行86,此将于之后以第5图之行58作为参考而提出。
结合装置16系包括复数个用于该等剩余数值R(3)与R(4),R(5),R(6),以及R(7),以及用于该等商数值Q(5),Q(6),以及Q(7)的n比特寄存器110,而其系被用于结合运算,其它的剩余数值及/或商数值系仅需要作为中间结果,亦即,从该预先决定步骤顺序的一个步骤至下一个、或是至该预先决定步骤顺序的一接续步骤,然而,在第11图中所显示的该等寄存器系最终结合运算58所需要。
再者,该结合装置系包括标示为112的一n比特加法器(或是,正如已经解释过的,关于比n比特多出1至2个比特),一流程控制114、进位确认装置116,以及一n比特乘法器118,以将获得的结果写入一2n比特存储位置120。
起初,该流程控制114系会控制该寄存器档案110以及该n比特加法器,以计算R(7)-R(6)-R(5)的该第一总和,而为了这个计算,该个别加法器之最不重要比特(lsb)的该进位输入端112系会加以初始化至一数值"0″,在此之后,该第一总和之最重要比特的进位系会加以检查。
若是发现该n比特加法器112之该msb(msb=most significantbit,最重要比特)系包括一"0″进位比特时,则没有改变会发生在该lsb个别加法器的该进位输入,此输入系会继续被初始化至"0″。
然而,若是发现该第一总和系提供一进位时,则该第二总和R(3)+R(4)-Q(5)-Q(6)+Q(7)系会加以计算,精确地说,藉由初始化至"1″的一进位,该第一总和系会藉由该流程控制114所控制该n比特乘法器而被写入该2n比特存储位置120的低阶(low-order)比特120a之中,反之,在计算完该第二总和之后,其系会藉由为了该最不重要个别加法器而相对应地初始化的一进位输入而被写入该2n比特存储位置120的高阶(high-order)比特120b之中,因此,乘上该因子2n系藉由在第11图所示之该实施例中的该n比特乘法器而加以执行,当然,此运俗系亦可以藉由一暂存位移器(register shifter)、或类似者,正如在习知技术中已知者,而加以执行。
根据本发明概念的上述解释系可以清楚知道,所需要的复数个任何另外的衍生及/或复数个另外预先决定之步骤顺序系亦可以自在第9图、第9B图、以及第10图中所建立的该等衍生而进行推论,藉由长度较该等输入变量A、B、N为短的一计算单元,仅利用MMD运算、或利用MMD运算的一模数乘法,以及一个或数个初始MMD运算。
在第9图、第9B图、以及第10图中所显示的例子中,及/或在用于预先决定之步骤顺序的各种实施例中,其系较佳地仅使用该第一次模数Nt以及该数2n,而不是该第二次模数Nb,以作为该MMD模数。对熟习此技艺之人而言,显然地,上述的衍生系亦可以应用于除了2n之外的其它数Z,只要将该模式分解为次模数的因式分解系依照该数Z而加以选择即可。
参考符号列表10 means for providing 用于提供之装置12 MMD means MMD装置12a first input for the first input oper and第一输入操作数之第一输入端12b second input for the second input operand第二输入操作数之第二输入端12c input for the MMD modulus MMD模数之输入端12d output of the MMD means MMD装置之输出端14 control means for feeding 用于馈送的控制装置16 combining means结合装置20 2n-bits number 2n比特数22 sub-oper and Abwith n bits 具有n比特之次操作数Ab24 sub-oper and Atwith n bits 具有n比特之次操作数At30a MMD operatorMMD运算子30b initializing MMD operator 初始MMD运算子40 conditional equation for the initializing MMD operation初始MMD运算之条件方程式44a defining equation for the remainder 余数之定义方程式44b defining equation for the integer quotient 整数商的定义方程式51 up to 57,steps 1 to 7 of a predetermined step sequence fora multiplication and initialization用于一乘法以及初始化之一预先决定步骤顺序的步骤1至758 calculation specification for the combining means
用于结合装置之计算说明61 up to 66,predetermined step sequence for a generalmultiplication with initialization用于一具有初始化之一般乘法的预先决定步骤顺序67 calculation specification for the combining device用于结合装置之计算说明71 up to 76,predetermined step sequence for a squaring withoutinitialization用于一不具有初始化之平方的预先决定步骤顺序77 combining specification结合说明81 up to 85,predetermined step sequence for a squaring withinitialization用于一具有初始化之平方的预先决定步骤顺序86 combining specification结合说明90a,90b,90c sum/product approach 总和/乘积逼近91 multiplied products 乘开的乘积92 term of an MMD operation 一MMD运算的项次93 derivation term 衍生项次94 another derivation term 另一衍生项次95 another derivation term 另一衍生项次96 another derivation term 另一衍生项次100 sum/product approach for squaring用于平方之总和/乘积逼近110 n-bits register n比特寄存器112 n-bits adder n比特加法器114 flow control流程控制116 carry verification means 进位确认装置118 n-bits multiplexern比特乘法器120 2n-bits memory location 2n比特存储位置120a low-order bits 低阶比特120b high-order bits高阶比特
权利要求
1.一种计算与一模数(N)有关的一第一操作数(A)以及一第二操作数(B)的一模数乘法的一结果的装置,该第一操作数、该第二操作数、以及该模数乃具有一第一比特长度(2n),该装置系包括用于提供的装置(10),用以自该第一操作数(A)中提出一第一次操作数(At)以及一第二次操作数(Ab),自该第二操作数(B)中提出一第一次操作数(Bt)以及一第二次操作数(Bb),以及自该模数(N)中提出一第一次模数(Nt)以及一第二次模数(Nb),其等乃分别具有较该第一比特长度为短的一第二比特度(nn);MMD装置(12),用以执行一MMD运算,而一MMD运算乃被定义为自一项次中提出与一MMD模数有关的一整数商数值(Q)以及一剩余数值(R);控制装置(14),用以依照一预先决定步骤顺序而向该MMD装置馈送输入操作数与相关之MMD模数的预先决定结合,而该等输入操作数以及MMD模数乃是该第一操作数(A)之该第一以及该第二次操作数(At,Ab)、该第二操作数(B)之该第一以及该第二次操作数(Bt,Bb)、该模数(N)之该第一以及该第二次模数(Nt,Nb)、来自在该预先决定步骤顺序中的步骤之整数商数值(Q(i))以及剩余数值(R(i)),以及一因子2x为基础,其中,x乃为该第二比特长度;以及结合装置(16),用以结合来自该步骤顺序之预先决定步骤的整数商数值以及剩余数值,进而获得该结果。
2.根据权利要求1所述之装置,其中,该第一操作数(A)、该第二操作数(B)、以及该模数(N)乃具有一n比特长度;其中,该MMD装置为具有较2n比特为短的一长度的一运算单元;以及其中,该结合装置(16)为具有较2n比特为短的一长度的一运算单元。
3.根据权利要求2所述之装置,其中,该等次操作数以及次模数乃具有一n比特长度;其中,该MMD装置具有一n+ε比特长度,而ε乃较10为短,并且较佳地是较2为短或等于2;以及其中,该结合装置(16)乃为具有一n比特长度的一运算单元。
4.根据前述权利要求其中任一所述之装置,其中,该控制装置乃被建构成依照下列的预先决定步骤顺序而被该MMD装置进行馈送馈送(51)作为输入操作数之Bt与2n以及作为一MMD模数的Nt,以获得一第一整数商数值(Q(1))以及一第一剩余数值(R(1));馈送(52)作为输入操作数之Q(1)与Nb以及作为一MMD模数的2n,以获得一第二整数商数值(Q(2))以及一第二剩余数值(R(2));馈送(53)作为输入操作数之At与R(1)-Q(2)+Bb之总和以及作为一MMD模数的Nt,以获得一第三整数商数值(Q(3))以及一第三剩余数值(R(3));馈送(54)作为输入操作数之Ab与Bt以及作为一MMD模数的Nt,以获得一第四整数商数值(Q(4))以及一第四剩余数值(R(4));馈送(55)作为输入操作数之Q(3)+Q(4)的一总和与Nb以及作为一MMD模数的2n,以获得一第五整数商数值(Q(5))以及一第五剩余数值(R(5));馈送(56)作为输入操作数之At与R(2)以及作为一MMD模数的2n,以获得一第六整数商数值(Q(5))以及一第六剩余数值(R(6));以及馈送(57)作为输入操作数之Ab与Bb以及作为一MMD模数的2n,以获得一第七整数商数值(Q(7))以及一第七剩余数值(R(7));以及其中,该结合装置乃被建构,以便形成R(3)+R(4)-Q(5)-Q(6)+Q(7)的一第一总和、形成R(7)-R(6)+R(5)的一第二总和,以及结合该两个总和。
5.根据权利要求4所述之装置,其中,该MMD装置(12)乃为了平行执行该馈送的一第一、一第四、以及一第七步骤而被建构。
6.根据权利要求1至3其中任一所述之装置,其中,该控制装置乃被建构,以便依照用于计算具有相同之第一以及第二操作数之该模数乘法的下列预先决定步骤顺序而馈送该MMD装置(12)馈送(71)作为输入操作数之At与2n以及作为一MMD模数的Nt,以获得一第一整数商数值(Q(1))以及一第一剩余数值(R(1));馈送(72)作为输入操作数之Q(1)与Nb以及作为一MMD模数的2n,以获得一第二整数商数值(Q(2))以及一第二剩余数值(R(2));馈送(73)作为输入操作数之At与R(1)-Q(2)+2*Ab之一总和以及作为一MMD模数的Nt,以获得一第三整数商数值(Q(3))以及一第三剩余数值(R(3));馈送(74)作为输入操作数之Q(3)与Nb作为一MMD模数的2n,以获得一第四整数商数值(Q(4))以及一第四剩余数值(R(4));馈送(75)作为输入操作数之At与R(2)以及作为一MMD模数的2n,以获得一第五整数商数值(Q(5))以及一第五剩余数值(R(5));以及馈送(76)作为输入操作数之Ab以及作为一MMD模数的2n,以获得一第六整数商数值(Q(6))以及一第六剩余数值(R(6));以及其中,该结合装置(16)乃被建构,以便计算出R(3)-Q(4)-Q(5)+Q(6)的一第一总和以及R(6)-R(5)-R(4)的一第二总和,进以获得来自该第一以及第二总和的一结果。
7.根据权利要求1至3其中任一所述之装置,其中,该MMD装置(12)乃更包括一初始MMD运算(30b),其乃被建构以便根据两个加数的一总和来计算出与一模数相关的一整数商数值以及一剩余数值,一第一加数乃等于一第一输入操作数与一第二输入操作数的一乘积,而第二加数则等于一第三输入操作数与一数2n的一乘积;以及其中,该控制装置乃被建构,以便于该预先决定之步骤顺序中的一步骤中控制该初始MMD运算(30b)。
8.根据权利要求7所述之装置,其中,该控制装置(14)乃被建构,以便依照下列的预先决定步骤顺序而馈送该MMD装置(12)馈送作为输入操作数之At与Bt以及作为一MMD模数的Nt,以获得一第一整数商数值(Q(1))以及一第一剩余数值(R(1));馈送(62)作为输入操作数之Nb,-Q(1),R(1)以及作为一MMD模数的Nt进入该初始MMD运算(30b),以获得一第二整数商数值(Q(2))以及一第二剩余数值(R(2));馈送(63)作为输入操作数之At与Bt以及作为一MMD模数的Nt,以获得一第三整数商数值(Q(3))以及一第三剩余数值(R(3));馈送(64)作为输入操作数之Ab与Bt以及作为一MMD模数的Nt,以获得一第四整数商数值(Q(4))以及一第四剩余数值(R(4));馈送(65)作为输入操作数之Ab与Bb以及作为一MMD模数的2n,以获得一第五整数商数值(Q(5))以及一第五剩余数值(R(5));以及馈送(66)作为输入操作数之Q(2)+Q(3)+Q(4)的一总和与Nb以及作为一MMD模数的2n,以获得一第六整数商数值(Q(6))以及一第六剩余数值(R(6));以及其中,该结合装置乃被建构,以便计算出R(2)+R(4)+Q(5)-Q(6)的一第一总和,以及R(5)-R(6)的一第二总和,进以获得该结果。
9.根据权利要求7所述之装置,其中,该第一操作数乃等于该第二操作数以便计算出一模数面积(modular quadrature)A2mod n的该第二操作数;其中,该控制装置(14)乃被建构,以便依照下列的预先决定步骤顺序而馈送该MMD装置(12)馈送作为输入操作数之At与Bt以及作为一MMD模数的Nt,以获得一第一整数商数值(Q(1))以及一第一剩余数值(R(1));馈送(62)作为输入操作数之Nb,-Q(1),R(1)以及作为一MMD模数的Nt至该初始MMD装置(30b),以获得一第二整数商数值(Q(2))以及一第二剩余数值(R(2));馈送(63)作为输入操作数之At与Bb以及作为一MMD模数的Nt,以获得一第三整数商数值(Q(3))以及一第三剩余数值(R(3));馈送(64)作为输入操作数之Ab与Bt以及作为一MMD模数的Nt,以获得一第四整数商数值(Q(4))以及一第四剩余数值(R(4));馈送(65)作为输入操作数之Ab与Bb以及作为一MMD模数的2n,以获得一第五整数商数值(Q(5))以及一第五剩余数值(R(5));以及馈送(66)作为输入操作数之Q(2)+Q(3)的一总和与Nb以及作为一MMD模数的2n,以获得一第六整数商数值(Q(6))以及一第六剩余数值(R(6));以及其中,该结合装置(16)乃被建构,以计算出R(2)+R(4)+Q(5)-Q(6)的一第一总和,以及R(5)-R(6)的一第二总和,进以获得该模数面积的该结果。
10.根据前述权利要求其中任一所述之装置,其中,该控制装置乃被建构以便选择该预先决定步骤顺序,进而使得在多个步骤之后,仅有长度较2n比特为短的数字会留下来。
11.根据权利要求1至10其中任一所述之装置,其中,该控制装置(14)乃被建构以便使用衍生自下列步骤的一预先决定步骤顺序乘开一第一项次以及一第二项次的一乘积(90a)以获得部分乘积,而该第一项次包括该第一操作数的一第一次操作数(At)以及一第二次操作数(Ab),以及该第二项次包括该第二操作数的一第一次操作数(Bt)以及一第二次操作数(Bb);以及以一步接着一步的方式,利用MMD运算来处理该等部分乘积以获得长度较n比特为短的数字与一因子2n的仅有乘积、或是长度较2n比特为短的数字。
12.根据前述权利要求其中任一所述之装置,其中,该控制装置乃被建构,以便对该MMD装置(12)馈送该第一次模数(Nt)或是仅作为MMD模数的一数字2x,其中,x乃等于该第二比特长度。
13.根据前述权利要求其中任一所述之装置,其中,该结合装置乃被建构,以自该预先决定之步骤顺序的预先决定步骤中计算出剩余数值的一第一总和;以自该预先决定之步骤顺序的预先决定步骤中计算出剩余数值以及整数商数值的一第二总和;以将该第一总和写至一结果内存(120)的低阶比特(120a);以及以将该第二总和写至该结果内存(120)的高阶比特(120b)。
14.根据权利要求13所述之装置,其中,该结合装置乃被建构,以确定(116)该第一总和是否会提供一进位(carry);以及若是该第一总和确实提供一进位时,则藉由在一加法器(112)之一进位输入(122)处且等于″1″的一进位来计算出该第二总和。
15.一种计算与一模数(N)有关的一第一操作数(A)以及一第二操作数(B)的一模数乘法的一结果的方法,该第一操作数、该第二操作数、以及该模数乃具有一第一比特长度(2n),该方法系包括下列步骤自该第一操作数(A)中提出一第一次操作数(At)以及一第二次操作数(Ab),自该第二操作数(B)中提出一第一次操作数(Bt)以及一第二次操作数(Bb),以及自该模数(N)中提出一第一次模数(Nt)以及一第二次模数(Nb),其等分别具有较该第一比特长度为短的一第二比特长度(n);执行(12)一MMD运算,而一MMD运算乃被定义,以自一项次中提出与一MMD模数有关的一整数商数值(Q)以及一剩余数值(R);依照一预先决定步骤顺序而把输入操作数与相关之MMD模数的预先决定结合馈送至(14)该MMD装置,而该等输入操作数以及MMD模数乃是该第一操作数(A)之该第一以及该第二次操作数(At,Ab)、该第二操作数(B)之该第一以及该第二次操作数(Bt,Bb)、该模数(N)之该第一以及该第二次模数(Nt,Nb)、来自在该预先决定步骤顺序中之步骤的整数商数值(Q(i))以及剩余数值(R(i),以及一因子2x为基础,其中,x等于该第二比特长度;以及结合(16)来自该步骤顺序之预先决定步骤的整数商数值以及剩余数值,进而获得该结果。
全文摘要
本案是与用来计算相与具有一2n比特长度之一模数(N)有关的一第一操作数(A)以及一第二操作数(B)的一模数乘法的一结果有关的装置及方法,该等操作数以及该模数乃被开成为长度为该长度之一半的次操作数,并且被馈送至控制装置(14),以控制用于依照一预先决定步骤顺序并藉相对应之输入操作数(12a,12b)与MMD模数(12c)而执行一MultModDiv运算的MMD装置,进以在一输出端(12d)获得与该MMD模数有关的整数商数值(Q
文档编号G06F7/72GK1650254SQ03809672
公开日2005年8月3日 申请日期2003年4月28日 优先权日2002年4月29日
发明者W·菲斯彻尔, H·塞德拉克, J·-P·塞弗特 申请人:因芬尼昂技术股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1