CN1296817C - 模乘方法及装置及模乘计算单元 - Google Patents
模乘方法及装置及模乘计算单元 Download PDFInfo
- Publication number
- CN1296817C CN1296817C CNB028044916A CN02804491A CN1296817C CN 1296817 C CN1296817 C CN 1296817C CN B028044916 A CNB028044916 A CN B028044916A CN 02804491 A CN02804491 A CN 02804491A CN 1296817 C CN1296817 C CN 1296817C
- Authority
- CN
- China
- Prior art keywords
- polynomial
- modulus
- displacement
- intermediate result
- multiplication
- 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.)
- Expired - Fee Related
Links
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
-
- 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/724—Finite 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)
- Electrophonic Musical Instruments (AREA)
- Spinning Or Twisting Of Yarns (AREA)
Abstract
使用模数将变量多项式的被乘数模乘乘数的方法和装置,乘法先行方法以得到乘法位移值被进行。中间结果多项式由该乘法位移值的数字被向左位移以得到经移位的中间结果多项式。减法先行方法以得到减法位移值被进行,该减法位移值等于经移位的中间结果多项式的次数及模数多项式的次数的差。模数多项式再由等于减法位移值的数字位移以得到经移位的模数多项式。在三元操作数加法中,经移位的中间结果多项式及被乘数被相加,而经移位的模数多项式被减去以得到经更新的中间结果多项式。重复地执行先前步骤,模乘被逐渐地进行到所有乘数多项式的次方已被处理。藉由进位取消功能,可在单一长数目的计算单元进行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))Emod N(x)。
平方及相乘算法是基于指数E被分为2次方的和:
下列实例是用以说明此。在二进制制表示中,下列被应用:
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 LectureNotes。
在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,若该乘法先行方法允许超过一个别左移的预先设定数,亦即,若sT大于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)的模乘的观念。
根据本发明的于密码计算中使用模数将被乘数模乘乘数的方法,该被乘数、该乘数及该模数既为变量的多项式,又为该密码计算的参数,该方法包括下列步骤:
(a)执行一乘法先行方法以得到乘法位移值,该乘法位移值以该乘数的次方被增量,其未存在于该乘数多项式;
(b)将被增加至该乘法位移值的次方的该变量乘以中间结果多项式以得到一经移位的中间结果多项式;
(c)执行一减法先行方法以得到减法位移值,该减法位移值等于经移位的该中间结果多项式的次数及该模数多项式的次数的差;
(d)将被增加至该减法位移值的次方的该变量乘以该模数多项式以得到一经移位的模数多项式;
(e)相加该经移位的中间结果多项式及该被乘数及减去该经移位的模数多项式以得到一经更新的中间结果多项式;及
(f)重复步骤(a)至(e)直到所有该乘数的次方已被处理,其中在步骤(a)至(e)的重复中,
于步骤(d)中,前一步骤(e)的该经更新的中间结果多项式被用做该中间结果多项式,及
于步骤(c)中,前一步骤(d)的该经移位多项式被用做模数多项式。
根据本发明的一种于密码计算中使用模数进行将被乘数模乘乘数的装置,该被乘数、该乘数及该模数为变量的多项式,又为该密码计算的参数,该装置包括:
(a)执行一乘法先行方法以得到乘法位移值的装置,该乘法位移值以该乘数的次方被增量,其未存在于该乘数多项式;
(b)将被增加至该乘法位移值的次方的该变量乘以中间结果多项式以得到一经移位的中间结果多项式的装置;
(c)执行一减法先行方法以得到减法位移值,该减法位移值等于该经移位的该中间结果多项式的次数及该模数多项式的次数的差的装置;
(d)将被增加至该减法位移值的次方的该变量乘以该模数多项式以得到一经移位的模数多项式的装置;
(e)相加该经移位的中间结果多项式及该被乘数及减去该经移位的模数多项式以得到一经更新的中间结果多项式的装置;及
(f)重复地控制该装置(a)至(e)直到所有该乘数的次方已被处理的装置,其中在该装置(a)至(e)的重复控制中,
相乘以得到经移位的该中间结果多项式的该装置被设置以使用相加的该装置的前一控制的该经更新的中间结果多项式做为该中间结果多项式,及
执行一减法先行方法的该装置被设置以重复控制的方式以使用相乘的该装置的前一控制的该经移位模数多项式被用做模数多项式以得到经移位的模数多项式。
本发明是基于在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)的ECDSA算法(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))Emod 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,则于方块428 CURk会与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 (7)
1.一种于密码计算中使用模数(N)进行将被乘数(C)模乘乘数(M)的装置,该被乘数(C)、该乘数(M)及该模数(N)为变量(x)的多项式,又为该密码计算的参数,该装置包括:
(a)执行一乘法先行方法以得到乘法位移值(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)的该装置被设置以重复控制的方式以使用相乘以得到经移位的模数多项式的装置的前一控制的该经移位模数多项式被用做模数多项式(N)以得到经移位的模数多项式。
2.根据权利要求1所述的装置,其中该用于相乘(214)以得到经移位的中间结果多项式(Z’)的装置及该用于相乘(216)以得到经移位的模数多项式(N’)的装置被实施做为可控制的位移缓存器以依据该乘法位移值(sZ)或依据该减法位移值(sN)而由相对应数字位移该缓存器内容。
3.根据权利要求1或2所述的装置,其中用于相加(218)及用于相减的该装置包含一位异或装置,该位异或装置是用以异或该中间结果多项式(Z’)、该被乘数多项式(C)及该经移位的模数多项式(N’)而进行。
4.根据权利要求1或2所述的装置,用于相加(218)及相减的该装置包括:
一具三个输入线路及二个输出线路的计数器(500),其中该中间结果多项式(Z)的一位可被供应至第一输入线路,其中该被乘数(C)的一位可被供应至第二输入线路,及其中该经移位的模数多项式(N’)的一位可被供应至第三输入线路;
一具三个输入及一输出的全加器(510),该计数器(500)的低次输出是连接至该全加器(510)的高次输入线路;
一在该计数器(500)的较高次输出线路及该全加器(510)的中间输入间连接的开关(520)以用于较高次位;及
一控制单元(530)以当多项式要被处理时,开启该开关(520)。
5.根据权利要求1所述的装置,是作为一种计算单元以使用该模数将该被乘数乘以该乘数,该计算单元使用模数整数将被乘数整数乘以乘数整数,其中该相加装置是形成为三元操作数加法器(700),包括一进位取消装置,该相加装置是用以合并该整数操作数或多项式操作数,其中该装置更包括一控制装置(730),用以控制该进位取消装置以使当该多项式操作数被该相加装置处理时,该进位被去活化及以使当整数操作数被该相加装置处理时,该进位被活化。
6.根据权利要求5所述的装置,具有进位取消装置的该三元操作数加法器包括;
一具有三个输入线路及二个输出线路的计数器(500),其中一中间结果多项式的一位可被供应至第一输入线路,其中该被乘数多项式(C)的一位可被供应至第二输入线路,及其中该经移位模数多项式的一位可被供应至第三输入线路;
一具有三个输入及一输出的全加器(510),该计数器(500)的低次输出是连接至该全加器(510)的高次输入线路;
一在该计数器(500)的较高次输出线路及该全加器(510)的中间输入间连接的开关(520)以用于下一较高次位;及
一控制单元(530),用以当多项式要被处理时,开启该开关(520)。
7.根据权利要求6所述的装置,其中许多三元操作数加法器存在,三元操作数加法器存在的数目大于该模数整数或多项式的数字的数目。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10107376.3 | 2001-02-16 | ||
DE10107376A DE10107376A1 (de) | 2001-02-16 | 2001-02-16 | Verfahren und Vorrichtung zum modularen Multiplizieren und Rechenwerk zum modularen Multiplizieren |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1489726A CN1489726A (zh) | 2004-04-14 |
CN1296817C true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107004072A (zh) * | 2014-12-12 | 2017-08-01 | 皇家飞利浦有限公司 | 电子生成设备 |
Families Citing this family (27)
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 |
US20040120516A1 (en) * | 2002-12-23 | 2004-06-24 | International Business Machines Corporation | Modular reduction method which recognizes special conditions |
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 |
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 |
CN100517214C (zh) * | 2007-05-30 | 2009-07-22 | 北京天碁科技有限公司 | 一种实现二进制多项式运算的硬件配置方法及硬件系统 |
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 |
DE102018209901A1 (de) * | 2018-06-19 | 2019-12-19 | Robert Bosch Gmbh | Recheneinheit, Verfahren und Computerprogramm zum Multiplizieren zumindest zweier Multiplikanden |
CN115934029B (zh) * | 2023-02-20 | 2023-05-30 | 辰星(天津)自动化设备有限公司 | 乘法运算资源转换逻辑资源方法、装置、乘法器及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4870681A (en) * | 1986-03-05 | 1989-09-26 | Holger Sedlak | Cryptographic method and cryptographic processor for carrying out the method |
CN1152746A (zh) * | 1996-09-20 | 1997-06-25 | 张胤微 | 高速模乘法方法及装置 |
CN1172390A (zh) * | 1996-04-05 | 1998-02-04 | 冲电气工业株式会社 | 模幂运算电路和系统及模幂运算方法 |
WO2000038047A1 (en) * | 1998-12-18 | 2000-06-29 | Motorola Inc. | Circuit and method of cryptographic multiplication |
Family Cites Families (4)
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 |
US5251164A (en) * | 1992-05-22 | 1993-10-05 | S-Mos Systems, Inc. | Low-power area-efficient absolute value arithmetic unit |
-
2001
- 2001-02-16 DE DE10107376A patent/DE10107376A1/de not_active Withdrawn
-
2002
- 2002-01-24 WO PCT/EP2002/000719 patent/WO2002067108A2/de active IP Right Grant
- 2002-01-24 AT AT02714108T patent/ATE357016T1/de not_active IP Right Cessation
- 2002-01-24 JP JP2002566769A patent/JP3939658B2/ja not_active Expired - Lifetime
- 2002-01-24 EP EP02714108A patent/EP1360579B1/de not_active Expired - Lifetime
- 2002-01-24 CN CNB028044916A patent/CN1296817C/zh not_active Expired - Fee Related
- 2002-01-24 DE DE50209713T patent/DE50209713D1/de not_active Expired - Lifetime
- 2002-02-08 TW TW091102434A patent/TW550498B/zh not_active IP Right Cessation
-
2003
- 2003-07-21 US US10/623,830 patent/US6920473B2/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4870681A (en) * | 1986-03-05 | 1989-09-26 | Holger Sedlak | Cryptographic method and cryptographic processor for carrying out the method |
CN1172390A (zh) * | 1996-04-05 | 1998-02-04 | 冲电气工业株式会社 | 模幂运算电路和系统及模幂运算方法 |
CN1152746A (zh) * | 1996-09-20 | 1997-06-25 | 张胤微 | 高速模乘法方法及装置 |
WO2000038047A1 (en) * | 1998-12-18 | 2000-06-29 | Motorola Inc. | Circuit and method of cryptographic multiplication |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107004072A (zh) * | 2014-12-12 | 2017-08-01 | 皇家飞利浦有限公司 | 电子生成设备 |
Also Published As
Publication number | Publication date |
---|---|
JP3939658B2 (ja) | 2007-07-04 |
DE10107376A1 (de) | 2002-08-29 |
ATE357016T1 (de) | 2007-04-15 |
US20040019622A1 (en) | 2004-01-29 |
EP1360579B1 (de) | 2007-03-14 |
DE50209713D1 (de) | 2007-04-26 |
CN1489726A (zh) | 2004-04-14 |
WO2002067108A3 (de) | 2002-12-12 |
EP1360579A2 (de) | 2003-11-12 |
WO2002067108A2 (de) | 2002-08-29 |
JP2004519052A (ja) | 2004-06-24 |
US6920473B2 (en) | 2005-07-19 |
TW550498B (en) | 2003-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1296817C (zh) | 模乘方法及装置及模乘计算单元 | |
CN1153129C (zh) | 用于处理器定制操作的设备 | |
Schinianakis et al. | An RNS implementation of an $ F_ {p} $ elliptic curve point multiplier | |
CN1306390C (zh) | 使用带符号的数位表示的乘法器 | |
CN1530824A (zh) | 用于执行蒙哥马利型模乘法的装置及方法 | |
CN1630204A (zh) | 具有矩阵转换技术的循环冗余码计算方法及系统 | |
CN1099110C (zh) | 通用纠错系统 | |
CN1136692C (zh) | 数据变换装置及数据变换方法 | |
CN1259617C (zh) | 一种加快rsa加/解密过程的方法及其模乘、模幂运算电路 | |
CN1961284A (zh) | 使用n位乘加操作实现不变量除数的整数除法的方法和系统 | |
CN1107905C (zh) | 在分组数据上执行乘-加运算的装置 | |
CN1411630A (zh) | 用于生成循环余数核对代码以及生成其他基于余数的编码的方法、设备和产品 | |
US20070198824A1 (en) | Cryptography system and elliptic curve operation method | |
CN1242321C (zh) | 应用蒙哥马利算法的幂剩余运算器 | |
CN1975662A (zh) | 算术运算单元、信息处理设备和算术运算方法 | |
CN1238604A (zh) | 里德-所罗门编码装置与编码方法 | |
CN1607518A (zh) | 在Montgomery乘法内利用SIMD指令 | |
CN1806224A (zh) | 用于防御微分功率分析攻击的方法 | |
CN1058344C (zh) | 数据处理系统中进行模糊逻辑运算的方法和数据处理系统 | |
CN1539103A (zh) | 模数增值方法及装置 | |
JP2001005643A (ja) | 累乗演算装置 | |
CN1739094A (zh) | 防止隐蔽信道攻击的整数除法方法 | |
CN1967469A (zh) | 高效模乘方法及装置 | |
CN1689267A (zh) | 以相似的效率处理任意密钥位长加密操作的方法和设备 | |
CN1326566A (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 |