用于计算椭圆曲线上的点的倍数的设备和方法技术

技术编号:4912475 阅读:302 留言:0更新日期:2012-04-11 18:40
一种用于从右至左通过反复的点加和点倍增来计算椭圆曲线上的点的倍数的设备(100)和方法。利用扩展的坐标集合来估算每次点倍增,通过采用扩展的坐标集合的受限集合作为输入来估算每次点加,在点倍增的每次迭代之间将扩展集合中不是受限集合的一部分的至少一个坐标存储在存储器(120)中。与现有技术解决方案相比,这使得能够加速计算。同样提供了一种计算机程序和一种计算机程序产品(140)。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术总体上涉及密码技术,更具体地,涉及针对椭圆曲线密码系统的从右至左 标量乘法。
技术介绍
本节旨在向读者介绍与以下描述和/或要求保护的本专利技术的各方面有关的现有 技术的各方面。相信此处的讨论有助于向读者提供背景知识,以便更好地理解本专利技术的各 个方面。因此,应当理解的是,应据此阅读这些说明,而不应将这些说明视为对现有技术的 认可。椭圆曲线密码(ECC)技术变得越来越普遍,这是由于其密钥长度明显短于用于相 应安全级别的Rivest-Shamir-Adleman(RSA)密钥。然而,在选择密码系统时,较短的密钥 长度不是唯一要考虑的因素;例如,还必须考虑计算时间,这是由于证明了相对长的等待会 使使用密码系统的用户感到烦躁。尽管实际中可以在任何情况下使用椭圆曲线密码技术,但是,该密码技术特别适 合于在嵌入式设备中使用,这是由于ECC需要比基于RAS的密码技术少的存储和计算能力。椭圆曲线密码技术的基本操作是标量乘法给定椭圆曲线上的点P以及标量d,必 须计算点Q = dP (即,Ρ+Ρ+0... +P,d次)。主要存在两种标量乘法方法族,这两种方法族依 赖于扫描标量d的方向-从左至右方法,以及-从右至左方法。通常使用从左至右方法,因为它们给出更好的性能,但是还已知这种方法提供较 低的安全级别。至今,技术人员在某种程度上不得不在性能与安全性之间做出选择。因此应当认 识到,需要一种克服现有技术中的至少一些问题的解决方案。本专利技术提供了一种解决方案, 使现有技术的从右至左标量乘法的速度提高,从而减小两种方法族之间的性能差异。现在描述经典的现有技术的基于从右至左的标量乘法方法。设E表示特征兴2、3的域K上的椭圆曲线。这样的椭圆曲线可以由韦氏方程给 出Eik :Y2 = X3+aXZ4+bZ6。椭圆曲线上点集合(X,Y,Z)形成阿贝耳群,其中,中立元素(被称作无穷处的点) 是0= (1,1,0)ο投影点(X,Y,Ζ)在Z = O的情况下与0相对应,否则与仿射点(Χ/Ζ2, Y/ Z3)相对应。注意,投影点的投影坐标不是唯一的,这是由于针对K中的每个非零t,(X,Y, Ζ) = (t2X, t3Y, tz)。经典现有技术的从右至左二进制标量乘法方法采用标量d > 0以及具有参数a和 b的椭圆曲线E上的点P= (X,Y,Z)作为输入,并且输出点Q = dP。输入d,P= (X,Y,Ζ)输出dP= (X*,Y*,Z*)方法1.如果d = 0或Z = 0,则返回(1,1,0)并停止。2.设定(X*,Y*, Z*) 一(1,1,0)以及(T1, T2, T3) 一(X,Y, Z)3.当(d彡0)时,执行a.如果(d是奇数),i. d — d-1ii. (X*,Y*, Z*) 一相加b. d — d/2c. (T1, T2, T3) 一倍增4.返回(X*,Y*, Z*)经典现有技术的基于NAF的标量乘法方法采用标量d ^ 0以及具有参数a和b的 椭圆曲线E上的点P= (X,Y,Z)作为输入,并且输出点Q = dP。输入:d,P = (X,Y,Ζ)输出dP= (X*,Y*,Z*)^^ 1.如果d = 0或者Z = 0,返回(1,1,0)并停止。2.设定(X*,Y*, Z*) 一(1,1,0)以及(T1, T2, T3) 一(X,Y,Z)3.当(d≥0)时,执行a.如果(d是奇数),i. u — 2_d(d mod 4)ii.d — d-uiii.如果(u = 1),(X*,Y*,Z*) 一相加iv.如果(U = -1),(X*,Y*,Z*) 一相加b. d — d/2c. (T1, T2, T3) 一倍增4.返回(X*,Y*,Z*)
技术实现思路
在第一方面中,本专利技术涉及一种用于从右至左通过反复的点加(point addition) 和点倍增(point doubling)来计算椭圆曲线上的点的倍数(multiple)的方法。利用扩展 的坐标集合来估算每次点倍增,通过采用扩展的坐标集合的受限集合作为输入来估算每次 点加。在第一优选实施例中,点倍增的输出坐标用作下次点倍增的输入坐标。在第二优选实施例中,通过韦氏方程Eik =Y2 = X3+aXZ4+bZ6给出特征不同于2和3 的椭圆曲线,其中,a和b是椭圆曲线的第一和第二参数。有利地,通过获得坐标T1, T2,T3的值以及附加坐标T4 (初始化为T4 = aT34)的值来 计算点倍增,其中,a是椭圆曲线的第一参数;计算中间变量U = T12, V = T22, M = 3U+T4,W =V2,以及 S = 2((T1+V)2-U-ff);计算 T3 和 T4 的新值=T3 = 2T2T3,T4 = 16WT4 ;计算 T1 的新值=T1 = M2-2S ;计算T2的新值=T2 = M(S-T1)-SW ;以及至少输出坐标T1, T2, T3和T4的值。在第三优选实施例中,使用标量的非邻近形式来执行标量乘法。在第四优选实施例中,使用标量的二进制表示来执行标量乘法。在第五优选实施例中,使用修正的雅可比坐标来执行点倍增,并且使用雅可比坐 标来执行点加。在第二方面中,本专利技术涉及一种用于从右至左计算椭圆曲线上的点的倍数的设 备。该设备包括适用于点倍增和点加的处理器。处理器适用于使用扩展的坐标集合来估 算每次点倍增,以及通过采用扩展的坐标集合的受限集合作为输入来估算每次点加。在第三方面中,本专利技术涉及一种计算机程序,当在处理器上执行计算机程序时,该 计算机程序执行用于从右至左通过反复的点倍增和点加来计算椭圆曲线上的点的倍数的 方法,其特征在于,利用扩展的坐标集合来估算每次点倍增,通过采用扩展的坐标集合的受 限集合作为输入来估算每次点加。在第四方面中,本专利技术涉及一种存储了计算机程序的计算机程序产品,当在处理 器上执行计算机程序时,该计算机程序执行用于从右至左通过反复的点倍增和点加来计算 椭圆曲线上的点的倍数的方法,其特征在于,利用扩展的坐标集合来估算每次点倍增,通过 采用扩展的坐标集合的受限集合作为输入来估算每次点加。附图说明参照附图,作为非限制示例,描述本专利技术的优选特征,在附图中图1示出了根据本专利技术优选实施例的进行椭圆曲线上的计算的设备;以及图2示出了根据本专利技术优选实施例的点倍增方法。具体实施例方式图1示出了根据本专利技术优选实施例的用于进行椭圆曲线上的计算的设备100,具 体用于执行点倍增和标量乘法。设备100包括至少一个适用于执行计算机程序的处理器 110(下文中为“处理器”),该计算机程序执行下文描述的方法的计算。应当注意,处理器 110还可以以硬件来实现,或者以软件和硬件的组合方式来实现。设备100还包括适用于存 储数据(例如,来自处理器Iio的中间计算结果)的存储器120。设备100还包括用于与其 他设备(未示出)交互的至少一个接口 130(下文中为“接口”)。图1还示出了用于存储 计算机程序的计算机程序产品140,例如,CD-ROM,当在处理器110上执行该计算机程序时, 该计算机程序执行根据本专利技术的方法的优选实施例的标量乘法。本专利技术的主要构思是使用附加坐标T4,使用该附加坐标T4来高速缓存在从右至 左标量乘法方法中常规点倍增运算中涉及的值。在迭代之间,将附加坐标T4存储在存本文档来自技高网
...

【技术保护点】
一种用于从右至左通过反复的点加和点倍增来计算椭圆曲线上的点的倍数的方法,其特征在于,利用扩展的坐标集合来估算每次点倍增,通过采用所述扩展的坐标集合的受限集合作为输入来估算每次点加,所述方法还包括步骤:在进行下次点倍增之前,将扩展集合中不是受限集合的一部分的至少一个坐标存储在存储器(120)中。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:马克乔伊
申请(专利权)人:汤姆森许可贸易公司
类型:发明
国别省市:FR[法国]

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

1