改进的归约计算制造技术

技术编号:2851130 阅读:236 留言:0更新日期:2012-04-11 18:40
椭圆曲线密码学归约技术利用质数,所述质数具有第一段为最高有效字“1”状态,N=n↓[m-1]+N↓[1]B+n↓[0]。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种用于执行归约运算的方法和用于执行归约运算的设备。椭圆曲线密码学涉及使用对GF(p)上的椭圆曲线关系的计算,并且要求例如在密码处理器中实现公开密钥算法期间重复地执行长整数乘法。典型情况下,必须执行乘法运算数百次以便完成加密或解密运算,因此重要的是,用于执行这些运算的密码装置使用高速乘法器来迅速地执行长整型乘法。这种密码算法日益用于例如智能卡之类的电子装置中,并且在这些应用中严重地限制了处理能力和功率消耗。一个常规的计算方法是Quisquater系统,其使用下列运算来对最高有效字进行运算R’=R+(-N’*MSW),其中N’是N的特定倍数。实际上,-N’用于其2的补码表示。归约运算是低效的,并且结果可能太大,需要把(-N)与R’相加。另一常规的计算方法是Mongomery系统,其使用下列运算来对最低有效字进行运算R’=R+N*Q其中Q=LSW*M mod 2n。归约运算同样是低效的并且可能太大而多出一位,这要求通过减去N来还原。因此本专利技术的目的是提供更高效的归约运算。本专利技术的另一目的是向归约运算提供较低数量的乘法运算。本专利技术的另一目的是提供一种在计算操作中只提供很少的溢出的归约运算。本专利技术的另一目的是提供一种归约运算,在所述归约运算中可以更快地完成所述归约运算。依照一个方面,本专利技术提供了一种依照密码计算来执行归约运算的方法,所述方法包括选择模数,其中所述模数的第一段具有多个“1”最高有效字状态,而第二段包括多个“1”或“0”状态,借此由这两个段形成的数是模数或模数的倍数,并且对所述模数/倍数进行归约运算。通过选择特定形式的模数/倍数用于计算,归约运算只涉及很少的乘法运算。从而,由本专利技术所提供的显著益处在于降低了用于完成整个计算操作所花费的时间。此外,与常规的加密方法相比,保持了由本专利技术方法所提供的安全度。优选地是,所述方法包括监视前导“1”的数目以便确定该数目是否小于(k-2)。有益地是,当前导“1”的数目小于(k-2)时,开始下一计算。从而,本专利技术的进一步优点在于可以同时处理多个乘法运算,借此降低了为完成计算操作所花费的时间。在本专利技术192位ECC和64位字长的一个实施例中,模数包括138位的第一段和54位的第二段。在本专利技术的128位ECC和64位字长的另一实施例中,模数包括74位的第一段和54位的第二段。在本专利技术的256位ECC和64位字长的另一实施例中,模数包括202位的第一段和54位的第二段。本专利技术还可以对多个模数起作用,所述模数具有比字长的倍数更少的有效位。在该情况下,系统对模数的倍数起作用,所述模数具有所要求的前导1的数目。仅在最后,必须把结果还原为原始的(较小的)模数。在一个优选方案中,本专利技术的方法利用由m个字组成的模数,除最低有效字(LSW)之外的所有字由“1”组成,并且所述LSW例如具有十个前导“1”。其可以是任何数目,记住如果它越大,那么常常要求附加的归约越少。依照另一方面,本专利技术提供了可直接装入数字计算机内部存储器的计算机程序产品,包括用于当所述产品在计算机上运行时执行本专利技术方法的软件代码部分。依照另一方面,本专利技术提供了可直接装入数字计算机内部存储器的计算机程序,包括用于当所述程序在计算机上运行时执行本专利技术方法的软件代码部分。依照另一方面,本专利技术为使本专利技术具体化的计算机程序提供了一种载体,所述载体可以包括电子信号。依照另一方面,本专利技术提供了计算机程序产品或计算机程序或本专利技术的载体的电子分布。依照另一方面,本专利技术提供了一种依照密码计算来执行归约运算的设备,所述设备包括用于选择模数或模数的倍数的装置,其中所述模数的第一段具有多个“1”状态,而第二段具有多个“1”或“0”状态,借此由这两个段形成的数是模数或模数的倍数。为了可以更容易地理解本专利技术,现在仅以举例形式参考附图给出了描述,其中附图说明图1是本专利技术应用在智能卡中的框图;图2是为192位ECC和64位字来具体化本专利技术的归约运算的示意图;图3是用于128位ECC和64位字的本专利技术的另一归约运算的示意图;图4是用于256位ECC和64位字的本专利技术的另一归约运算的示意图;图5是本专利技术的硬件实现方式。图1示出了本专利技术硬件实现方式的框图,包括具有以下组件的智能卡50·微控制器51,用于总控制经由接口与外界的通信。它设置RAM/ROM中数据的指针并且起动协处理器。·到外界的接口,用于例如依照ISO-7816-3与智能卡联系。·只读存储器(ROM)52,用于存储微控制器的程序。·可编程只读存储器(闪存或EEPROM)53,用于非易失性存储数据或程序。·RAM 54,用于存储易变数据,例如用于存储在计算期间的中间结果。·协处理器55,专用于执行ECC或RSA计算的特定高速任务。当任务就绪时,把控制返回到微控制器。在一个变式中,利用微处理器、ALU来提供加、减、移位运算,利用对控制器进行编程来提供控制逻辑,以及由移位寄存器来进行程度检测,从而以软件实现本专利技术。在图2中示出了本专利技术的归约运算,利用总共包括192个位字的模数来执行所述归约运算,并且所述模数具有两个64位的字和10位都为“1”状态的第一段。如果总数是质数的话,模数的第二段是54位并且可以是任意数。数越大,通常所要求的附加归约越少。通常,N可以被写为N=nm-1Bm+1+...n1B+n0(B=264)选择N的特殊要求是·n1...nm-1是固定的并且只包含1(n1=...nm-1=B-1)。·n0除也是1的k个MSB外,通常剩下64-k位可自由选择。然后N被写为N=Bm-B+n0=Bm-n0’,其中n0’=B-n0设R为结果,其必须被减少1个字。R=rmBm+rm-1Bn-1+...r1B+r0如下通过从R中减去积rmN来归约结果R’=R-rm.N=rmBm+rm-1Bm-1+...r1B+r0-rm(Bm-B+n0)=rm-1Bm-1+...+r2B2+r1B+r0+rm.(B-n0)=(R-rmBm)+rm.n0’这意味着为了归约,省略字rm并且将积rm.n0’加到最低有效字r0。归约意味着只用一个乘法来代替通常的m个乘法。由于n0<B,所以n0’总是正的。结果也总是正的。代替n0,存储并使用n0’。在一些情况下,结果大出1位。于是有必要再减去N。R’=(Bm+rm-1Bm-1+...+r1B+r0)-(Bm-n0’)=rm-1Bm-1+...+r1B+(r0+n0’)=(R-Bm)+n0’。这样,我们只要加上n0’并且丢弃溢出位Bm。对于每乘以一个字,就进行这种归约。作为选择,首先完成所有乘法继而归约。这里描述了最后的方法。下面描述针对192位ECC和64位字长(m=3)。N=B3-B+n0=B3-n0’;29≤n0<B (B=264)。R是三个64位字乘以也是三个64位字的结果,这产生6个字(r0...r5)。然后按如下进行归约·把n0’乘以r4并且加上r1(步骤S1);·把n0’乘以r5并且加上r2以及先前乘法的进位c。此外,把r3加到乘法的上半部。结果由被称作r2的下半部和上半部q组成(步骤S2);·把q乘以n0’并且加上r0,并且把新的r1加到上半部(步骤S3);·当上一次乘法溢出时,把所述溢出加到r2,例如把n0’乘以0(以便得到0),本文档来自技高网...

