CN1489726A - 模乘方法及装置及模乘计算单元 - Google Patents

模乘方法及装置及模乘计算单元 Download PDF

Info

Publication number
CN1489726A
CN1489726A CNA028044916A CN02804491A CN1489726A CN 1489726 A CN1489726 A CN 1489726A CN A028044916 A CNA028044916 A CN A028044916A CN 02804491 A CN02804491 A CN 02804491A CN 1489726 A CN1489726 A CN 1489726A
Authority
CN
China
Prior art keywords
polynomial
shift value
modulus
multiplication
displacement
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
CNA028044916A
Other languages
English (en)
Other versions
CN1296817C (zh
Inventor
A
A·埃尔贝
H·塞德拉克
N·詹森
J·-P·塞弗特
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1489726A publication Critical patent/CN1489726A/zh
Application granted granted Critical
Publication of CN1296817C publication Critical patent/CN1296817C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/724Finite field arithmetic

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Spinning Or Twisting Of Yarns (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

在一种使用模数(N)将被乘数(C)模乘乘数(M)的方法中,该被乘数、该乘数及该模数为变量的多项式,一种乘法先行方法以得到乘法位移值(Sz)被进行。一种中间结果多项式(Z)由该乘法位移值(Sz)的数字被向左位移以得到一种经移位的中间结果多项式(Z’)。而且一种减法先行方法以得到减法位移值(SN)被进行,该减法位移值等于经移位的中间结果多项式(Z’)的次数及该模数多项式(N)的次数的差。该模数多项式再由等于该减法位移值的数字位移以得到一种经移位的模数多项式。在三元运算域加法中,该经移位的中间结果多项式(Z’)及被乘数(C)被相加,而该经移位的模数多项式(N’)被减去以得到经更新的中间结果多项式(Z)。藉由重复地执行先前步骤,该模乘被逐渐地进行直到所有该乘数多项式的次方已被处理。藉由进位取消功能,可在单一长数目的计算单元进行Z/NZ算术及GF(2n)算术。

Description

模乘方法及装置及模乘计算单元
本发明系关于一种执行模乘的方法及装置,及例如关于GF(2n)椭圆曲线的模乘。
密码学为模算术基本应用的其中一,依模数N的形式而定,两个密码学方法被基本上区分,若该模数为整数,我们说是Z/NZ算术,该参数N代表一质数或组合的质数,参数Z代表整数。RSA方程式为模数由两个质数所组成的情况之实例:
C=MEmod(N)
如已知,C为经加密数据,M为未经加密或一般讯息,E为公钥及N为模数。
相反的,该GF(2n)算术特征在于该模数N(x)为变量x的多项式,该多项式包括x的个别次方的和,一系数伴随着每一x次方,x最高次方的指数被称为多项式的次数。若该系数系来自GF(2)的范围,我们说是GF(2n)模数,或更一般而言,为个别为GF(2n)算术。该GF(2n)算术为如被用于椭圆曲线的密码学。
一种f(x)∈次数n-1的GF(2)[x]由n个系数an-1,...,a0,其中a1s必须来自GF(2)组且其中根据定义an-1为1:
f(x)=1*xn-1+an-2*xn-2+...+a1*x1+a0*x0
GF(2n)的范围由次数n的不可约分多项式及次数少于或等于n-1的GF(2n)的多项式所提供。
在GF(2n),两个成份(为多项式)的加成系由XORing它们的具长度n的系数向量而得到。
在GF(2n),两个成份(为多项式)的相乘系由将GF(2n)多项式相乘及接着减少所得到的积modulo次数n的不可约分多项式N(x),其定义相对应范围。
如此,积多项式,其为得自第一多项式f(x)乘以第二个多项式g(x)而得到,必须进行以模数多项式N(x)做为除数的多项式除法。F(x)*g(x)mod N(x)的结果为得自多项式除法的余数多项式。
在有效执行于Z/NZ及GF(2n)的模乘之不会方法被处理前,应注意以Z/NZ及GF(2n)的模指数运算可藉由已知的平方及相乘算法被分为乘法。如此,下列方程式要被解出:
C(x)=(M(x))E mod N(x)。
平方及相乘算法系基于指数E被分为2次方的和:
E = Σ i E [ i ] * 2 i
下列实例系用以说明此。在二进制制表示中,下列被应用:
E=1011
因而,下列关系可被应用:
C(x)=M(x)∧(1*23+0*22+1*21+1*20)mod N(x)
因而,下列可被应用:
C(x)=(M(x)8*(M(x))0*(M(x))2*(M(x))0mod N(x)
对Z/NZ算术,以上所叙述的方程式一致具差别为不使用M(x),而是必须以M取代写入,及不使用N(x),而是必须以N取代写入。
在已知有效及常常使用的可能性以计算模乘的技艺中,已知为Montgomery乘法及如叙述于应用密码学手册”,Menezes,vanOorschot,Vanstone,CRC Press,600至603页。该Montgomery减法为一种技术,其允许有效的进行模乘而不需显明进行的传统模减步骤。一般在Montgomery减法,除法运算以简单的位移运算表示。
同时,Montgomery乘法至GF(2n)的有限场的延伸亦为已知,此延伸叙述于”在GF(2k)的Montgomery乘法”,Koc,Azar,设计、编码及密码学,14卷,1988,57至69页,此延伸亦叙述于”一种Z/NZ及GF(2n)的有限场的可缩放及一致的乘数结构”Erkay Savas,等,密码硬件及植入***(CHESS 2000),281至289页,Springer Lecture Notes。
在Z/NZ或GF(2n)的Montgomery乘法之缺点为即使模减的除法运算(其不易在硬件上执行)由位移运算而被规避,没有先行方法可被使用以加速在硬件上的模乘。
DE 3631992 C2揭示一种方法,其中在Z/NZ的模乘可使用乘法先行方法及使用减法先行方法而被加速,叙述于DE 3631992 C2的方法亦称为ZDN方法且参考第9图被详细叙述,在起始算法的步骤900后,通用变量M、C及N起始。此为计算下列模乘的目的:
Z=M*C mod N
M被称为乘数,C被称为被乘数,Z为模乘的结果,N为模数。
之后,各种局部变量(其目前不需被处理)被起始化,两个先行方法被施用。在乘法先行方法GEN_MULT_LA中,一种乘法位移值sZ及乘法先行参数a使用各种先行规则被计算(910)。z缓存器的目前内容再以sZ数字进行左移操作。
基本上平行于此的减法先行方法GEN_Mod_LA(930)被执行以计算减法位移值sN及减法参数b。在步骤940,该模数缓存器的目前内容由sN数字移位以产生经移位的模数值N’。ZDN方法的中央三元运算域操作在步骤950发生。在步骤920后,该中间结果z’被加至乘以乘法先行参数a的被乘数C及加至乘以减法先行参数b的经移位模数N’。根据当时情况,先行参数a及b可具值+1、0或-1。
一情况为该乘法先行参数a为+1且减法先行参数b为-1以使被乘数C被加至经移位的中间结果Z’且经移位模数N’被由此减去。在其它情况下,a可具值0,若该乘法先行方法允许超过一个别左移的预先设定数,亦即,若sτ大于sZ的最大允许值,此值亦被称为k。对a等于0且Z’因前一模数减少(亦即经移位模数的前一减法)仍为非常小及特别是小于经移位模数N’的情况,不需进行任何减法以使参数b等于0。
步骤910至950被执行直到所有被乘数的数字已被处理,亦即,直到m等于0及直到参数n亦等于0,其显示经移位模数N’是否仍大于原先模数N及是否进一步减法步骤必须由自Z减去模数而被进行,仅管所有被乘数的数字已被处理。
最后,决定Z是否小于0,若Z小于0,则模数N必须加至Z以得到最后减少以使在最后得到模乘的正数结果Z。在步骤960,模乘藉由ZDN方法而被完成。
在步骤910由乘法先行方法所计算的乘法位移值sZ及乘法参数a起源于乘数的拓朴及起源于叙述于DE 3631992 C2的***先行规则。
算减法位移值sN及减法参数b由比较Z缓存器的现有内容与2/3乘以N的值而被决定,且亦被叙述于DE 3631992 C2,此是因为此比较ZDN方法具其名称(ZDN=Zwei Drittel N=三分之二N)。
如第9图所说明,叙述于DE 3631992 C2的该ZDN方法仅用于Z/NZ算术,然而,其不适合用于GF(2n)算术。因此,目前没有任何计算时间有效的先前方法可被用于GF(2n)算术以加速GF(2n)的模乘。
本发明目的为提供一种快速执行GF(2n)的模乘的观念。
本发明系由根据申请专利范围第1项的模乘,根据申请专利范围第7项的进行模乘之装置或根据申请专利范围第11项的计算单元。
本发明系基于在GF(2n)的模乘之加速可由使用乘法先行方法及减法先行方法而得到的了解。在乘法先行方法中,乘法位移值被计算。在减法先行方法中,其较佳为与该乘法先行方法平行操作,减法位移值被计算,该减法位移值等于由该乘法位移值位移的中间结果多项式之次数与目前模数多项式之次数的差,且该中间结果多项式乘以被增加至该乘法位移值的次方之变量,该模数多项式乘以被增加至该减法位移值的次方之变量,如此,三元运算域加法亦可为该GF(2n)算术而被公式化以使新的中间结果多项式可由加上由该乘法位移值位移的最新中间结果多项式及被乘数与接着由自此减去由该减法位移值位移的模数多项式以得到更新的中间结果多项式。然而,使用经更新的中间结果多项式及在最后步骤位移的模数多项式重复所有步骤以成功地相加所有部份乘积,亦即,直到所有乘数的次方已被处理。
对该GF(2n)算术的情况,该三元运算域加法被特别简化,因变量x次方的系数具值”0”或”1”,如此,加法及减法变为简单的XORing,故对仅用于该GF(2n)加法做为算术位的计算单元不仅是加法器,亦是该三元运算域的位般互斥或。
在双计算单元的情况下,亦即,在Z/NZ及在GF(2n)进行模乘的计算单元,因ZDN方法已存在的三元运算域加法器仅由使之不作动而被修正以用于GF(2n)操作,亦即,不计入该加法器每一位所进位的内容。
应注意计算在GF(2n)模乘的本发明方法具一种串联-并联结构,该三元运算域加法较佳为总是平行发生,亦即对加数(其典型上包括150至1100位的宽度)的所有位,一种新的部份乘积在本发明方法的下一串联重复被计算及在后续平行三元运算域加法被加至已存在的中间结果。
与GF(2n)的Montgomery乘法相较,计算模乘的本发明观念之优点在于其藉由在值2大小次方的因子而进行的最大加速。
本发明观念的进一步优点为现在计算在GF(2n)模乘的有效方法被提供以使如在GF(2n)的BCDSA算法(ECDSA=椭圆曲线数码签署算法)可被计算。该算法被叙述于”财物服务业公钥密码学:椭圆曲线D.S.A.”,ANSI X9.62-1998。
与基于关于整数的模算术之密码学相较,椭圆曲线密码学为较佳的在于可以相当小的数目得到安全性的类似标准,且对具1024位宽度的数字的在Z/NZ的RSA方法,安全性的良好标准被得到,在GF(2n)的多项式(其次数系在变量x的150至300次方范围)已足够用于此。
本发明的进一步优点为计算模乘的本发明观念可容易地被整合至ZDN方法的已现存的计算单元,因实际长数目的计算单元,亦即三元运算域加法器,可由使位载体不作动而简单地被用于GF(2n)。即使用于GF(2n)减法先行算法及用于乘法先行算法的算术单元与用于Z/NZ的相对应装置不同,此对计算单元的整体性能不为决定性的,因在此情况下,具小数目的加法、位移或减法发生,其具8或16位的宽度,以使与长数目的计算单元(亦即三元运算域加法器,其非常容易具超过2048位的宽度(在Z/NZ及GF(2n)的双实施中))相较,这些算术单元(其亦被称为控制单元)的芯片面积不具主要影响。
于GF(2n)模乘的本发明观念的进一步优点为与仅用于Z/NZ算术的ZDN方法相较,许多运算可被简化,如此,在本发明GF(2n)模乘中不需执行与2/3倍模数的比较。在GF(2n),此比较可仅以中间结果多项式之次数与模数多项式之次数的比较取代。因乘法位移值的期望值及减法位移值的期望值为相同的,该两个先前方法彼此被去耦合以使该两个先前方法彼此独立工作,此产生计算时间的优点。
在下文本发明较佳具体实施例参考所揭示图式详细叙述,其中:
第1图为说明GF(2n)的模指数运算之流程图;
第2图为本发明方法的高位准流程图;
第3图为计算乘法位移值的乘法先前方法的流程图;
第4图为计算减法位移值的减法先前方法的流程图;
第5图为GF(2n)算术或Z/NZ算术的三元运算域相加单元的一部份;
第6图为进位取消功能的详细说明;
第7图为Z/NZ/GF(2n)计算单元的方块图;
第8a至8c图为说明减法位移值的计算之示意说明;及
第9图为ZDN方法的一般图标以执行在Z/NZ的模乘。
第1图为一般流程图以分割模指数运算
C(x)=(M(x))E mod N(x)
为一系列乘法。M(x)及N(x)为变量x的多项式,E为在具位长度L(E)的二进制制表示的指数。
此算法基本上包括检查指数E的位(亦即E(e))是否等于1,若其等于1,则结果缓存器的目前内容乘以M(x),具模数多项式N(x)的模减在这之后立即执行。然而,若指数位等于0,没有任何乘以M(x)的乘法被执行。在这两种情况缓存器C(x)的目前内容乘以其本身,亦即,被平方,而后模减发生。指数表示(亦即e)的数字指数再被增加1,此回路再次被经过,其被执行直到所有指数E的数字已被处理,亦即,直到e等于L(E),之后此算法完成且在C(x)的缓存器有模乘的结果。因而模指数运算的中央操作为被乘数C(x)乘以乘数M(x)的模乘。
第2图显示本发明方法将被乘数乘以乘数的模乘之高位准流程图。该方法起始于起始方块200,在方块202,通用变量M、C及N,其为变量x的多项式,被起始化。在方块204,中间结果多项式Z接着被起始化为0。在方块206,控制变量m被起始化为L(M)。L(M)以位显示乘数M的长度,因而L(M)对应于乘数多项式的次数。在方块208,控制变量n被起始化为0,控制变量n的功能会于稍后解释。接着,乘法先行方法210及减法先行方法212被较佳地平行执行,该乘法先行方法系用做计算乘法位移值sZ及较佳为亦计算乘法先行参数a。
该减法先行方法系用做计算减法位移值sN及较佳为亦计算减法先行参数b。
在方块214,经移位的中间结果多项式Z’由将目前的中间结果多项式Z乘以被增加至该乘法位移值sZ的次方之变量x而被计算。
在方块216,经移位的模数多项式N’较佳为由同时将目前的模数多项式N乘以被增加至该减法位移值sN的次方之变量x而被计算。
在方块218,一般称的三元运算域加法(其为本发明模乘方法的中央操作)被进行。在方块218,经更新的中间结果多项式Z被计算,其由该中间结果多项式Z’及已乘以乘法先行参数a的被乘数C及已乘以减法先行参数b的经移位模数多项式N’的相加而得到。
在方块220,检查控制变量m是否等于0及控制变量n是否同时等于0。若该控制变量m等于0,此表示乘数M(x)的所有位已被处理,若该控制变量n等于0,此表示经移位的模数多项式N’再次对应于方块202的原始多项式N。
若此两个条件符合,方块220会由此响应YES以使模乘的结果,亦极Z(x),在于方块222被输出。该模乘方法再于方块224完成。
然而,若方块220以”NO”响应,此表示仍有乘数的位未被处理或者留在模数多项式缓存器的模数多项式N’仍大于在方块202所定义的原始模数多项式。不同地表示,此表示留在模数多项式缓存器的目前多项式的次数大于已定义于方块202的原始模数多项式N的次数。若为此情况,送回会被执行,如由第2图的馈送226所示,以再次进行乘法先行方法及减法先行方法。相对于第一步骤,其中该Z缓存器,因在方块204的起始化,已被设定为0,现在先前方法的三元运算域操作218的结果为在该Z缓存器。
以相同方式,在模数缓存器N的不再是定义于方块202的原始模数N,而是已由减法位移值sN位移的模数多项式N’。因而已定义于方块202的原始模数多项式N(x)仅当第一重复步骤期间存在于该N缓存器,虽然在重复(重复回路226)期间,常为在模数缓存器的经移位模数多项式,亦即已乘以被增加至减法位移值sN的次方之变量x的模数多项式。
现在参考第3图,其说明一乘法先行方法(亦即第2图的方块210)的更详细说明。该乘法先行方法起始于起始方块300,其接收第2图的参数m做为通用变量、进一步的控制变量curk(其会于稍后解释)、及乘数M,此由第3图的方块302说明。在方块304,乘法位移值sZ被起始化为0,而且,乘法先行参数a(其会于稍后解释)被起始化为值1(方块306)。
再于方块308检查实际位或是x的目前处理次方之系数是否分别为0,若在方块308决定乘数的目前处理位不等于0,亦即若方块308的决定以YES响应,则控制变量m在方块310增加1。而且,该乘法位移值sZ在方块312亦增加1,在方块314,该乘法先行方法的所得参数,亦即乘法先行参数a及乘法位移值sZ,为输出。
若在方块308的问题以NO响应,则会执行跳至进一步的决定方块316,其于此处决定是否该控制变量m仍小于该长度,亦即乘数M的次数。此外,其检查目前的乘法位移值sZ是否分别小于或等于参数curk,若两个问题皆以YES响应,则会执行跳至方块318以将参数增量1。而且,在方块320,该乘法位移值sZ在方块312亦增加1。接着,乘数M的下一位被检查,其由馈送分支322于第3图说明。
然而,若在方块316决定在方块316的两个问题的其中一以NO响应,则会执行跳至方块324,于此乘法先行参数a被设定为0,由此可见为方块314输出的乘法先行参数a可为0或1。该乘法先行方法接着于方块326结束。
在下文中,乘法先行参数的操作模式被解释。根据本发明使用的该乘法先行方法为一种乘以超过零的可变位移的GF(2n)的先行算法,其中可变位移的数目无法为任意大的值,而是至多等于值CURk,”CURk”表示”目前的k”,亦即”参数k的目前值”。
在下文中,具系数”10001”的乘数多项式可被示例地解释。首先,其最显着的位被检查,此位具值”1”以使方块308以YES响应,其使得变量m被增量1及使得乘法位移值sZ亦被增量1。该乘法先行算法已完成,因乘数的经检查位具值”1”,以此方式,在三元运算域加法被乘数C必须被加上。
在该乘法先行算法的下一路径,第二个位被检查,此位具值0以使在方块308以NO响应。若经检查的位仅为被乘数的第二个位且若乘法位移值sZ,因在方块304的起始化,而为0,则方块316以YES响应以使得该控制变量m被增量1(318)及该乘法位移值亦被增量1(320)。经由分支322,方块308再被进入,因下一亦具值”0”,此方块被重复以NO响应且方块316仍为目前的这个,m仍小于L(M)故此问题被正向地响应,sZ仅具值1。当其假设CURk具值2,此问题亦被正向地响应以使在方块318及320,m及sZ的增量再度发生。在方块320通过后,sZ具值2。经由分支322至方块308的转移再被执行以决定目前的下一位是否为1或0。对本实例,方块308再次以NO响应因在此情况下,序列中零值的第三个位被检查,然而,方块316现在以NO响应因sZ为2且变量CURk亦为2,此表示乘法先行方法因而可以说被取消即使第三个0亦可被使用以作动一位移,然而,sZ必须被限制于最高值,因否则一无限长的Z缓存器必须被提供以能够储存经移位的中间结果多项式Z’,其于第2图的步骤214计算。CURk因而依据Z缓存器的目前移动而被设定以允许最大可能的位移值sZ,其贡献在于速度上的增益,及一方面同时处理经移位的中间结果多项式Z’的有限缓存器长度。在第2图方块218的三元运算域操作由此成为二元运算域操作因在第3图方块324的参数a已被设定为0。
如可由第3图所见,在方块324的分支没有m的进一步增量发生故在乘法先行算法的更新路径,现在于方块308所检查的为序列的第三个0位。因此位具值0,方块308再次以NO响应以使得该乘法位移值sZ被增量1且在方块318的控制变量亦被增量。乘数的最后一位,亦即”1”,现在被检查,因此位不等于0,方块308以YES响应,该控制变量最后一次被增量且该乘法位移值sZ亦被增量直到此重复的该乘法先行算法完成(方块326)。现在所有被乘数位已被检查以使第2图的重复回路226被完成因其在方块220被检查是否m等于0,其现在应用于本实例。
在下文中,参考第4图以叙述减法先行方法,在第2图,其以参考数字212指定。在方块400,该减法先行方法开始,在方块402,其中的各种通用变量,特别是N及Z被强调及定义。N为前一步骤的模数多项式之缓存器值,且Z为前一步骤的经更新中间结果多项式,k为Z的最大位移值,CURk为Z的目前位移值且MAX为溢流缓冲器的长度,亦即位数,其用于储存左移多项式N及Z。当第2图的方块216被考虑时,可了解若任意大的减法位移值sN被提供,N的任意大的缓存器须被提供,如同在乘法先行方法的类似情况,然而,因空间及效率原因,此为不欲的,故藉由参数MAX,可考虑该模数多项式仅能由特定数目位位移至左侧,亦即顶点。
在方块404,稍后会被叙述的参数si被起始化为0,而后在方块406决定显示在溢流缓冲器的N的位数目的参数n是否等于0,或者是否si等于k。若方块406以YES响应,则会执行跳至方块408,于此该减法先行参数b被设定为0,然而,若方块406的问题以NO响应,则参数n被增量1(方块410)。同时,参数si被增量1,如方块412所说明。接着,中央比较在方块414进行,由此要决定多少模数多项式要被位移以使在该三元运算域操作(第2图的方块218)中,中间结果多项式的模减发生。为进行此,辅助位移值si被决定以使得自x(x被增加至si的次方)乘以前一步骤的经更新中问结果多项式的相乘的多项式的次数等于目前模数多项式的次数。此如由重复回路416所示的一步骤接着一步骤进行直到YES-结果在方块406得到或是YES-结果在方块414得到。若方块414以YES响应,则在方块418该减法先行参数b被设定为1。在方块420,一新的参数n再自该乘法位移值sZ及目前值n的差被计算,真实的减法位移值sN再于方块422以形成该乘法位移值sZ及该辅助位移值si的差被计算。
已指出该乘法位移值sZ系由实际平行通过乘法先行算法被提供,如在第2图由箭头230所示。若无辅助参数si的引入,仅乘法先行法的一系列实施及之后为减法先行法的一系列实施为可行,其基于效率原因为不欲的。所以,辅助参数si被使用,藉由此减法位移值sN_的实际计算可被预备且延伸的重复回路(第4图的分支416)可实际上以平行于乘法先行算法的方式被处理,且减法位移值sN_的实际计算可藉由两个短数字sZ及si的差之快速形成而被执行。因而顺序如下,sZ及si被并行计算,sZ再自该乘法先行算法经由第2图的分支230(其亦可由第4图了解)被传送减法先行算法以使减法位移值sN_被直接提供于下一循环,此会参考第8a至8c图于稍后解释。
在方块422后,在方块424决定n是否大于MAX减k,若此问题响应为YES,则新的CURk会于方块426计算,若在方块424的此问题响应为NO,则于方块428CURk会与k相等。在方块430,减法先行法的结果值(亦即b及sN)被输出以使减法先行法结束于方块432。
参考乘法先行参数a及减法先行参数b与储存管理参数n、MAX、k及CURk的详细说明,系以DE 3631992 C2为参考。不像Z/NZ的ZDN方法,其中参数a及b可取值+1、0及-1,在本发明方法的相对应参数a及b仅可取值0及1。先行参数a及b系仅选择性地需要于根据本发明的模乘,就是在没有任意大的储存位置可提供给N及Z的情况。然而,一般,本发明方法可在任意大的缓存器可被提供的情况下被容易地进行,在此情况下,该乘法先行不会被消除而是总是被执行直到”1”被发现于该乘数,直到那时,参照第2图的方块214,sZ具某可能最大值以使该经移位的中间结果多项式Z’可能地采较大的值,因1已被发现于该乘数,于方块218,被乘数再被加至该经移位的中间结果多项式Z’。
然而,一基本特性为模减亦同时与每一乘法步骤发生以使就整体而言数值可被保持于一可容忍范围。
为进行此,根据本发明的该减法位移值sN_以一种经位移的模数多项式之次数等于目前的中间结果多项式之次数方式被选择,若之后该经位移的模数多项式被自Z’(x)及C(x)的和减去,该更新的中间结果Z典型上总是小于Z’以使减法已被得到,如此,可了解该更新的中间结果多项式Z,其由第2图的步骤218计算,不必要关于方块202的原始模数多项式而被减少,而是在整个重复期间仅关于左移模数多项式(其为具较高次数的模数多项式)而被减少,然而不必要都像这样。然而若为要增加的情况,其可由步骤220达到,在此步骤决定n是否等于0,亦即是否N具在溢流缓冲器的位,自该更新的中间结果进一步减去模数发生以使Z可再日益增多地被减少为原先的余数等级。若n等于0,此表示在溢流缓冲器不再有N的位,其表示最后得到的经位移的模数多项式等于方块202的原始模数多项式。
如此,可了解本发明模乘方法基本上亦可不需先行参数a及b而被执行,然而,在此情况下,理论上地无限Z及N的缓存器是必要的-若任意乘数被假设。
若对Z及N具储存限制,亦即若先行参数a及b可为0,乘法先行参数a等于0表示没有任何被乘数被加至经位移的Z’,类似于此,减法先行参数b等于0表示该经位移的模数多项式大于经位移的中间结果多项式Z’,基于此原因没有任何减法是必要的故模减亦可被省略。在此种情况,该三元运算域操作会完全减退。
在此阶段,亦指出在缓存器Z及N的有限缓冲器之情况下,必须注意只要变量m未达到值0,则N被保持距其Home MSB至少k位。
更进一步指出在GF(2n)算术的情况下,亦即若多项式的系数可仅为0或1,则该加法运算对应于该减法运算且一般可以XORing进行。然而,若多项式的系数被允许为不同数字***,例如为八进制数制或十进制数制,当然,该减法不对应于该加法。
在下文中,参考第8a至8c图以说明使用该辅助位移值si的该减法位移值sZ的计算。在第8a图中,一种中间结果多项式Z及模数多项式N被说明,仅做为实例,该中间结果多项式具次数为4,亦即4位,且该模数多项式具次数为9,亦即9位。更进一步假设在第2图的方块214,经位移的中间结果多项式Z’被计算,其可由乘以被增加至sZ的次方之变量x而得到,假设在乘数有8个零,其造成该乘法位移值sZ为8。为得到模减,该模数N必须达到该经位移的中间结果多项式Z’的大小次方。根据本发明,该模数多项式N要被位移以使该经位移的中间结果多项式Z’之次数及该经位移的模数多项式N之次数为相等的。如可由第8b图所了解,减法位移值sN等于3为此所必须。
亦可由第8b图所了解,发现sN实际上仅能当sZ已被计算时执行,其表示第2图的方块210及212的平行执行,如为本发明较佳的,是不可能的。基于此原因,辅助位移值si被引入,如可由第8a图所了解,该辅助位移参数si等于该中间结果多项式Z的次数及该模数多项式N的次数的差。si的优点为此值可被计算而不需在目前步骤知道sZ
可由第8c图所了解,sZ总是等于si_及sN的和。因而sN总是与sZ及si相依,相依方式为应用下列式子:
sN=sZ-si
决定sN的耗时重复方法可因而被分割为决定si的耗时重复方法(回路416)及快速减法运算(第4图的方块422),由此,两个先行方法的几乎平行执行为可能的,仅串联的成份为在计算方块422前(第4图),sZ的实际值已由乘法先行算法被计算及提供(第2图的箭头230)。
如已经解释,计算GF(2n)的模乘之本发明观念之基本优点系基于其可被整合至ZDN方法的已现存的长数目的计算单元,第5图显示为执行与Z、aC及bN的三元运算域加法单元的发明采用的三元运算域计算单元之一部份。
在第5图,与另一连接的三个位切片[i]、[i-1]、[i-2]被说明,每一位切片包括一三位计数器500及全加器510已在输出侧分别得到经更新的中间结果多项式的位Z[i]、Z[i-1]及Z[i-2]。该全加器进一步具下一较高全加器的进位输入之进位输出。若例如具次数200的多项式被处理,第5图的200三位计数器必须平行连接。
为改良第5图的GF(2n)的位切片,如第5图所示,一AND闸520必须***于三位计数器的上方输出及下一较高阶段的全加器的第二最低输入。若0被馈入起动输入530,值x总是为0。而后全加器510的功能总是减退至y及0的加成。在Z/NZ的情况下,然而,该AND闸的起动输入被以”1”提供故该AND闸没有进一步效用。
在GF(2n),该AND闸的输出因而为0。然而,在Z/NZ,x是需要的,其中该AND闸的输出可不等于0,该起动因而由AND闸实现。然而,对GF(2n)的情况,在全加器的加成变得无足轻重的,其在起动输入530为0。
第6图显示在AND闸520的情况,部份说明于第5图计算单元具正常加法器的作用,若起始讯号SC=1。然而,若起始讯号SC=0,其会具XOR电路的作用。
第7图显示Z/NZ及GF(2n)计算单元的示意方块图,该计算单元被沿该长数目算术单元700分类,长数目算术单元700执行已对Z/NZ或GF(2n)叙述的三元运算域操作。
该计算单元进一步包括一种Z/NZ控制单元710及一种GF(2n)控制单元720及一种模式选择装置730,若该计算单元系以整数计算运算模,该模式选择装置730会以真加法运算被执行的方式控制该算术单元700,该算术单元在输入侧及输出侧被连接至Z/NZ控制单元710。然而,若该计算单元要运算GF(2n)算术,则该模式选择730会以使用XOR运算取代加法而被执行的方式来活化该算术单元700且算术单元的输入及输出被连接至GF(2n)控制单元。
如此,不再需要分开算术单元以容纳整数模算术及多项式模算术于一计算单元。
已指出因为三元运算域操作对所有位平行执行,大部份芯片空间由该算术单元700消耗,且要在控制单元710及720进行的更小的计算可以更小数字处理,以使只要芯片面积为被注重的,此几乎不会有差别。
相对于整数算术及多项式算术需要个别计算单元的计算单元,计算模乘的本发明观念因而允许芯片面积减少几乎50,特别是对智能卡,此在芯片面积的显着节省使得具相当的竞争优势。
参考数字清单
200    起始模乘方法
202    通用变量
204    起始化中间结果多项式
206    起始化m
208    起始化n
210    乘法先行方法
212    减法先行方法
214    产生中间结果多项式
216    产生经移位的模数多项式
218    三元运算域加法
220    检查算法是否已完成
222    输出Z
224    停止模乘方法
226    重复回路
230    sZ转移
300    起始乘法先行方法
302    通用变量
304    起始化sZ
306    起始化a
308    决定是否经处理位等于0或1
310    增量m
312    增量sZ
314    输出a及sZ
316    决定是否进一步位移可被执行
318    增量m
320    增量sZ
322    重复回路
324    设定a
326    停止乘法先行方法
400    起始减法先行方法
402    通用变量
404    起始化si
406    决定是否减法可被执行
408    设定b
410    增量n
412    增量si
414    检查经移位的中间结果多项式的次数
416    重复回路
418    设定b
420    设定n
422    计算SN
424    检查n
426    设定CURk
428    设定CURk
430    输出b、SN
432    结束减法先行方法
500    三元加法器
510    全加器
520    开关
530    控制
700    三元运算域计算单元
710    Z/NZ控制单元
720    GF(2n)控制单元
730    模式选择
900    起始ZDN方法
910    ZDN算法的乘法先行方法
920    向左位移Z
930    ZDN算法的减法先行方法
940    向左或向右位移该模数
950    ZDN算法的三元运算域加法
960    ZDN算法的结束

Claims (13)

1.一种于密码计算中使用模数(N)将被乘数(C)模乘乘数(M)的方法,该被乘数(C)、该乘数(M)及该模数(N)既为变量(x)的多项式,又为该密码计算之参数,该方法包括下列步骤:
(a)执行(210)一乘法先行方法以得到乘法位移值(sZ),该乘法位移值(sZ)以该乘数的次方被增量,其未存在于该乘数多项式;
(b)将被增加至该乘法位移值(sZ)的次方之该变量(x)乘以(214)中间结果多项式(Z)以得到一经移位的中间结果多项式(Z’);
(c)执行一减法先行方法(212)以得到减法位移值(sN),该减法位移值(sN)等于经移位的该中间结果多项式(Z)的次数及该模数多项式(N)的次数的差;
(d)将被增加至该减法位移值(sN)的次方之该变量(x)乘以(216)该模数多项式(N)以得到一经移位的模数多项式(N’);
(e)相加(218)该经移位的中间结果多项式(Z’)及该被乘数(C)及减去该经移位的模数多项式(N’)以得到一经更新的中间结果多项式(Z);及
(f)重复(226)步骤(a)至(e)直到所有该乘数(M)的次方已被处理,其中在步骤(a)至(e)的重复中,
于步骤(d)中,前一步骤(e)的该经更新的中间结果多项式(Z)被用做该中间结果多项式(Z),及
于步骤(c)中,前一步骤(d)的该经移位多项式被用做模数多项式(N)。
2.根据申请专利范围第1项的方法,其中在步骤(d)的该相乘(210)系藉由以许多等于该乘法位移值(sZ)的数字位移该中间结果多项式(Z)而被进行,及
其中在步骤(d)的该相乘(210)系藉由以许多等于该减法位移值(sN)的数字位移该模数多项式(M)而被进行。
3.根据申请专利范围第1或2项的方法,其中该多项式的系数仅能取值”0”或”1”,及
其中在步骤(e)的该相加及相减(218)由位般互斥或该中间结果多项式(Z’)、该被乘数(C)及该经移位的模数多项式(N’)而进行。
4.根据先前申请专利范围其中一项的方法,其中该减法先行方法(212)以得到减法位移值(sN)的步骤包括下列步骤:
决定(414)一辅助位移值(si)以使得该模数多项式(N)的次数及乘上已被增加至该辅助位移值(si)的次方的变量的前一步骤(e)的该经更新中间结果多项式(Z)的次数相等,及
形成(422)该乘法位移值(sZ)及该辅助位移值(si)的差以得到该减法位移值(sN)。
5.根据申请专利范围第4项的方法,其中执行该乘法先行方法(210)的该步骤及决定(414)该辅助位移值(si)的该步骤系并行进行。
6.根据先前申请专利范围其中一项的方法,
其中该乘法位移值(sZ)被限制于最大乘法位移值(k),
其中执行(210)该乘法位移方法的每一步骤包括下列步骤:
如该乘法位移值等于该最大乘法位移值(k),
使该乘法位移值(sZ)等于该最大位移值(k),
产生(306、324)一种具预先决定值的乘法先行参数(a),及
其中该相加步骤包括下列步骤:
如该乘法先行参数(a)具该预先决定值,
仅相加该预先决定的中间结果多项式(Z’)及该经移位的模数多项式(N’)。
7.一种于密码计算中使用模数(N)进行将被乘数(C)模乘乘数(M)的装置,该被乘数(C)、该乘数(M)及该模数(N)为变量(x)的多项式,又为该密码计算之参数,该装置包括:
(a)执行(210)一乘法先行方法以得到乘法位移值(sZ)的装置,该乘法位移值(sZ)以该乘数的次方被增量,其未存在于该乘数多项式;
(b)将被增加至该乘法位移值(sZ)的次方之该变量(x)乘以(214)中间结果多项式(Z)以得到一经移位的中间结果多项式(Z’)的装置;
(c)执行一减法先行方法(212)以得到减法位移值(sN),该减法位移值(sN)等于该经移位的该中间结果多项式(Z)的次数及该模数多项式(N)的次数的差的装置;
(d)将被增加至该减法位移值(sN)的次方之该变量(x)乘以(216)该模数多项式(N)以得到一经移位的模数多项式(N’)的装置;
(e)相加(218)该经移位的中间结果多项式(Z’)及该被乘数(C)及减去该经移位的模数多项式(N’)以得到一经更新的中间结果多项式(Z)的装置;及
(f)重复地控制(226)该装置(a)至(e)直到所有该乘数(M)的次方已被处理的装置,其中在该装置(a)至(e)的重复控制中,
相乘(214)以得到经移位的该中间结果多项式的该装置被设置以使用相加(218)的该装置的前一控制的该经更新的中间结果多项式(Z)做为该中间结果多项式(Z),及
执行一减法先行方法(212)的该装置被设置以重复控制的方式以使用相乘(216)的该装置的前一控制的该经移位模数多项式被用做模数多项式(N)以得到经移位的模数多项式。
8.根据申请专利范围第7项的装置,其中该用于相乘(214)以得到经移位的中间结果多项式(Z’)的装置及该用于相乘(216)以得到经移位的模数多项式(N’)的装置被实施做为可控制的位移缓存器以依据该乘法位移值(sZ)或依据该减法位移值(sN)而由相对应数字位移该缓存器内容。
9.根据申请专利范围第7或8项的装置,其中用于相加及用于相减的该装置(218)由位般互斥或该中间结果多项式(Z’)、该被乘数(C)及该经移位的模数多项式(N’)而进行。
10.根据申请专利范围第7或8项的装置,用于相加及相减的该装置(218)包括:
一具三个输入线路及二个输出线路的计数器(500),其中该中间结果多项式(Z)的一位可被供应至第一输入线路,其中该被乘数(C)的一位可被供应至第二输入线路,及其中该经移位的模数多项式(N’)的一位可被供应至第三输入线路;
一具三个输入及一输出的全加器(510),该计数器(500)的低次输出系连接至该全加器(510)的高次输入线路;
一在该计数器(500)的较高次输出线路及该全加器(510)的中间输入间连接的开关(520)以用于较高次位;及
一控制单元(530)以当多项式要被处理时,开启该开关(520)。
11.根据申请专利范围第7项所述之装置,系作为一种计算单元以使用该模数将该被乘数乘以该乘数,该计算单元选择性地使用模数整数将被乘数整数乘以乘数整数,该相加装置系形成为三元运算域加法器重(700),共包括一具进位取消装置(730)以合并该整数运算域或是多项式中间结果,该经移位的模数多项式及该被乘数;及一控制装置(730)以控制该进位取消装置以使当多项式运算域被处理时,该进位被去活化及以使当整数运算域被处理时,该进位被活化。
12.根据申请专利范围第11项的计算单元,具进位取消装置的该三元运算域加法器包括;
一具三个输入线路及二个输出线路的计数器(500),其中该中间结果多项式的一位可被供应至第一输入线路,其中该被乘数(C)的一位可被供应至第二输入线路,及其中该经移位模数的一位可被供应至第三输入线路;
一具三个输入及一输出的全加器(510),该计数器(500)的低次输出系连接至该全加器(510)的高次输入线路;
一在该计数器(500)的较高次输出线路及该全加器(510)的中间输入间连接的开关(520)以用于下一较高次位;及
一控制单元(530)以当多项式要被处理时,开启该开关(520)。
13.根据申请专利范围第12项的计算单元,其中许多三元运算域加法器存在,三元运算域加法器存在的数目大于或该模数或多项式整数的数字的数目。
CNB028044916A 2001-02-16 2002-01-24 模乘方法及装置及模乘计算单元 Expired - Fee Related CN1296817C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10107376A DE10107376A1 (de) 2001-02-16 2001-02-16 Verfahren und Vorrichtung zum modularen Multiplizieren und Rechenwerk zum modularen Multiplizieren
DE10107376.3 2001-02-16

Publications (2)

Publication Number Publication Date
CN1489726A true CN1489726A (zh) 2004-04-14
CN1296817C CN1296817C (zh) 2007-01-24

Family

ID=7674338

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028044916A Expired - Fee Related CN1296817C (zh) 2001-02-16 2002-01-24 模乘方法及装置及模乘计算单元

Country Status (8)

Country Link
US (1) US6920473B2 (zh)
EP (1) EP1360579B1 (zh)
JP (1) JP3939658B2 (zh)
CN (1) CN1296817C (zh)
AT (1) ATE357016T1 (zh)
DE (2) DE10107376A1 (zh)
TW (1) TW550498B (zh)
WO (1) WO2002067108A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100517214C (zh) * 2007-05-30 2009-07-22 北京天碁科技有限公司 一种实现二进制多项式运算的硬件配置方法及硬件***
CN107004072A (zh) * 2014-12-12 2017-08-01 皇家飞利浦有限公司 电子生成设备
CN112292663A (zh) * 2018-06-19 2021-01-29 罗伯特·博世有限公司 使至少两个被乘数相乘的计算单元、方法和计算机程序
CN115934029A (zh) * 2023-02-20 2023-04-07 辰星(天津)自动化设备有限公司 乘法运算资源转换逻辑资源方法、装置、乘法器及介质

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277540B1 (en) * 1999-01-20 2007-10-02 Kabushiki Kaisha Toshiba Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography
US7337437B2 (en) * 1999-12-01 2008-02-26 International Business Machines Corporation Compiler optimisation of source code by determination and utilization of the equivalence of algebraic expressions in the source code
US8176108B2 (en) * 2000-06-20 2012-05-08 International Business Machines Corporation Method, apparatus and computer program product for network design and analysis
US6973470B2 (en) * 2001-06-13 2005-12-06 Corrent Corporation Circuit and method for performing multiple modulo mathematic operations
US7895253B2 (en) * 2001-11-30 2011-02-22 Analog Devices, Inc. Compound Galois field engine and Galois field divider and square root engine and method
US7558817B2 (en) * 2002-04-29 2009-07-07 Infineon Technologies Ag Apparatus and method for calculating a result of a modular multiplication
US7426529B2 (en) * 2002-06-06 2008-09-16 Infineon Technologies Ag Processor and method for a simultaneous execution of a calculation and a copying process
US7724898B2 (en) * 2002-10-17 2010-05-25 Telefonaktiebolaget L M Ericsson (Publ) Cryptography using finite fields of odd characteristic on binary hardware
DE10260655B3 (de) 2002-12-23 2004-06-24 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen einer Multiplikation mit einer Verschiebung des Multiplikanden, insbesondere bei der kryptographischen Berechnung
DE10260660B3 (de) * 2002-12-23 2004-06-09 Infineon Technologies Ag Modulare Multiplikation mit paralleler Berechnung der Look-Ahead-Parameter u.a. bei der kryptographischen Berechnung
US20040120516A1 (en) * 2002-12-23 2004-06-24 International Business Machines Corporation Modular reduction method which recognizes special conditions
KR100459732B1 (ko) 2002-12-30 2004-12-03 삼성전자주식회사 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법
FR2859030B1 (fr) * 2003-08-21 2005-11-04 Gemplus Card Int Procede de realisation d'une multiplication modulaire et procede de realisation d'une multiplication euclidienne sur des nombres de 2n bits
FR2862454A1 (fr) * 2003-11-18 2005-05-20 Atmel Corp Methode de reduction modulaire aleatoire et equipement associe
US7171544B2 (en) * 2003-12-15 2007-01-30 International Business Machines Corporation Run-time parallelization of loops in computer programs by access patterns
FR2885711B1 (fr) * 2005-05-12 2007-07-06 Atmel Corp Procede et materiel modulaire et aleatoire pour la reduction polynomiale
US7826612B2 (en) * 2006-06-29 2010-11-02 Intel Corporation System, method and apparatus for an incremental modular process including modular multiplication and modular eduction
US8024391B2 (en) * 2006-11-06 2011-09-20 Atmel Rousset S.A.S. Modular multiplication method with precomputation using one known operand
DE102008033962B4 (de) * 2008-07-21 2011-11-24 Siemens Aktiengesellschaft Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation
WO2011036512A1 (en) * 2009-09-25 2011-03-31 Renault Trucks Method for forecasting the evolution of the magnitude of a data for a vehicle journey
CN104375801A (zh) * 2013-08-16 2015-02-25 瑞昱半导体股份有限公司 参数产生装置与方法
CN103645883A (zh) * 2013-12-18 2014-03-19 四川卫士通信息安全平台技术有限公司 基于fpga的高基模乘器
FR3050847B1 (fr) * 2016-05-02 2019-04-05 Morpho Procede d'optimisation d'ecritures en memoire dans un dispositif
US10496373B2 (en) * 2017-12-28 2019-12-03 Intel Corporation Unified integer and carry-less modular multiplier and a reduction circuit

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6042965B2 (ja) * 1979-06-01 1985-09-26 愛介 片山 複数法形高速乗算装置
US4625076A (en) * 1984-03-19 1986-11-25 Nippon Telegraph & Telephone Public Corporation Signed document transmission system
DE3631992A1 (de) * 1986-03-05 1987-11-05 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens
ATE55033T1 (de) * 1986-03-05 1990-08-15 Holger Sedlak Kryptographie-verfahren und kryptographieprozessor zur durchfuehrung des verfahrens.
US5251164A (en) * 1992-05-22 1993-10-05 S-Mos Systems, Inc. Low-power area-efficient absolute value arithmetic unit
JP3525209B2 (ja) * 1996-04-05 2004-05-10 株式会社 沖マイクロデザイン べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法
CN1085862C (zh) * 1996-09-20 2002-05-29 张胤微 高速模乘法装置
AU3286399A (en) * 1998-12-18 2000-07-12 Motorola, Inc. Circuit and method of cryptographic multiplication

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100517214C (zh) * 2007-05-30 2009-07-22 北京天碁科技有限公司 一种实现二进制多项式运算的硬件配置方法及硬件***
CN107004072A (zh) * 2014-12-12 2017-08-01 皇家飞利浦有限公司 电子生成设备
CN112292663A (zh) * 2018-06-19 2021-01-29 罗伯特·博世有限公司 使至少两个被乘数相乘的计算单元、方法和计算机程序
CN112292663B (zh) * 2018-06-19 2023-12-12 罗伯特·博世有限公司 使至少两个被乘数相乘的计算单元、方法和计算机程序
CN115934029A (zh) * 2023-02-20 2023-04-07 辰星(天津)自动化设备有限公司 乘法运算资源转换逻辑资源方法、装置、乘法器及介质

Also Published As

Publication number Publication date
WO2002067108A3 (de) 2002-12-12
JP3939658B2 (ja) 2007-07-04
DE10107376A1 (de) 2002-08-29
EP1360579A2 (de) 2003-11-12
WO2002067108A2 (de) 2002-08-29
CN1296817C (zh) 2007-01-24
US6920473B2 (en) 2005-07-19
ATE357016T1 (de) 2007-04-15
EP1360579B1 (de) 2007-03-14
US20040019622A1 (en) 2004-01-29
DE50209713D1 (de) 2007-04-26
JP2004519052A (ja) 2004-06-24
TW550498B (en) 2003-09-01

Similar Documents

Publication Publication Date Title
CN1296817C (zh) 模乘方法及装置及模乘计算单元
Schinianakis et al. An RNS implementation of an $ F_ {p} $ elliptic curve point multiplier
JP5073669B2 (ja) 同時スカラー乗算方法
CN1961284A (zh) 使用n位乘加操作实现不变量除数的整数除法的方法和***
CN1471665A (zh) 增速密码法与装置
CN1306390C (zh) 使用带符号的数位表示的乘法器
US7831650B2 (en) Method for modular multiplication
CN1259617C (zh) 一种加快rsa加/解密过程的方法及其模乘、模幂运算电路
CN1630204A (zh) 具有矩阵转换技术的循环冗余码计算方法及***
CN1570848A (zh) 使用进位存储加法的蒙哥马利模乘器及其方法
CN1806224A (zh) 用于防御微分功率分析攻击的方法
CN1058344C (zh) 数据处理***中进行模糊逻辑运算的方法和数据处理***
CN1242321C (zh) 应用蒙哥马利算法的幂剩余运算器
CN1607518A (zh) 在Montgomery乘法内利用SIMD指令
CN1738238A (zh) 高速可配置rsa加密算法及协处理器
US20100293216A1 (en) Modular multiplier apparatus with reduced critical path of arithmetic operation and method of reducing the critical path of arithmetic operation in arithmetic operation apparatus
CN1258710C (zh) 用于高效模数归约和模数乘法的电路和方法
JP2001005643A (ja) 累乗演算装置
CN1650254A (zh) 计算模数乘法之结果的装置及方法
Hung et al. Fast RNS division algorithms for fixed divisors with application to RSA encryption
CN1601913A (zh) 平行化循环冗余码计算方法及***
US10318245B2 (en) Device and method for determining an inverse of a value related to a modulus
CN1620644A (zh) 使用模乘法逆执行多模转换的设备和方法
US8095587B2 (en) Performing rounding in an arithmetic operation
CN1573682A (zh) 在有限域中实现平方运算的方法和装置

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: 20070124

Termination date: 20210124