武汉大学学报(理学版) 2019, Vol. 65 Issue (2): 207-212
0

文章信息

刘双根, 丁媛媛, 施瑞, 卢士美
LIU Shuanggen, DING Yuanyuan, SHI Rui, LU Shimei
GF(2m)椭圆曲线上的Co_Z 点加算法
Co_Z Addition on Elliptic Curves over Finite Fields GF(2m)
武汉大学学报(理学版), 2019, 65(2): 207-212
Journal of Wuhan University(Natural Science Edition), 2019, 65(2): 207-212
http://dx.doi.org/10.14188/j.1671-8836.2019.02.010

文章历史

收稿日期:2018-07-02
GF(2m)椭圆曲线上的Co_Z 点加算法
刘双根, 丁媛媛, 施瑞, 卢士美    
西安邮电大学 通信与信息工程学院,西安 陕西 710121
摘要:基于统一Z 坐标,提出了有限域GF(2m)上两种射影坐标下的Co_Z点加运算公式。通过对椭圆曲线上有理点的Z 坐标统一化处理,使得其运算量分别为10M+3S和8M+3S(M, S分别表示有限域上的乘法和平方),相比已有的计算公式,运算量分别减少了2S和2M。另外,提出了一种Jacobian坐标下的3P 运算公式,运算量减少了1M+4S。将新提出的点加、3P 运算公式与对称三进制标量乘相结合,改进了标量乘算法的运算效率,使得标量乘算法的效率提高了13%。
关键词统一Z 运算     射影坐标     对称三进制    
Co_Z Addition on Elliptic Curves over Finite Fields GF(2m)
LIU Shuanggen, DING Yuanyuan, SHI Rui, LU Shimei    
School of Communication and Information Engineering, Xi' an University of Posts and Telecommunications, Xi' an 710121, Shaanxi, China
Abstract: Based on same Z-coordinate, Co_Z point addition formulae for two kinds of projective coordinates over finite field GF(2m) are proposed. Using the unified processing of the Z coordinate of the rational points on the elliptic curve, one point addition operation cost is 10M+3S and the other is 8M+3S (M stands for multiplication, and S stands for square on the finite field). Compared with the existing algorithms, the costing of operation is reduced by 2S and 2M, respectively. In addition, a formula for 3P operation in Jacobian coordinate is proposed, which reduces the computational complexity by 1M+4S. Combining the new formulae with symmetric ternary scalar multiplication, the operational efficiency of the scalar multiplication is improved 13%.
Key words: Co_Z operation     projective coordinate     symmetric ternary    
0 引言

自20世纪80年代中期椭圆曲线密码体制(elliptic curve cryptography, ECC)[1, 2]被提出之后,由于其密钥短,运算量相对较少,安全性能高等优势,已被广泛应用在资源受限的硬件设备中[3]。ECC的安全性依赖于离散对数问题的难解性,如果攻击者能很容易从用户的公钥中计算出私钥,那么这个密码体制就是不安全的。在ECC中,标量乘算法kPk为用户的私钥,P 为用户选取的椭圆曲线上的一有理点)是最耗时,也是最关键的算法。当攻击者截获或根据消耗轨迹推算出标量k,就能破解椭圆曲线加密,因此,标量乘的安全决定着整个椭圆曲线密码体制的安全性。而标量乘的运算易受到侧信道攻击(side channel attack, SCA)[4]

标量乘算法的运行速度决定着整个ECC的实现效率,因此通过提高标量乘的运行速度,可以提高ECC的效率。标量乘算法主要包括两个层次:上层标量k 的展开;底层有限域内点加、倍点的域乘、域平方、求逆等基础运算[5],本文重点研究底层。Co_Z 点加运算在2007年由Meloni[6]首次提出,该运算通过统一椭圆曲线上两射影点的Z 坐标,使点加运算量降低,得出了新的点加算法,并将其应用在Euclidean加法链和Zeckendorf展开式中,通过减少点加运算中的域乘和域平方计算次数提高标量乘效率。近几年,Goundar、Wei等[7, 8]将Co_Z 算法应用到Montgomery阶梯算法、Joy倍点点加算法和NAF(non-adjacent form)算法,优化了Weierstrass椭圆曲线上的标量乘运算公式。2017年,于伟等[9]在Montgomery算法的基础上,首次利用统一Z 坐标技巧,改进了有限域GF(3m)上椭圆曲线的点加和倍点公式。本文,我们提出特征2有限域椭圆曲线上的Co_Z 点加运算,推导出不同射影坐标系下的点加及三倍点(3P)运算公式。