【技术保护点】
一种依照密码计算来执行归约运算的方法,所述方法包括选择模数,其中所述模数的第一段具有多个“1”最高有效字状态,而第二段包括多个“1”或“0”状态,借此由这两个段形成的数是模数或模数的倍数,并且对所述模数/倍数进行归约运算(S1-S5;S10-S12;S20-S26)。

【技术特征摘要】
【国外来华专利技术】GB 2003-6-21 0314557.01.一种依照密码计算来执行归约运算的方法,所述方法包括选择模数,其中所述模数的第一段具有多个“1”最高有效字状态,而第二段包括多个“1”或“0”状态,借此由这两个段形成的数是模数或模数的倍数,并且对所述模数/倍数进行归约运算(S1-S5;S10-S12;S20-S26)。2.如权利要求1所述的方法,包括实现多个乘法运算(S1)。3.如权利要求2所述的方法,包括实现多个乘法运算,随后实现归约运算(S1,S2)。4.如权利要求3所述的方法,包括重复组合的乘法运算和归约运算(S1,S2)。5.如前面权利要求中任何一个所述的方法,包括使用模数/倍数的倍数。6.如前面权利要求中任何一个所述的方法,其中当上一次乘法给出溢出时(S4),把所述溢出加到所选择的数的一部分。7.如权利要求6所述的方法,其中当溢出加法步骤(S4)产生溢出时,那么把n0’(S5)加到所述溢出。8.如前面权利要求中任何一个所述的方法,其中在两个相邻乘法之间的进位c被实现为下一乘法(S2)中的加数。9.如前面权利要求中任何一个所述的方法,包括监视前导“1”的数目以便确定该数目是否小于(k-2)。10.如权利要求6所述的方法,包括当前导“1”的数目小于(k-2)时开始下一计算。11.如前面权利要求中任何一个所述的方法,包括运算192位ECC和64位字长,所述模数包括138位的第一段和54位的第二段。12.如权利要求1到10中任何一个所述的方法,包括运算128位ECC和64位字长,所述模数包括74位的第一段和54位的第二段。13.如权利要求1到10中任何一个所述的方法,包括运算256位ECC和64位字长,所述模数包括202位的第一段和54位的第二段。14.一种可直接装入数字计算机内部存储器的计算机程序产品,包括用于当所述产品在计算机上运行时执行如权利要求1到13中任何一个或多个所述的方法的软件代码部分。15.一种可直接装入数字计算机内部存储器的计算机程序,包括用于当所述程序在计算机上运行时执行如权利要求1到13中任何一个或多个所述的方法的软件代码部分。16.一种载体,其可以包括用于权利要求15的计算机程序的电子信号。17.权利要求14的计算机程序产品或权利要求15的计算机程序或权利要求16的载体的电子分布。18.一种依...

【专利技术属性】
技术研发人员:GTM胡伯特
申请(专利权)人:皇家飞利浦电子股份有限公司
类型:发明
国别省市:NL[荷兰]

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

1