CN100437470C - 模数增值方法及装置 - Google Patents

模数增值方法及装置 Download PDF

Info

Publication number
CN100437470C
CN100437470C CNB028063961A CN02806396A CN100437470C CN 100437470 C CN100437470 C CN 100437470C CN B028063961 A CNB028063961 A CN B028063961A CN 02806396 A CN02806396 A CN 02806396A CN 100437470 C CN100437470 C CN 100437470C
Authority
CN
China
Prior art keywords
modulus
conversion
buffer
value
reduction
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
Application number
CNB028063961A
Other languages
English (en)
Other versions
CN1539103A (zh
Inventor
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 CN1539103A publication Critical patent/CN1539103A/zh
Application granted granted Critical
Publication of CN100437470C publication Critical patent/CN100437470C/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

Abstract

于一模数增值方法中,使用计算一乘法位移值之一增值预测处理以及计算一缩减位移值之一缩减预测处理,一模数首先被转换(10)为大于该模数之一转换模数。该转换被执行使得该转换模数之一预定分数具有被一包含一第二预定值之至少一低阶位数所跟随而包含一第一预定值之一高阶位数。于使用增值预测处理及缩减预测处理之叠代消除(12)期间,转换模数被使用以便在叠代终了时获得该模数增值之一转换乘积。最后,该转换乘积使用该原始模数藉由模数缩减而被再次转换(14)。藉由依据本发明之转换,模数增值之叠代消除被简化,所以模数增值可被较快的执行。

Description

模数增值方法及装置
本发明系关于密码算法及实施此种密码算法之装置,尤指一种使用增值预测(multiplication look-ahead)处理及缩减预测(reduction look-ahead)处理之模数(modular)增值之方法及装置。
密码翻译术系模数计算的必要应用。RSA系一种已知之密码翻译术之必要的算法。RSA算法系基于一模数乘方(exponentiation),其可被表示如下:
C=Mdmod(N),
其中C代表一加密讯息,M系未加密讯息,d为秘密钥匙而N为模数。模数N通常由二主要数字p及q之增值所产生。模数乘方藉由已知的平方及乘数(square-and-multiply)算法而被展开为乘法运算。因此,指数d被展开为2的幂次,因此模数乘方可被展开为数个模数乘法运算。为了能有效率地在计算方面实施模数乘方,模数乘方因此被展开为模数乘法运算,模数乘法运算之后可被展开为模数加法运算。
DE 3631992 C2号文件揭露一种密码处理,其中的模数乘法可使用增值预测(look-ahead)处理及缩减预测处理之模数(modular)乘法而被加速。DE 3631992 C2所描述之处理也关于一种ZDN方法,并藉由图9做更详细的描述。在算法的启始步骤900之后,整体变量M,C及N被重置。目的在于计算以下的模数乘法:
Z=M*CmodN.
M是乘数,其中C是被乘数。Z是此模数乘法之乘积,其中N是模数。
然后,有许多暂时不需要被处理的被重置的区域变量(localvariables)。之后使用二预测处理。在增值预测处理GEN_MULT_LA中,一乘法位移(shift)值Sz以及增值预测参数a使用不同的预测规则而被计算(910)。接着,Z缓存器目前的内容接受Sz次的左位移运算(920)。
实际上与之平行处理的是执行一缩减预测处理GEN_Mod_LA(930)用以计算一缩减位移值SN以及一缩减参数b。于步骤940,模数缓存器目前的内容,亦即N,分别被向左或向右位移SN次,以便产生一已位移的模数值N’。ZDN方法之中央三操作数(operand)操作发生于步骤950。于此步骤中,步骤920之后的中间乘积Z’被加到已被乘上增值预测参数a的被乘数C以及已被乘上缩减预测参数b之已位移的模数N’。依据目前的情况而定,预测参数a及b的值可能为+1,0,或-1。
一种典型的情况是增值预测参数a是+1,而缩减预测参数b是-1,因此被乘数C被加到已位移的中间乘积Z’,而已位移之模数N’则被减去。如果增值预测处理允许大于一预设数目之个别左移,亦即,如果Sz大于Sz的最大可接受值,其也被称为k,则a的值将是0。在a的值为0的情况下,而Z’,由于已位移模数之前的缩减,将依然十分地小,尤其是小于已位移的模数N’,b为0的时候不产生缩减。
步骤910至950被执行直到所有被乘数的数字已被消除或处理,亦即,直到m为0且直到一参数n等于0为止;此参数指示位移的模数N’是否依然大于原始的模数N,或是是否尽管所有被乘数的数字已被消除,仍然有许多从Z减去之模数减法的进一步缩减步骤需要被执行。
最后,决定Z是否小于0。如果是,则需要达成模数N被加到Z的最终缩减,所以在此获得模数乘法的正确乘积Z。在步骤960,藉由ZDN方法之模数乘法于此终止。
乘法位移值Sz以及在步骤910藉由增值预测算法所计算的乘法参数a系从乘法器拓朴(topology)以及DE3631992 C2所描述之预测规则所产生。
缩减位移值SN以及在DE3631992 C2所描述之缩减参数b系由比较Z缓存器目前的内容与2/3乘以N的值所决定。此比较给予ZDN方法的名称(ZDN=Zwei Drittel N(=3分之2N))。
如图9所示之ZDN方法转变模数乘法为三个操作数加法(图9的方块950),其中增值预测处理以及同时发生的缩减预测处理被用以增加计算时间效率。因此,与蒙哥马利缩减(Montgomery reduction)相较之下可达成计算时间方面的益处。
在下文,于方块930中所执行的缩减预测处理将藉由图10而被详细描述。首先,在方块1000,为区域变量,亦即缩减预测参数b及缩减位移值SN,执行一个保留。在方块1010,缩减位移值SN被重置为0。然后,数值ZDN在方块1020中被计算,其等于模数N的2/3。在方块1020中所决定的这个值被储存于密码协处理器(crypto coprocessor)中其本身之缓存器,称为ZDN缓存器。
之后在方块1030中决定变量n是否为1或是位移值SN是否为-k。k是定义硬件所预设之最大位移值。于第一次运作中,方块1030被回答”否”,因此在方块1040,参数n被减少且于方块1060中,缩减位移值被减少1。在方块1080中,变量ZDN随后被重新配置,即其值的一半,其可轻易地藉由包含于ZDN缓存器中的一个右位移缓存器而达成。随后在方块1100中决定目前的中间乘积的绝对值是否大于ZDN缓存器中所包含的值。
方块1100中的比较运算是缩减预测处理的中央运算。如果此问题的答案为”是”,此叠代(iteration)停止,且缩减预测处理参数b将被配置如方块1120所示。如果,与之相反,在方块1100将被回答的问题的答案为”否”,此叠代往回跳以便检查方块1030中的目前述值n及SN。如果在叠代的任何时间中方块被回答”是”,流程跳回缩减参数被设定为0的方块1140。在方块950所示之三操作数运算,这具有无模数被加或减的效用,其表示中间乘积Z很小以致于不需要模数缩减。在方块1160,变量n随后被重新配置,且最后于方块1180此缩减位移值SN被计算,其于图9的方块940中是需要的以便执行模数的左位移而获得一位移的模数。
在方块1200,1220及1240,n及k的目前的值最后为了检查N缓存器目前的配置而相对于下一步的变量MAX及cur_k被检查,为确定没有发生超出缓存器的情况。此结束的细节与本发明无关,但于DE3631992 C2中有详细描述。
图9及10所示之算法可以图7所示之硬件实施。对于方块950中所执行的三个操作数的运算,需要一个算术单元700,图7中标示为AU。之后被耦合至被乘数的缓存器C 710,模数用的缓存器N 720以及模数乘法之目前中间乘积用之缓存器Z 730。此外,图7揭露,三操作数的运算,经由回馈箭头740,系被馈入Z缓存器730。此外,图7表示这些缓存器的相互连接关系。在图10的方块1020中所计算的ZDN的值必须被储存于其本身的ZDN缓存器750。此外,ZDN比较,即图10所示之叠代循环(loop),藉由其本身之ZDN比较用之一控制逻辑760而于其进度中被控制。
计算Z:=M x C mod N之ZDN算法的主要工作因此包含以下二运算:
1.计算缓存器Z及N之位移值Sz及Si以便满足以下的程序:
2/3N x 2-si<|z|≤4/3 N x 2-si以及
2.计算三操作数的总合:
Z:=2sz Z+Ac+b x 2sz-si N
此增值预测参数a及缩减预测参数b可如已知般被假设为数值-1,0及+1。
必须指出的是中间乘积Z,被乘数C以及模数N是长的数字,亦即其位数或位的计数实际上可能大于512,且其也可能达到大于2048位数。
然而,在方块1100中所执行的目前中间乘积Z与数值ZDN的比较为了计算时间的缘故,并不会对Z的所有位进行,而只对Z的最大有效位(most significant bits)进行;在此情况下,32位的数目被移除以便足以获得比较结果的高度精确度。
对于此必较所需之2/3N之32个最大有效位,需要其本身的缓存器,其于图7中以参考标号750指示并被指定为一ZDN缓存器。
此外,其本身也需要一个计算Z缓存器中之目前数值以及ZDN缓存器中之目前数值的正确Si值以便满足以下方程式的硬件比较器:
2/3 N x 2-si N<|z|≤4/3 x 2-si N
因此,此方法的缺点在于一方面二个额外的ZDN缓存器及硬件比较器都需要额外的芯片区域。另一方面,2/3N的计算及图10所示之由叠代循环所执行的ZDN算法中的辅助的位移值Si的计算对整体算法而言是时间的关键,并且可能实际上对算法整体的运算时间有决定性。
本发明之一目的在于提供一种模数增值的概念,其一方面可以用节省空间的方式被实施,且另一方面需要较少的计算时间。
此目的藉由申请专利范围第1项之模数增值方法或申请专利范围第14项之模数增值装置而达成。
本发明系基于更新的中间乘积与ZDN数值,即2/3乘以模数N,的比较的发现,该比较包括计算时间中的高消耗时间可于模数N首次被转换(transform)为转换的模数NT的时候被利用,且整个模数增值以转换的模数NT取代特定的模数而被执行。依据本发明,此模数被转换,因此被转换模数之预定的分数(fraction),亦即,于一较佳实施例中为2/3乘以转换的模数,变成一特定的数,此数被选择为使得2/3NT与中间成积Z的比较变为微不足道的。依据本发明,此转换被执行因此该转换模数的该预定分数具有第一预定值的较高阶数的位数,其后接续具有一第二预定值的至少一低阶数的位数。在数字的表示及二的补码规定中,最大有效位代表符号,模数至被转换模数的转换被执行因此2/3NT的第二最大有效位系一二进制值,然而第三最大有效位及次一小的有效位是0。
于此种情况下,此比较是微不足道的,因此其仅需计算转换模数之预定部份的最大有效位数与模数代表之更新的中间乘积Z以便获得位移值Si,随后从该值可轻易地藉由从平行发生的增值预测处理之乘法位移值减去从ZDN比较所得之所谓的辅助值Si而决定缩减位移值SN
全部的ZDN运算如同习知情况般被消除。然而,取代模数N,转换的模数NT被使用,因此最后达成模数增值之”转换的结果”,其系于转换模数NT之余项集(reminder class)中。最终的重新转换,因此模数增值以模数的方式被降低,使用原始的模数N,将随后产生使用模数N以被乘数C乘以乘数M之模数乘法的适合乘积。
本发明之较佳实施例将于以下参照附图而被详细解释,其中:
图1系依据本发明之模数增值之概念的流程图;
图2系分离模数N为第一部份位NT及第二部份位NR
图3系分离模数N为具有长度L(NT)及剩余位之第一部份位NT
图4系2/3乘以转换模数NT之位表示;
图5系随机化转换模数之位表示;
图6系依据本发明执行模数增值之算术逻辑单元图式;
图7系已知ZDN方法之算术逻辑单元图式;
图8a-8c系增值位移值Sz与辅助位移值Si及缩减位移值SN之关系的表示;
图9系已知ZDN方法之流程图;
图11系已知缩减预测处理之流程图。
图1表示依据本发明使用模数N以乘数M乘以被乘数C之模数增值之方法的流程图。首先,模数N在步骤10依据以下方程序被转换为转换模数NT
NT=T x N
在步骤12,模数乘法随后使用转换模数N以及在较佳实施例中预定为2/3的转换模数的部份而被消除。相对于模数乘方,这表示以下形式的RSA方程式被计算:
CT:=Md mod NT
因此,模数乘方C的积不在由模数N所定义的余项集中被计算,而是在转换模数NT所定义的余项集中被计算,因此,CT,而非C,位于上述方程式的左方。依据本发明概念之区别在于,由于转换模数NT的使用,对应已之缩减预测处理之图10的叠代循环的辅助缩减位移值Si被高度简化。
在最后的步骤14,NT至N的再转换再次被执行,藉由执行对应以下方程序的运算:
C:=CT mod N
在此情况中,位于转换模数NT之余项集中的转换乘积CT藉由简单的位移/减法缩减而回到模数N的余项集,因此C为模数乘方的乘积
使用步骤10的转换子T转换模数N为转换的模数NT的转换被执行,因此该转换模数的该预定分数,亦即于较佳实施例中为2/3乘以转换模数,具有含较一第一预定值的较高阶位数,其后跟随至少一含一第二预定值之低阶位数。具有2/3乘转换模数的中间乘积Z的比较可因此被高度简化,亦即,Z的最高位,其具有预定值,寻找,且具有该转换模数的该预定分数的第一预定值的较高阶位数与具有第一预定值的中间乘积Z的最高位数的差异等于差异Si。
综言之,这可如以下所示。N在32位CPU而非在密码协处理中被转换为转换模数NT,因此适用以下:
NT=T x N
其中T为自然数。
以下由NT所产生,如果所有的使用的数字为二进制数:
NT=1100...0 XX...XX
对2/3乘以转换模数而言,则产生以下的结果:
2/3=100...0 X’X’...X’X’
可以从NT及2/3NT看出二者皆具有例如16位的第一部份以及分别为位X及X’的L(N)部份。对于所谓的ZDN比较而言,只有2/3乘以转换模数NT的最高16个位被使用,因为其已产生优于大约2-10的误差可能性。因此,对ZDN比较不需要使用2/3乘以转换模数的所有512,1024或2048位,但其已足以执行与转换模数之最高16位的比较。当然,也可能使用2/3乘以转换模数的较少位来做比较,但误差可能性逐渐增加。然而,因为此误差是不重要的并且只产生在缩减预测处理的次最优行为中,此方法实际上很容易执行。
2/3乘以转换模数NT因此具有含数值1的较高阶位数,其后跟随具有一数值0的至少一低阶位数及因此一第二预定值。于之前所述之实施例中低阶位数的数目为15。此处也有可能使用较高或较少的数,依据中间乘积Z与2/3乘以转换模数NT之间所期望或处理的维度(dimensional)差异。对于模数乘积之中间乘积Z,亦即图9方块950中的三操作数的相加,产生以下的形式:
|Z|=00...01YY...Y
辅助位移值Si依据以下方程序被计算:
2/3 NT x 2-si<|z|≤4/3 NT x 2-si
在2/3乘以转换模数NT的拓朴下,数值Si永远是具有1的2/3乘以转换模数NT最大有效位与中间乘积之值的最大有效1之间的距离。
依据本发明,位数或数值Si之间的差异可以在一般的方式中决定。因此不再需要叠代。
除了以上,储存2/3乘以转换模数NT的ZDN缓存器也不再被需要,因为,就定义而言,2/3乘以转换模数NT的至少较高的,例如16位,总是具有相同的形式。也不再需要位比较器。具有一个”1”的2/3乘以转换模数NT的最高阶位数与具有一个”1”的Z的最高阶位数之间的有效差异可轻易地被建立,例如藉由转换模数用的XOR运算缓存器以及中间乘积Z的缓存器。Si随后等于位数的有效差异,其中XOR运算输出一第一”1”且其中XOR运算输出一第二个”1”。
由于不需要ZDN缓存器及ZDN比较器的事实,整体的算术逻辑单元可被容纳于较少的芯片区域。
除了以上,密码控制部,即ZDN比较的控制逻辑(图7的760)较不复杂,因为不需要执行图10的复杂叠代。最后,此比较是较快的,因此辅助位移值Si的计算不再导致整个算法的时间问题。
在下文,依据本发明的转换将藉由图2至5被详细描述。
如同已被指出之部份,ZDN算法的实质部份包括满足以下的方程式:
2/3 2-si N<|z|≤4/3 2-si N
Si系关于辅助位移值且为位移Z,在位数方面,至与N相同的位置所需之位移值。在习知技术中,Si的计算需要|Z|与2/3N的比较运算。
依据本发明,在任何以N的模数运算被执行之前以大于N的转换模数NT,与2/3N的比较简单地藉由转换模数N至转换模数NT。所有的计算模数NT于其后被执行。然而,因为计算的结果必须在余项集N之中,依据本发明执行以N的最终缩减。
如图2所示,N被表示为长度为N位的整数。由于模数N总是为正整数的事实,亦即在二的补码表示中MSB=0,符号位等于0且模数N的最大有效位(MSB-1)总是为1。ZDN比较并不需要比较模数的所有位与中间乘积,相反地,ZDN的比较使用m位的数字即已足够。模数N的最大m位定义模数的第一部份NT,其中模数的剩余N-m位定义模数的第二部份NR。在较佳实施例中,m等于16。较高或较低的m值,当然也是可能的。
如于图3所示,此转换被执行以便转换模数NT比图2的原始模数长16位。
ZDN比较使用NT的前16位是足够的,以本发明较佳实施例仅使用12位以为比较之用,而4个最小有效位构成可能承载的缓冲,其可来自更少的有效位。
在此情况下,产生错误结果的比较可能性小于2-12。如果此比较产生错误的结果,其仅产生一次最佳位移值SN,然而,所产生的模数N依然正确。
如果此模数如图2以2的补码表示,模数N可被展开如下:
N=2n-m NT +NR
现在N使用转换子T被转换为NT,为全等(congruence)的理由,T为适合的被选择整数。NT应具有图3所示之形式,亦即,NT的最大有效位(MSB)必须为0,因为NT应为一正整数。如下文所解释,NT的第二最大有效位及第三最大有效位必须为1,因此,转换模数NT最高部份的有效位的其它部份,此部份为图3的参考标号33,的数值应该为”0”。仅于此例中,2/3乘以NT的乘积,2/3乘以NT的最高部份,如图4所示,仅有一位为”1”,因此于此最高部份44的所有位皆为”0”,因此已经描述之决定Si之一般的比较可被执行。
然而,使用转换子T的转换模数NT的计算将首先参照图3而讨论。假设以下的定义:
NT=T N
=T(2n-m NT+NR)
以下维持转换子T:
T = | 2 p - 2 + 2 p - 3 N T |
使用程序17,以下产生转换模数NT
N T = | 2 p - 2 + 2 p - 3 N T | ( 2 n - m NT + NR )
N T = ( 2 n + p - m - 2 + 2 n + p - m - 3 ) NT NT + ( 2 p - 2 + 2 p - 3 ) NR NT
如果,以p及m的典型值为例,亦即当p等于32位而m等于16位时,NT有如下的结果:
N T = 2 n + 14 + 2 n + 13 + | 2 p - 2 + 2 p - 3 N T |
将指出的是NT的计算最好在主控CPU中执行而不是在密码协处理器中执行。此主控CPU包含一短数演算逻辑单元,其已足以计算NT。由于T必须为整数的事实且此计算必须于密码协处理器模数NT,而不是模数N中进行,以NT大于N,只有NT的第一个p-m等于16位与一般的ZDN比较相关,以便计算辅助位移值Si。NT其它的n位可以是任何数字,它们与辅助位移值Si的计算无关,亦即,对于与Z的比较。然而,转换模数NT的所有位,当然,对于三操作数的加法是需要的,其现在,取代位移模数的使用,使用位移转换模数而被执行。
如图17所示,转换子T系为m与p所选择之数值中之一16位整数。计算T及计算NT的除法,因此必须分别仅对最大有效32位执行,且因此可以快速轻易地在主控CPU上被程序化。
图4表示2/3乘以转换模数NT。当NT的MSB-1及MSB-2为”1”时,如图3所示,且因为以下适用
(11)2=(3)10以及(2/3 x 3)2=(2)10=(10)2
2/3乘以转换模数NT之一简单位形式,具有2/3乘以转换模数NT之长度为n-m+p。
由于2/3NT的特定形式,与|Z|的比较现在变得比较简单。已知2/3NT的最高阶1为一模数运算初始的位置n+p-m-2。在较佳实施例中之缓存器Z的指针(pointer)随后在Z的MSM开始,并寻找Z的第一个”1”。如果Z的MSB为1,Z将是一个负数,且相反地,将寻找Z的第一个0。
缓存器N及缓存器Z中的第一个1的位位置的差异将决定辅助位移值Si。
由于模数运算的结果必须在余项集N之中,最后缩减模数N依据本发明而被执行,其表示再次的转换必须被执行(图1的步骤14)。
N至NT的转换与已知的ZDN相较之下有以下的优点:
取代密码协处理器中的2/3N的计算,简单的N至NT的转换可于主控CPU中被执行。
在芯片上不需要ZDN缓存器也不需要比较器逻辑,因此芯片尺寸被降低且协处理器的复杂度被降低。
最后,N至NT的转换可与模数N的随机化结合,如图5所示。
当R为一长度s为位的随机数(random number)时,随机的转换模数NT具有图5所示的形式。由于随机数N,此被随机化的转换模数,当与未执行随机化的情况(图3)相较之下,较其长s位,亦即,藉由R的数字的数目。
于一方程式的形式中,这可被表示如下:
NT=TN
  =T(2n-m NT+NR)
随后,此随机化的T如下:
T = | 2 p - 2 - 2 p - 3 + R N T |
因此,产生以下的随机转换模数:
N T = | 2 p - 2 - 2 p - 3 + R N T | ( 2 n - m NT + NR )
N T = ( 2 n + p - m - 2 + 2 n + p - m - 3 + R 2 n - m ) NT NT + ( 2 p - 2 + 2 p - 3 + R ) NT NR
当选择p具有144位,m具有16位且s具有112位,包含随机化的转换模数NT之数值结果如下:
N T = 2 n + 126 + 2 n + 125 + R 2 n - 16 + NR | 2 144 + 2 143 + R N T |
NT的位长度为:
L(N)=n+p-m=n+m+s=n+16+112=n+128位
图6表示依据本发明之一算术逻辑单元,其与图7相较之下,不再需要一ZDN缓存器,而仅为一算术单元700,一C缓存器710,一N缓存器720以及一Z缓存器730,以N缓存器720不再储存模数或一位移的模数,而是转换的模数或一位移转换模数,或一随机转换模数或一位移随机转换模数。
在下文,图8a至8c将被描述以说明使用辅助缩减位移值Si计算缩减位移值Sz的计算。图8a表示中间乘积Z以及模数N。仅由范例,此中间乘积具有4位,而模数具有9位。现在假设图2的方块214计算一位移的中间乘积Z’,其可藉由乘上Sz而达成。假设乘数具有8个0,其乘法位移值Sz为8。为获得模数缩减,模数N必须被位移到位移的中间乘积多项式Z’的最高位等于位移的模数N的最高位的程度。如由图8b可见,在此情况中需要一个为3的缩减位移值SN
如从图8b所示,SN的决定实际上可仅于Sz已被计算后被执行,亦即,图2之方块210与方块212的平行实施,如本发明之较佳实施,是不可能的。为此理由辅助位移参数Si被导入。Si的益处在于此数值可被计算而不需要已知之目前步骤的Sz。
从图8b中可见,在所有时间Sz等于Si与SN的总合。因此SN总是与Si相关,因此适用下方程式:
SN=Sz-Si
因此,决定SN用之消耗时间的叠代处理可被展开为决定Si用之一耗时的叠代步骤(循环416)以及一快速差额运算(图4的循环422)。因此,二预测处理的平行实施是可能的,以单一串行组件,存在于,在计算方块422(图4)之前Sz的实际数值已经被增值预测算法所计算及传递(图2的箭号230)。
综上所述,与已知的ZDN相比较之下,本发明简化2/3N与Z值之间的比较。对照目前所知的方法,其中2/3N的最高32位在密马协处理器中被计算并被放置于一分离的32位缓存器,此ZDN缓存器,经由构成密码协处理器之控制部之组成部份的比较器,以2/3N与具有已经依据习知ZDN方法在硬件中被执行的Z值的比较,此方法的进行如下。此模数N被主控CPU转换为大于N的转换NT,具有NT的第一位为一常数,此常数被选择以便让2/3NT与Z值的比较是微小的。为改进信息渗漏侵害方面的安全性,如SPA,DPA,时间侵害,...,N至NT的转换可与模数的随机化结合,如前所述。
因此在密码协处理器中的2/3N的计算可以被免除。ZDN缓存器及比较逻辑也可被省略,因此提供较小的芯片区域并藉由省略比较器逻辑而降低密码协处理器中之控制部的复杂度。
参考标号表
10   模数转换
12   模数增值之叠代消除
14   转换乘积之再转换
33   转换模数之上区段
44   2/3乘以转换模数之上区段
700  算术单元
710  C缓存器
720  N缓存器
730  Z缓存器
740  叠代循环
750  ZDN缓存器
760  ZDN比较的控制逻辑
900  ZDN方法的开始
910  ZDN算法的增值预测处理
920  Z的向左或向右位移
930  ZDN算法的缩减预测处理
940  模数的向左位移
950  ZDN算法的三个操作数运算
960  ZDN算法的终止
1000 整体变量
1010 缩减位移值的重置
1020 ZDN的计算
1030 n及SN的检查
1040 n的缩减
1060 缩减位移值的缩减
1080 ZDN/2的计算
1100 中间乘积与ZDN的比较
1120 决定缩减预测参数
1140 决定缩减预测参数
1160 n的计算
1180  缩减预测参数的计算
1200  n的检查
1220  cur_k的计算
1240  cur_k的计算

Claims (13)

1.一种在一处理器中一乘数(M)乘上被乘数(C)的模数增值方法,其中一模数(N)被使用,该方法使用一增值预测处理以及一缩减预测处理,该处理器包括一模数缓存器(720),一乘法中间乘积缓存器(730),以及一算术单元(700),该算术单元(700)的输入端与该模数缓存器(720)和该乘法中间乘积缓存器(730)相连接,且其中该算术单元(700)的输出端反馈至该乘法中间乘积缓存器(730)并且与一控制逻辑(760)相连接,该方法包括步骤:
转换(10)该模数(N)为大于该模数(N)的一转换模数(NT),并储存该转换模数(NT)于该模数缓存器(720),该转换模数(NT)的一预定分数具有包含一第一预定值的较高阶缓存器位数以及跟随其后的至少一包含一第二预定值的较低阶缓存器位数;
模数增值的迭代消除(12),使用该增值预测处理以及该缩减预测处理并使用该转换模数(NT),以便在该迭代的终了获得该模数增值的一转换乘积;及
经由使用该模数(N)的该转换乘积的模数缩减,重新转换(14)该转换乘积,
其中,于该迭代消除步骤(12)中执行多个迭代步骤,于一迭代步骤中决定一乘法中间乘积并将其储存于该乘法中间乘积缓存器(730),且于该迭代步骤中决定一缩减位移值(SN),该缩减位移值(SN)的计算是使用一缓存器位数的数目(Si)的一决定,由该控制逻辑执行,该缓存器位数的数目(Si)是介于含该转换模数(NT)的该第一预定值的该模数缓存器的该较高阶缓存器位数,与含该第一预定值的该乘法中间乘积缓存器(730)的最高阶缓存器位数之间。
2.如权利要求1所述的方法,
其中为决定该缓存器位数的数目(Si),该模数缓存器和该乘法中间乘积缓存器(730)的一XOR位运算被执行,其中该数目(Si)等于该XOR运算输出一第一“1”与该XOR运算输出一第二“1”的位数价差。
3.如权利要求2所述的方法,
其中于该增值预测处理中决定一乘法位移值(Sz),且其中该缩减预测处理的缩减位移值(SN)是藉由从该乘法位移值(Sz)减去该缓存器位数的数目(Si)而被计算。
4.如前述权利要求任一项所述的方法,其中该迭代消除步骤包括以下步骤:
于第一迭代步骤:
(a)执行一增值预测处理以获得一乘法位移值(Sz);
(b)以一目前中间乘积(Z)乘上被提高至该乘法位移值的幂次的一基数以获得一位移中间乘积(Z’);
(c)执行一缩减预测处理以便藉由决定等于该缓存器位数数目(Si)的一辅助位移值而获得一缩减位移值(SN),并通过使用该辅助位移值及该乘法位移值(Sz)计算该缩减位移值;
(d)以被提高至该缩减位移值的幂次的该基数乘上该转换模数(NT)以获得一位移转换模数(NT’);以及
(e)加总该位移中间乘积(Z’)与该被乘数(C)并减去该位移转换模数(NT’)以获得一更新的中间乘积(Z)。
5.如权利要求1所述的方法,其中该转换模数的预定分数为2/3。
6.如权利要求5所述的方法,其中该被乘数(C),该乘数(M)及该模数(N)为二进制数,具有基数2,且其中该转换模数(NT)的该预定分数的较高阶缓存器位数具有一第一预定值1,以及该预定分数的至少一较低阶缓存器位数具有一第二预定值0。
7.如权利要求6所述的方法,
其中该转换模数的最大有效位是一符号位,而该转换模数的该预定分数的一较高阶区段内含如下:
01000xx...xx
其中被标示为xx的位具有任意值。
8.如权利要求7所述的方法,
其中该转换模数(NT)的较高阶区段内含如下:
01100...00。
9.如权利要求1所述的方法,其中转换(10)该模数(N)为大于该模数(N)的一转换模数(NT)的步骤包括模数的随机化,因此该转换模数是随机的。
10.一种处理器,用于以一乘数(M)乘上一被乘数(C)的模数增值,其中一模数(N)被使用,该处理器使用一增值预测处理以及一缩减预测处理,该处理器包括:
一装置,用来转换(10)该模数(N)为大于该模数(N)的一转换模数(NT),该转换模数的一预定分数具有包含一第一预定值的较高阶位数以及跟随其后的至少一包含一第二预定值的较低阶位数;
一装置,用以模数增值的迭代消除(12),使用该增值预测处理以及该缩减预测处理并使用该转换模数(NT),以便在该迭代的终了获得该模数增值的一转换乘积;
一装置,经由使用该模数(N)的该转换乘积的模数缩减,以重新转换(14)该转换乘积。
11.如权利要求10所述的处理器,
包括一主控CPU以及一协处理器,转换(10)该模数(N)为大于该模数(N)的一转换模数(NT)用的装置被设置于该主控CPU,而该用于模数增值的迭代消除的装置是设置于该协处理器中。
12.如权利要求11所述的处理器,
其中该主控CPU是一位数数目小于或等于64的短数算术逻辑单元,而其中该协处理器是一位数数目大于或等于512的长数算术逻辑单元。
13.如权利要求10至12中任一项所述的处理器,
其中该用于模数增值的迭代消除的装置包括用以转换该模数的一缓存器以及该模数增值的中间乘积用的一缓存器。
CNB028063961A 2001-03-13 2002-01-24 模数增值方法及装置 Expired - Fee Related CN100437470C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10111987.9 2001-03-13
DE10111987A DE10111987A1 (de) 2001-03-13 2001-03-13 Verfahren und Vorrichtung zum modularen Multiplizieren

Publications (2)

Publication Number Publication Date
CN1539103A CN1539103A (zh) 2004-10-20
CN100437470C true CN100437470C (zh) 2008-11-26

Family

ID=7677246

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028063961A Expired - Fee Related CN100437470C (zh) 2001-03-13 2002-01-24 模数增值方法及装置

Country Status (8)

Country Link
US (2) US7120660B2 (zh)
EP (1) EP1370933B1 (zh)
JP (1) JP4660066B2 (zh)
CN (1) CN100437470C (zh)
AT (1) ATE299605T1 (zh)
CA (1) CA2418269A1 (zh)
DE (2) DE10111987A1 (zh)
WO (1) WO2002073394A2 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
US7171544B2 (en) * 2003-12-15 2007-01-30 International Business Machines Corporation Run-time parallelization of loops in computer programs by access patterns
US7353364B1 (en) * 2004-06-30 2008-04-01 Sun Microsystems, Inc. Apparatus and method for sharing a functional unit execution resource among a plurality of functional units
US7801937B1 (en) * 2004-09-01 2010-09-21 Altera Corporation Method and apparatus for implementing a look-ahead for low radix Montgomery multiplication
US20080114820A1 (en) * 2006-11-15 2008-05-15 Alaaeldin Amin Apparatus and method for high-speed modulo multiplication and division
KR100901280B1 (ko) * 2006-12-07 2009-06-09 한국전자통신연구원 모듈러 3 연산 장치 및 방법
WO2009084026A2 (en) * 2007-11-30 2009-07-09 Chandra Mohan Umapathy System and method for high speed modulo operations
US8626811B2 (en) * 2010-04-30 2014-01-07 Certicom Corp. Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine
US10318308B2 (en) * 2012-10-31 2019-06-11 Mobileye Vision Technologies Ltd. Arithmetic logic unit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3631992A1 (de) * 1986-03-05 1987-11-05 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens
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 冲电气工业株式会社 模幂运算电路和系统及模幂运算方法
WO1999014880A2 (en) * 1997-09-16 1999-03-25 Koninklijke Philips Electronics N.V. A method and device for executing a decrypting mechanism through calculating a standardized modular exponentiation for thwarting timing attacks

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6917956B2 (en) * 2001-08-14 2005-07-12 Sun Microsystems, Inc. Apparatus and method for efficient modular exponentiation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3631992A1 (de) * 1986-03-05 1987-11-05 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens
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 冲电气工业株式会社 模幂运算电路和系统及模幂运算方法
WO1999014880A2 (en) * 1997-09-16 1999-03-25 Koninklijke Philips Electronics N.V. A method and device for executing a decrypting mechanism through calculating a standardized modular exponentiation for thwarting timing attacks

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IEEE TRANSACTIONS ON COMPUTERS. Colin D. Walter,,139-141,Space/Time Trade-Offs for Higher RadixModular Multiplication Using Repeated Addition. 1997 PROCEEDINGS OF THE CONFERENCE ON THEORY AND APPLICATIONS OF CRYPTOGRAPHIC TECHNIQUES (CRYPTO). Colin D. Walter,,313-323,Faster Modular Multiplication by Operand Scaling. 1991 *
IEEE TRANSACTIONS ON COMPUTERS. Colin D. Walter,139-141,Space/Time Trade-Offs for Higher RadixModular Multiplication Using Repeated Addition. 1997 *
PROCEEDINGS OF THE CONFERENCE ON THEORY AND APPLICATIONS OF CRYPTOGRAPHIC TECHNIQUES (CRYPTO). Colin D. Walter,313-323,Faster Modular Multiplication by Operand Scaling. 1991 *

Also Published As

Publication number Publication date
CN1539103A (zh) 2004-10-20
ATE299605T1 (de) 2005-07-15
JP2004519017A (ja) 2004-06-24
US20040220989A1 (en) 2004-11-04
DE10111987A1 (de) 2002-09-26
JP4660066B2 (ja) 2011-03-30
WO2002073394A2 (de) 2002-09-19
WO2002073394A3 (de) 2002-11-07
US7120660B2 (en) 2006-10-10
US20070185948A1 (en) 2007-08-09
EP1370933A2 (de) 2003-12-17
CA2418269A1 (en) 2003-02-06
DE50203622D1 (de) 2005-08-18
US7831650B2 (en) 2010-11-09
EP1370933B1 (de) 2005-07-13

Similar Documents

Publication Publication Date Title
US7831650B2 (en) Method for modular multiplication
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
JP3014391B2 (ja) 暗号法及びこの方法の実施のための暗号プロセツサ
US6920473B2 (en) Method and apparatus for modular multiplying and calculating unit for modular multiplying
JP4554239B2 (ja) モンゴメリー類型のモジュラー乗算装置及び方法
EP0381161A2 (en) Modular multipication method and the system
WO2000005645A1 (en) Circuit and method of modulo multiplication
JP2000259394A (ja) 浮動小数点乗算器
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
WO2007080652A1 (ja) モンゴメリ法用乗算剰余計算装置
JPH04283831A (ja) 除算器
JP3551113B2 (ja) 除算器
Hung et al. Fast RNS division algorithms for fixed divisors with application to RSA encryption
JP4182226B2 (ja) 剰余系の計算方法及び装置並びにプログラム
EP0512686B1 (en) Circuitry for rounding in a floating point multiplier
US7016927B2 (en) Method and apparatus for modular multiplication
US20020161810A1 (en) Method and apparatus for multiplication and/or modular reduction processing
JP3660075B2 (ja) 除算装置
WO2000038047A1 (en) Circuit and method of cryptographic multiplication
Yang et al. The IC design of a high speed RSA processor
KR20040055523A (ko) GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치
KR100805272B1 (ko) 부호화를 이용하는 곱셈 장치 및 그 방법
Nibouche et al. New iterative algorithms and architectures of modular multiplication for cryptography
JP2777265B2 (ja) 高基数開平演算装置

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

Termination date: 20210124