1 背景知识 1.1 有限域GF(2m)上的椭圆曲线

定义在域K 上的一个Weierstrass方程

通过变量的相容性,可以简化方程。根据域K的特征不同,将椭圆曲线分为3种情况:特征不等于2或3、特征等于2和特征等于3。

当域K 的特征不等于2或不等于3时,通过相容性变换,曲线E 可简化为:y2 = x3 + ax + b, 其中a, bK。曲线的判别式是Δ = -16(4a3 + 27b2)。

若域K 的特征是3,则其非超奇异椭圆曲线[10]简化为:y2 = x3 +ax2 + b,其中a, bK,Δ =- a3b

本文研究的重点是特征为2的非超奇异椭圆曲线,其Weierstrass方程可简化为:y2 + xy = x3 + ax2 + b,Δ = b

根据“弦和切线”法则[11],有限域GF(2m)上的两点相加得到椭圆曲线上的第三点。椭圆曲线上的点集合及这种加法运算构成了一个加法交换群,∞为加法交换群的无穷远点。因此,有限域GF(2m)上的非超奇异椭圆曲线的群运算法则为:

1)单位元

对于所有的PE (GF (2m)),P + ∞ = ∞ + P

2)负元素

如果P = (x, y ) ∈ E (GF (2m)),则(x, y )+(x, x + y )= ∞。记点(x, x + y )为-P,并称其为P 的负。注意,-P 也是E (GF (2m))上的一点。

3)点加

P = (x1, y1) ∈ E (GF (2m)), Q= (x2, y2) ∈E (GF(2m)),PQ, 则P + Q = (x3, y3)。其中

(1)

4)倍点

P = (x1, y1) ∈ E (GF (2m)),P ≠ - P, 则2P =(x3, y3)。其中

(2)

由此可得出,仿射坐标系下,点加运算量为1次求逆(I),1次平方(S)和2次乘(M);倍点运算量为1I+1S+2M。由于求逆的计算代价较高,因此通过转换坐标系,避免运算公式中出现求逆,可降低点加和倍点的运算代价[12]

1.2 射影坐标下的点加和倍点运算公式

本文中,我们考虑两种射影坐标下的点加和倍点运算。

1.2.1 López & Dahab射影坐标

射影点(X:Y:Z ), Z ≠ 0与仿射点()对应,GF(2m)上的Weierstrass方程的投影形式定义为

P = (X1:Y1:Z1), Q = (X2:Y2:Z2), P + Q = (X3:Y3:Z3)。若PQ, 则点加运算公式为

(3)

其中:A = X1Z2B = X2Z1C = Z12D = Z22E = Y1DF = Y2CG = Z1Z2H = E + FI = A + B。其倍点运算公式为

(4)

其中:A = X12, B = Z12, C = X1Z1

根据运算公式,可以看出一次点加运算量为13M + 5S,一次倍点运算量为4M + 5S。当假设Z2 = 1时,点加运算量降至10M + 5S。López等[13]改进了倍点运算,将运算量降低到3M+5S。

1.2.2 Jacobian射影坐标

射影点(X:Y:Z ), Z ≠ 0与仿射点P =()对应,GF(2m)上的Weierstrass方程的投影形式定义为

P = (X1:Y1:Z1),Q = (X2:Y2:Z2),P + Q = (X3:Y3:Z3)。若PQ,则点加运算公式为

(5)

其中:A = Z12B = Z22C = X1BD = X2AE = Z1Z2F = Y1Z2G = Y2Z1H = FB + GAI = E (C + D ),J = C + D。其倍点运算公式为

(6)

其中:A = X12B = Z12C = X1BD = Y1Z1

根据运算公式,可以看出一次点加运算量为14M+5S,一次倍点运算量为4M+5S。假设Z2= 1时,点加运算量将降到10M+3S。

2 Co_Z点加运算和3P 运算 2.1 射影坐标下的Co_Z 点加运算

