ECC与Pairing前沿调研
1.An Analysis of AffineCoordinates for Pairing Computation(Pairing2010)
关注方向
分析运用仿射坐标(Affine Coordinates)计算pairing。作者发现,在实现高安全强度的最优ate pairings时,应用仿射坐标的运算速度要快于目前所知的最好的投影坐标(Projective Coordinates)方程
主要结论
1.作者推荐应用两种已知技术来加速域的反转(field Inversions):
(1)应用扩域的塔效应(towers of extension fields)在扩域上计算反转,可以成功将反转计算通过普通映射降低到子域上计算。实验证明在扩域上该技术可以有效降低反转与乘法的开销比率(the ratio of the costs of inversions to multiplications);
(2)应用反转共享(inversion-sharing)来进行pairing计算。反转共享对于很多立刻反转的计算都是一项标准技巧。随着反转元素的增加,反转与乘法的开销比比率趋近与3。
2. 实验结果,如图1、图2。
图1 256bit素数域上域的运算时间结果,测试平台为Intel Core 2 Duo E8500 3.16GHZ 于32bit/64bit Win7。平均超过1000个操作,统计单位为cpu周期(cyc)和微秒(μs)。
图2 Optimal ate pairing在256bitBN曲线上生成的时间,测试平台同上,测试平均超过20 pairings
2.Affine Pairings on ARM(Pairing2012)
关注方向
Affine Pairings 在ARM、X86和X86-64三个平台上不同参数结构下BN曲线的运行效率对比。
主要结论
1.目前已知的可实现用于密码学的既高效又安全的双线性对的方法,是在有限域上的椭圆曲线上应用最优化版本的Weil或Tate对。
2.作者给出了在dual-coreCortex A9 ARM处理器上仿射对(affine pairings)与投影对(projective pairings)的性能对比,并比较了他们在X86、X86-64上的性能差异。在3个平台上,测试了固有的和组装的蒙哥马利乘法(Montgomery multiplication大数模乘运算)实现。实验发现,对于pairing计算,仿射坐标变换(affinecoordinates)是在ARM处理器上是更好的选择。
3.实现蒙哥马利乘法时,作者对比了C语言下调用固有的内部函数(Intrinsics)和改写的提升函数(Assembly),后者的速度比前者快,如图3。因此,作者设计并使用了直接的改写提升函数方法实现蒙哥马利乘法生成基本参考测试数据。
图3 蒙哥马利乘法C语言下Intrinsics与Assembly实现对比
4.作者在做测试时采用了BN曲线,不仅因为其很适合128bit的安全强度的运算,而且该曲线很有希望候选成为安全强度达到192bit的pairing-friendly的最高效曲线。
5.测试结果截图举例,如图4。bn254的安全强度相当于128bit。
图4 3个平台上254bit素数域上BN 曲线optimal ate pairing的运行时间结果,域上时间平均超过1000个操作,pairing时间平均超过20 pairings
6.测试结果总结:
(1)对于所有安全强度的测试,基本上X86-64比ARM速度快10倍,X86比ARM速度快5倍。
(2)在所有的平台和安全强度下,对于optimal ate pairing 的计算,Affinecoordinates 比projective coordinates要好,随着安全强度提升,两者的差异越来越大。
(3)inversion-to-multiplication ratio在ARM平台的基本域上更低。。
(4)对于所有的平台,inversion-to-multiplicationratio在更大的基本域上更低。
(5)对于所有的平台计算最后的指数运算所消耗的时间百分比随着安强度的提升而增高。
3.ImplementingPairings at the 192-bit Security(Pairing2012)
关注方向
分别从Kachisa-Schaefer-Scott(KSS),Barreto-Naehrig(BN)和Barreto-Lynn-Scott(BLS)三种椭圆曲线上实现192bit安全强度的非对称pairings。作者发现,无论是串行实现还是并行实现,从采用嵌入度为12的BLS曲线上获得pairings的速度是最快的。作者呈现了一个可以较好的适应在一个多处理器机器上计算单一pairing的、获得Weilpairing的通用框架。
主要结论
1.作者主要侧重于实现快速的192bit安全强度的单一pairing(singlepairing)。 选择192bit安全强度的原因是,它在NSA的Suite B密码标准中对于公钥操作拥有较高的安全等级。但是,从众多可选曲线中还无法明确找出最优的192bit安全强度的pairing-friendly曲线,文章对几种曲线的实现进行的对比。
2.作者对几种候选曲线生成pairing进行了分析,其中包括:
(1)BLS12曲线 Y2 = X3 + 4 ,定义的参数选择为z = -2107 + 2105 +293 + 25 ,需要一个638bit素数p和一个427bit素数r;
(2)KSS曲线Y2 = X3+2 ,定义的参数选择为z = -264 - 261 + 246 + 212;
(3)BN 曲线Y2 = X3+5 ,定义的参数选择为z = 2158 - 2128- 268 +1,并定义了相关的扩展域;
(