令集合K3\ {(0:0:0)}是有限域GF(2m)上的非零三维向量的集合,其上的投影点存在如下等价关系

通过这一关系,我们可以将椭圆曲线上的两点P = (X1:Y1:Z1), Q = (X2:Y2:Z2)通过坐标处理,共享Z 轴,这就是Co_Z 的主要思路。上节给出了射影坐标下的点加运算公式,当引入Co_Z 后,可以推导出射影坐标系下改进后的Co_Z 点加运算公式。

2.1.1 López & Dahab射影坐标下的Co_Z 点加

López & Dahab射影坐标下的两点P, Q 在仿射坐标下表示为, 分母通分后,两坐标可表示为

再转换为射影坐标,则得到

因此可将P, Q 两点转换为Z 坐标相同的点。

令初始点P = (X1:Y1:Z ),Q = (X2:Y2:Z )统一Z 坐标,则P + Q = (X3:Y3:Z3)的计算公式如下

(7)

可将其简化为

(8)

P+Q 点中XY 轴坐标满足(X1ZA2:Y1Z2 A4: Z2 A2)~(X1:Y1:Z ),因此Co_Z 点加运算的输出点P+Q 和输入点P 具有相同的Z 坐标,而统一Z 轴变换已经在Co_Z 点加运算中计算出来,所以不需要额外的运算量。点加算法如算法1。

算法1 López & Dahab射影坐标下Co_Z 点加算法(LDCo_Z-ADD)
输入:Co_Z(P, Q ), P = (X1:Y1:Z ),Q = (X2:Y2:Z )
输出:P + Q = (X3:Y3:Z3),P = (X1′:Y1′:Z3)
  A ← (X1 + X2)2BZA
  CZ (X1 + X2);DB (X2 + aZ );
  X3 ← (Y1 + Y2)2 + C (Y1 + Y2)+ X1B + D
  Y3C (Y1 + Y2)(X3 + X1B )+ X3C2 + Y1AZ3
  Z3ZB
  X1′ ← X1BY1′ ← Y1AZ3
返回((X3:Y3:Z3),(X1′:Y1′:Z3))

算法1所需运算量为10M+3S,比Z2 = 1时的点加运算量减少了2S。由于在算法1计算过程中,输入点P 与输出点P+QZ 轴的统一运算量较大,因此在López & Dahab射影坐标下Co_Z 点加的效率提升不是很明显。

2.1.2 Jacobian射影坐标下的Co_Z 点加运算

令初始点P = (X1:Y1:Z ), Q = (X2:Y2:Z ),统一Z 坐标,则P + Q = (X3:Y3:Z3)的计算公式可简化为

P+ Q 点中XY 轴坐标满足(X1A2:Y1A3:ZA ) ~(X1:Y1:Z ),因此Co_Z 点加运算的输出点P+ Q和输入点P 具有相同的Z 坐标,而统一Z 轴变换已经在Co_Z 点加运算中计算出来,所以不需要额外的运算量。点加算法如算法2。

算法2 Jacobian射影坐标下Co_Z 点加算法(JCo_Z-ADD)
输入:Co_Z(P, Q ), P = (X1:Y1:Z ),Q = (X2Y2:Z )
输出:P + Q = (X3:Y3:Z3),P = (X1′:Y1′:Z3)
   A ← (X1 + X2)2B ← (Y1 + Y2)2
   CX1 + X2DX1A
   EY1C
   X3B + Z3 (Y1 + Y2)+ D + A(X2 + aZ2);
   Y3D (Y1 + Y2)+ AE + X3 (Z3 + Y1 + Y2);
   Z3ZC
   X1′ ← X1AY1′ ← Y1AC
返回((X3:Y3:Z3),(X1′:Y1′:Z3))

Jacobian射影坐标下Co_Z 点加操作所需运算量为8M + 3S,比Z2 = 1时的点加运算量减少了2M。

2.2 有限域GF (2m)上的3P 运算

本小节将计算有限域GF (2m)下的3P 运算,首先回顾一下倍点的运算公式。

P = (x1, y1),2P = (x2, y2),其中

计算3P = 2P + P = (x3, y3),Dimitrov等[14]给出了仿射坐标系下的3P 运算公式

因此,仿射坐标系下计算一次3P 运算量为1I+ 3S+ 6M,这种算法比文献[15]减少了1M + 1S.在Dimitrov提出的3P 运算公式的基础上,可以推导出射影坐标下的3P 运算公式。本文对输入点的Z 坐标进行特殊化处理,能够改进3P 运算公式,减少运算量。

2.2.1 López & Dahab射影坐标下的3P 运算

2008年,顾海华[16]提出一种López & Dahab射影坐标下的3P 运算公式(TPL):3P = (X3:Y3:Z3),则

其中: A = X12B = X1Z1C = ABD = A - Y1E = aB2 - D (D + B ),F = C + EG = BC + FDH = B2E

这种López & Dahab射影坐标下的3P 运算量为12M+4S。

2.2.2 Jacobian射影坐标下的3P 运算

Jacobian射影坐标下的3P = (X3:Y3:Z3),运算经过简化可以写成

其中:E = X1Z12 + X2F = EZ2G = Y1X13Z13 + Y2H = aF2 + G (G + F )+ E3X2 = X14 + bZ18Y2 = X14Z2 +(X12 + Y1Z1 + Z2) X2Z2 = X1Z12

因此,此3P 运算量为13M+7S。

Z 坐标进行特殊化处理,当Z1 = 1时,可以得出改进后的3P 运算公式。通过分析可知,改进后的3P 运算代价为12M+3S,具体算法如算法3。

算法3 Jacobian射影坐标下新3P 算法(New-TPL)
输入:P = (X1:Y1:1) ∈ E (GF (2m))
输出:3P = (X3:Y3:Z3)
  AX12BX1Y1
  CX13DC + X2
  EABFE + Y2
  X2A2 + b
  Y2X1A2 + X2 (A + Y1 + X1);
  X3F (F + X1D )+ D2 (D + aA );
  Y3D2 (CF + ED )+ X3 (X1D + F );
  Z3X1D
返回(X3:Y3:Z3)
2.3 Co_Z 对称三进制标量乘算法

标量k 可展开成对称三进制形式(symmetric ternary form,STF)[17],相对二进制形式,它能够缩短展开后的链长,减少点加和3P 运算次数。将对称三进制应用到标量乘运算中,具体的标量乘算法可参考文献[3].在对称三进制标量乘算法中,每轮迭代中只有当ki ≠ 0时,才执行点加运算,而根据对称三进制的展开式,非零数出现的概率为2/3,因此其运算代价为n (T + 2A/3), 其中A 表示点加的运算代价,T 表示3P 的运算代价。

为提高标量乘的安全性,使其能够抵御简单能量攻击(simple power analysis, SPA),通过增加标量乘算法的运算量,文献[18]提出了一种可抵御SPA攻击的对称三进制标量乘算法。将本文提出的点加和3P 运算公式与文献[18]算法相结合,可优化标量乘算法的效率,如算法4。

算法4 Co_Z 对称三进制标量乘算法
输入:P, STP(k )
输出:kP
  Q0 = ∞,P0 = ∞,P1 = PP-1 = -P
  for i = n - 1 to 0, i - -
  Q0 ← New - TPL(Q0);
  Q1 ←Co_Z(Q0, Pki);
  Q-1Q1
  Q0Qki
  end for
返回Q0

在算法4中,每轮循环都需要执行一次Co_Z 点加和一次3P 运算,因此整个标量乘算法的运算量为n(A+T)。文献[18]中的可抵御SPA攻击的对称三进制标量乘算法采用的是仿射坐标系,每轮循环运算量为2I+ 5S+ 9M,这里求逆与域乘的运算量之比为8。由于在算法4中引入了Co_Z 点加算法,减少了每轮循环中点加和3P 运算所需的M、S计算次数,因此提高了运算效率。

3 运算效率分析

将本文提出的Co_Z 点加、3P 运算公式应用到文献[3]的对称三进制标量乘算法中,比较不同运算公式下的标量乘算法运算效率(见表 1). 160-bit对称三进制标量乘算法的运算量为101(T + 2A/3)。

表1 160-bit对称三进制标量乘算法的运算量 Table 1 The calculation amount of 160-bit STF scalar multiplication algorithm
坐标系 点加(A 3P(T) 标量乘
Lopez & Dahab射影坐标 Co_Z 10M+3S 12M+4S 1885M+606S
Jacobian射影坐标 Z2 = 1 10M+3S 13M+7S 1986M+909S
Co_Z 8M+3S 12M+3S 1751M+505S

在有限域GF (2m)内,平方运算更加高效,因此在二元域内,可以忽略计算平方(S)的时间[12],只比较计算域乘所需要的时间代价。Jacobian射影坐标下,当Co_Z 点加与3P 运算应用到对称三进制标量乘算法中,算法的运算效率提高了12%。若在Jacobian射影坐标和López & Dahab射影坐标下均使用Co_Z 点加运算公式,则对称三进制标量乘算法在Jacobian射影坐标的运算效率要比López & Dahab射影坐标下提高8%。

在160-bit下,对称三进制标量乘算法的运算量为101(T + A )。表 2给出了使用不同点加、3P 运算公式时,可抵御SPA攻击对称三进制标量乘算法的运算量。在Jacobian射影坐标下,改进后的点加、3P运算公式后得到的运算量为2020M+606S,此即为算法4的运算量。

表2 可抵御SPA攻击对称三进制标量乘算法的运算量 Table 2 The calculation amount of Anti-SPA STF scalar multiplication algorithm
坐标系 点加(A 3P(T) 标量乘
Lopez & Dahab射影坐标 Co_Z 10M+3S 12M+4S 2222M+707Sa
Jacobian射影坐标 Z2 = 1 10M+3S 13M+7S 2323M+1010Sa
Co_Z 8M+3S 12M+3S 2020M+606Sb
注:a为将本文数据代入文献[18]算法结果;b为本文算法4

当引用Co_Z 操作后,López & Dahab射影坐标下的点加运算量由10M+5S降至10M+3S;Jacobian射影坐标下的点加运算量由10M+3S降至8M+3S。新提出的Jacobian射影坐标下3P运算公式比之前的少了1M+4S。由表 2可知,Jacobian射影坐标下,结合了Co_Z点加和改进后的3P运算的算法4的运算效率,相比使用改进前的点加、3P运算公式的可抵御SPA攻击对称三进制标量乘算法提高了13%(只比较计算域乘所需要的时间代价)。

4 结论

本文对有限域GF (2m)内的点加、3P 运算公式进行改进,使得运算过程中的域乘、域平方计算次数得到减少。当引入Co_Z 思想后,通过统一输入点的Z 坐标,López & Dahab射影坐标下Co_Z 点加运算量降低了2S;Jacobian射影坐标下Co_Z 点加运算量降低了2M。此外,当输入点的Z 轴特殊化处理为1后,Jacobian射影坐标下3P 运算量减少了1M+ 4S,都有不同程度的效率提高。将提出的Co_Z 点加、3P 运算公式与可抵御SPA攻击的标量乘算法相结合,提出一种Co_Z 对称三进制标量乘算法,使得标量乘算法的运算效率提高了13%。下一步,可选取合适的椭圆曲线,将Co_Z 点加与曲线相结合,提出更高效的标量乘算法,使其能应用到具体的硬件环境中。

参考文献
[1]
MILLER V S. Use of elliptic curves in cryptography [C]// Advances in CryptologyCRYPTO ' 85 Proceedings. Berlin: Springer-Verlag, 1986: 417-426. https://link.springer.com/chapter/10.1007%2F3-540-39799-X_31
[2]
KOBLITZ N. Elliptic curve cryptosystems[J]. Mathematics of Computation, 1987, 48: 203-209. DOI:10.1090/S0025-5718-1987-0866109-5
[3]
LIU H Z, DONG Q H, LI Y B. Efficient ECC scalar multiplication algorithm based on symmetric ternary in wireless sensor networks[C]// 2017 Progress in Electromagnetics Research Symposium. Washington D C: IEEE, 2017: 879-885.DOI: 10.1109/PIERS-FALL.2017.8293258.
[4]
CHUNG S C, LEE J W, CHANG H C, et al. A high - performance elliptic curve cryptographic processor over GF(p) with SPA resistance[C]// 2012 IEEE International Symposium on Circuits and Systems. Washington D C: IEEE. 2012: 1456-1459.DOI: 10.1109/ISCAS.2012.6271521.
[5]
FENG X, LI S G. A high-speed and SPA-resistant implementation of ECC point multiplication over GF(p)[C]// 2017 IEEE Trustcom/BigDataSE/ICESS. Washington D C: IEEE, 2017: 255-260.DOI: 10.1109/Trustcom/BigDataSE/ICESS.2017.245
[6]
MELONI N. New point addition formulae for ECC applications[C]// WAIFI ' 07 Proceedings of the 1st International Workshop on Arithmetic of Finite Fields. Berlin: Springer-Verlag. 2007: 189-201.DOI: 10.1007/978-3-540-73074-3_15.
[7]
GOUNDAR R R, JOYE M, MIYAJI A. Co -Z addition formulæ and binary ladders on elliptic curves[C]// Cryptographic Hardware and Embedded Systems. Berlin: Springer-Verlag. 2010: 65-79.DOI: 10.1007/978-3-642-15031-9_5
[8]
WEI J Z, LIU X L, GUO W. A low-time-complexity and secure dualfield scalar multiplication based on Co -Z protected NAF[J]. IEICE Electron Express, 2014, 11(11): 361. DOI:10.1587/elex.11.20140361
[9]
于伟, 李宝, 王鲲鹏, 等. 特征3有限域上椭圆曲线的Co-Z Montgomery算法[J]. 计算机学报, 2017, 40(5): 1121-1133.
YU W, LI B, WANG K P, et al. Co-Z Montgomery algorithm on elliptic curves over finite fields of characteristic three[J]. Chinese Journal of Computers, 2017, 40(5): 1121-1133. (Ch).
[10]
李俊芳, 崔建双. 抗MOV规约法攻击的一类安全椭圆曲线[J]. 计算机工程与应用, 2004(36): 67-68+101.
LI J F, CUI J S. A Method to generate elliptic curves[J]. Computer Engineering and Applications, 2004(36): 67-68+101. DOI:10.3321/j.issn:1002-8331.2004.36.021 (Ch).
[11]
HANKERSON D, VANSTONE S MENEZES A. Guide to Elliptic Curve Cryptography[M]. New York: Springer-Verlag, 2004: 72-75.
[12]
KING B. An improved implementation of elliptic curves over GF(2n) when using projective point arithmetic[C]// Selected Areas in Cryptography. Berlin: Springer-Verlag, 2001: 134-150.DOI: 10.1007/3-540-45537-X_11.
[13]
LÓPEZ J, DAHAB R. Improved algorithms for elliptic curve arithmetic in GF(2n)[C]// Selected Areas in Cryptography. Berlin: Springer-Verlag, 1998: 201-212.DOI: 10.1007/3-540-48892-8_16.
[14]
DIMITROV V, IMBERT L, MISHRA P K.. Efficient and secure elliptic curve point multiplication using double-base chains[C]//Advances in Cryptology-ASIACRYPT 2005. Berlin: Springer - Verlag, 2005: 59 - 78.DOI: 10.1007/11593447_4.
[15]
CIET M, JOYE M, LAUTER K, et al. Trading inversions for multiplications in elliptic curve cryptography[J]. Designs, Codes and Cryptography, 2006, 39(2): 189-206. DOI:10.1007/s10623-005-3299-y
[16]
顾海华.椭圆曲线密码的快速算法及安全基础研究[D].上海: 上海交通大学, 2010.
GU H H. Research on Efficient Algorithms and Safety Foundation for Elliptic Curve Cryptosystems[D]. Shanghai: Shanghai Jiao Tong University, 2010 (Ch). http://cdmd.cnki.com.cn/Article/CDMD-10248-2010113593.htm
[17]
邓维勇, 缪祥华. 对称三进制在椭圆曲线标量乘法中的应用[J]. 计算机工程, 2012, 38(5): 152-154.
DENG W Y, MIAO X H. Application of balanced ternary in elliptic curve scalar multiplication[J]. Computer Engineering, 2012, 38(5): 152-154. DOI:10.3969/j.issn.1000-3428.2012.05.046 (Ch).
[18]
LIU S G, YAO H T, WANG X A. SPA resistant scalar multiplication based on addition and tripling indistinguishable on elliptic curve cryptosystem[C]// 2015 10th International Conference on P2P, Parallel, Grid, Cloud and Internet Computing (3PGCIC). Washington D C: IEEE, 2015: 785-790.DOI: 10.1109/3PGCIC.2015.20.