随着无线通信技术的快速发展,人们对物联网安全的需求与日俱增,而加密技术可在确保用户身份验证和授权、通信数据机密性和完整性等方面发挥重要作用。自1975年RIVEST、SHAMIR和ADLEMAN提出RSA公钥密码体制以来,其得到了广泛的研究和应用,但该系统严重依赖使用1 024 bit和2 048 bit等大密钥位的整数分解难题(Integer Factorization Problem,IFP)[1]。之后,MILLER[2]和KOBLITZ[3]提出的椭圆曲线密码体制(Elliptic Curve Cryptography,ECC)使该情况得到了改善。ECC具有与RSA相同功能的公钥密码体制[4],其计算原理是求解椭圆曲线离散对数问题(Ellipse Curve Discrete Logarithm Problem,ECDLP)。相比当前主流的加密系统,ECC以更小的密钥尺寸提供了更高级别的安全性,并且运行速度快,适用于计算资源受限的智能移动终端。
ECC中的标量乘法相比其他运算层是求逆次数最多且最核心的运算,标量乘法的运算速率对实现整个密码体制的性能起到关键作用。标量乘运算又称为点乘运算,即
文献[11]提出双基数系统(Double-Base Number System,DBNS)。文献[12]改进双基思想,将其扩展为多基数系统(Multi-Base Number System,MBNS),且提出5倍点的计算公式及标量乘法,大幅提高了计算速度。文献[13]主要给出一种
定义1 有限域上的椭圆曲线方程在域K上定义为[11]:
${y^2} + {a_1}xy + {a_3}y = {x^3} + {a_2}{x^2} + {a_4}x + {a_6}$ | (1) |
其中,系数,
${y^2} = {x^3} + ax + b$ | (2) |
其中,
在二元域K=F2上,式(1)可简化为:
${y^2} + xy = {x^3} + a{x^2} + b$ | (3) |
其中,
标量乘运算在实现过程中会调用点加和倍点运算,而点加和倍点运算又会再调用底层有限域算术运算,即标量乘算法的运算效率受底层域运算的影响。表 1给出了有限域中相关操作的运算量统计,其中,I表示求逆操作,S和M表示平方和乘法操作。
![]() |
下载CSV 表 1 相关操作的运算量统计 Table 1 Statistics of computation amount ofrelated operations |
双基链是椭圆曲线标量乘算法的一种加速方法,其中每个正整数n都可表示为2a3b的和或差形式。
定义2 设集合B={2,3},则整数k可表示为如下形式[1]:
$k = \mathop \sum \limits_{i = 1}^n {d_i}{2^{{a_i}}}{3^{{b_i}}}$ | (4) |
该形式为整数k的双基链表示,其中,{ai},{bi}为单调递减序列,di∈{-1, 1}。双基链表示高度稀疏,可减少标量展开的汉明权值。由于三元基表示方法引入了高效的三倍公式,因此其大幅减少了标量乘法的运行时间。例如,使用双基链计算
整数可表示为长度为的二进制序列,考虑到NAF一次只能处理两个连续的相邻位。w-NAF对NAF进行了扩充[18],采用整数k的w位表示,这样便可使非零元素的取值范围从[-1, 1]扩展到
$k = \mathop \sum \limits_{i = 0}^{l - 1} {k_i}{2^i}$ | (5) |
其中,ki是奇数且
算法1 w-NAF算法
输入 窗口宽度w,正整数k
输出 NAFw(k)
1.i←0
2.While k ≥ 1 do
2.1.If k is odd,then
2.2.Else
2.3.
3.Return
多基数系统作为双基数系统的一个扩展,其汉明重量变小,标量表示链长也随之变短,进而使标量乘运算效率得到明显提高。对于一组小整数集合
定义3 设集合B={2, 3, 7},则整数k可以表示成如下形式:
$k = \mathop \sum \limits_{i = 1}^m {s_i}{2^{{b_i}}}{3^{{t_i}}}{7^{{q_i}}}$ | (6) |
该形式即为整数的多基数表示,其中,{bi}、{ti}、{qi}变化呈递减形式,si∈{-1, 1},m为多基数表示的长度。多基链相较双基链冗余度不仅更高,而且汉明重量也更小。例如,当si=1时,整数100总计有402个双基数表示方法,而多基数表示可达8 425个[19]。bi、ti、qi的数值大小对2、3、7倍点运算的运算次数有直接影响。使用DBNS表示一个160位的大数,需约23项,然而使用MBNS表示则仅需约15项[20]。由此可看出,使用多基链能有效提高ECC中的标量乘法运行效率,通常采用贪婪算法编码可获得多基链的整数表示。
算法2 贪婪算法
输入 正整数k,二进制、三进制、七进制的最大指数max 2,max 3,max 7 > 0,序列T={0,…,max 2;0,…,max 3;0,…,max 7}
输出 序列
1.s←1
2.While k > 0 do
2.1.For(b=0 to max 2,t=0 to max 3,q=0 to max 7)
z=T[b,t,q],找出离k最近的z
2.2.Output(s,b,t,q)
2.3.If k < z,then s←-s
2.4.k←|k-z|
3.Return
计算多标量乘的方法大致可以分为两种:一种是计算m个标量乘的kipi并将其相加,然而该方法运算效率较低;另一种是同时计算多个标量乘,如Shamir算法、Shamir-NAF算法等。本文通过将多基数表示引入滑动窗口算法中提出一种多标量乘快速算法Sliding MBNS,假定已知椭圆曲线上的基点,t bit的标量kj被划分为窗口宽度为w的d
$ {k^j} = K_{{d_j} - 1}^j\left\| \cdots \right\|\left. {k_1^j} \right\|k_0^j $ | (7) |
$K_l^j = k_l^{{j_{\left( {w - 1} \right)}}}, \cdots , k_l^{{j_1}}, k_l^{{j_0}} $ | (8) |
算法3 基于MBNS滑动窗口的多标量乘快速算法
输入 t bit的标量,窗口宽度w,基点,1≤j≤jmax
输出
1.For l from 1 to jmax do
计算iPl,
2.Q←∞
3.Qp←∞
4.P←0
5.s←0
6.For P from d-1 downto 0 do
6.1.For q from 1 to jmax do
lookup
For r from 0 to w-1 do
lookup
Q←Q+QP
6.2.P←P+1
6.3.向右移s位,直至找到下一个非零元素
6.4.Q←2sQ
6.5.If没有非零元素,then跳出
7.Return Q
算法3采用滑动窗口算法可以有效降低时间复杂度。该算法运行在底层元素集合的大数组上的一个子列表上,在运行整个列表时会进行特定操作,动态寻找窗口以减少存储空间,其中实际窗口计算数小于d。点加的运算次数由多基表示的链长和非零位数决定,也会随着窗口宽度w的变化而变化。基于算法3的有限域中窗口宽度及相应点加平均运算次数如表 2所示,其中,E(F2m)表示二元域,E(FP)表示素域,AwE(F2m)和AwE(FP)分别表示二元域和素域上不同窗口宽度下的平均点加次数。
![]() |
下载CSV 表 2 基于算法3的有限域窗口宽度及相应点加平均运算次数 Table 2 The window widths and the average computation number of corresponding point plusin the finite field based on algorithm 3 |
算法3中假设基点已知,即定点标量乘运算,因此无需多次更换预计算表,主要计算赋值阶段的运算消耗。本文在jmax=3下对算法性能进行分析研究,先对MBNS表示的每个窗口进行点加操作,然后分别对i(i=3)个标量求和,算法3在赋值阶段所需总的点加运算次数为
基于交错MBNS滑动窗口的多标量乘快速算法I-MBNS采用w-NAF表示,只需计算小于2w-1的奇数项。例如,对于一个数的7-NAF表示,只需计算介于-63~63的奇数项,因此其点加运算次数会减少。首先计算标量kj的NAFw形式,其次进行预处理操作,使用MBNS表示串klj并计算出iP1、mP2、nP3
算法4 基于交错MBNS滑动窗口的多标量乘快速算法
输入 t bit的标量kj,窗口宽度w,基点Pj,1≤j≤jmax
输出
1.For l from 1 to jmax do
计算iPl,
2.计算
3.Q←∞
4.QP←∞
5.P←0
6.s←0
7.For P from d-1 downto 0 do
7.1.For q from 1 to jmax do
lookup
For r from 0 to w-1 do
lookup
Q←Q +QP
7.2.P←P+1
7.3.向右移s位,直至找到下一个非零元素
7.4.Q←2sQ
7.5.If没有非零元素,then跳出
8.Return Q
基于算法4的有限域中窗口宽度及相应点加平均运算次数如表 3所示。w-NAF算法的平均非零元素的密度近似为
![]() |
下载CSV 表 3 基于算法4的有限域窗口宽度及相应点加平均运算次数 Table 3 The window widths and the average computation number of corresponding point plusin the finite field based on algorithm 4 |
本文对Sliding MBNS和I-MBNS算法在jmax下进行实验并用Python实现上述算法。为便于算法性能对比,Shamir算法[21]和交错NAF算法[22]的窗口大小分别为2 bit和4 bit~8 bit,Sliding MBNS和I-MBNS算法的窗口大小为10 bit~16 bit。表 4将Shamir算法、交错NAF算法、Sliding MBNS和I-MBNS算法在二元域(E(F2m))和素域(E(Fp))上的底层域平均运算量进行比较,设置
![]() |
下载CSV 表 4 算法平均运算量比较 Table 4 Comparison of average computation amount of algorithms |
根据实验数据分析可知:在二元域上t=160 bit时,Sliding MBNS算法相比Shamir算法和交错NAF算法运算量分别减少了10.00%和1.69%;I-MBNS算法相比Shamir算法和交错NAF算法运算量分别减少了13.00%和4.97%。在素域上t=160 bit时,Sliding MBNS算法相比Shamir算法运算量减少了11.50%,I-MBNS算法相比Shamir算法和交错NAF算法运算量分别减少了15.02%和3.11%。Shamir、交错NAF、Sliding MBNS和I-MBNS算法在二元域和素域上的运算量对比结果如图 1和图 2所示。由图 1和图 2可以看出,无论二元域还是素数域,Sliding MBNS和I-MBNS算法的运算量明显低于Shamir和交错NAF算法,运算效率更高。本文还分析了算法运算量与窗口宽度的关系。以二元域I-MBNS为例,t=160 bit时不同窗口对应的平均运算量如表 5所示。
![]() |
Download:
|
图 1 二元域算法运算量对比结果 Fig. 1 Comparison results of algorithm computation amount in binary domain |
![]() |
Download:
|
图 2 素域算法运算量对比结果 Fig. 2 Comparison result of algorithm computatuion amount in prime field |
![]() |
下载CSV 表 5 t=160 bit时不同窗口宽度对应的平均运算量 Table 5 Average computation amount corresponding to different window widths when t=160 bit |
由表 5可知,不同窗口宽度对应的平均运算量不同,并且随着窗口宽度的不断增大,平均运算量逐渐减少。为能更清晰地显示两者之间的变化情况,绘制二元域窗口宽度与平均运算量的曲线图,如图 3所示。可以看出,当t=160 bit时,随着I-MBNS算法窗口宽度的不断增大,平均运算量呈下降趋势。
![]() |
Download:
|
图 3 二元域窗口宽度与平均运算量的关系 Fig. 3 The relationship between the window widths and the average computation amount in binary domain |
本文结合多基数系统和滑动窗口算法,提出一种以2、3、7为基元的多基整数表示形式及Sliding MBNS和I-MBNS两种多标量乘算法,分析并比较了Sliding MBNS和I-MBNS算法在二元域和素域及不同窗口宽度下的平均运算量。实验结果表明,Sliding MBNS和I-MBNS算法大幅提升了运算效率,且随着窗口宽度的不断增加,平均运算量呈现下降趋势,进而加速多标量乘运算及ECC整体实现。下一步将融合目前主流椭圆曲线密码体制的硬件实现,将标量乘算法应用于网络信息安全传输中,保证信息传输的高效性和安全性。
[1] |
PUROHIT G N, RAWAT A S, KUMAR M. Elliptic curve point multiplication using MBNR and point halving[J]. International Journal of Advanced Networking and Applications, 2012, 3(5): 1329-1337. |
[2] |
MILLER V S.Use of elliptic curves in cryptography[C]//Proceedings of Conference on the Theory and Application of Cryptographic Techniques.Berlin, Germany: Springer, 1985: 417-426.
|
[3] |
KOBLITZ N. Elliptic curve cryptosystems[J]. Mathematics of Computation, 1987, 48(177): 203-209. DOI:10.1090/S0025-5718-1987-0866109-5 |
[4] |
WAZIRI V O, DANLADI H, ALHASSAN J K, et al. Web-cloud-based security services based-on elliptic curves cryptosystem[J]. International Journal of Computer Applications, 2015, 115(23): 12-18. DOI:10.5120/20290-2146 |
[5] |
EZZOUAK S, AZIZI A.Improving scalar multiplication over elliptic curves[C]//Proceedings of the 2nd Inter-national Conference on Applied Mathematics.[S.l.]: AIP Publishing LLC, 2019: 1-9.
|
[6] |
YIN Xinchun, ZHANG Hailing, ZHAO Rong.Fast multi-scalar multiplication using the multi-based number system[C]//Proceedings of 2009 International Conference on Computational Intelligence and Software Engineering.Washington D.C., USA: IEEE Press, 2009: 1-4.
|
[7] |
YI Jiang, YONG Shen, ZHU Qingyi. A lightweight key agreement protocol based on Chinese remainder theorem and ECDH for smart homes[J]. Sensors, 2020, 20(5): 1357-1369. DOI:10.3390/s20051357 |
[8] |
CHEN Houyou, MA Chuangui. A multiple scalar multi-plications algorithm in the elliptic curve cryptosystem[J]. Journal of Software, 2011, 22(4): 782-788. (in Chinese) 陈厚友, 马传贵. 椭圆曲线密码中一种多标量乘算法[J]. 软件学报, 2011, 22(4): 782-788. |
[9] |
SOLINAS J A.Low-weight binary representations for pairs of integers: CORR 2001-41[R].Centre for Applied Cryptographic Research, 2001: 1-7.
|
[10] |
LI Yanmei, YIN Xinchun, SHAO Mengli. Multi-scalar multiplication algorithm for elliptic curve based on MBNS and sliding window[J]. Computer and Modernization, 2019, 281(1): 15-20. (in Chinese) 李艳梅, 殷新春, 邵梦丽. 基于多基表示的滑动窗口椭圆曲线多标量乘算法[J]. 计算机与现代化, 2019, 281(1): 15-20. |
[11] |
DIMITROV V, IMBERT L, MISHRA P K.Efficient and secure elliptic curve point multiplication using double-base chains[C]//Proceedings of International Conference on the Theory and Application of Cryptology and Information Security.Berlin, Germany: Springer, 2005: 59-78.
|
[12] |
MISHRA P K, DIMITROV V.Efficient quintuple formulas for elliptic curves and efficient scalar multiplication using multibase number representation[C]//Proceedings of Inter-national Conference on Information Security.Berlin, Germany: Springer, 2007: 390-406.
|
[13] |
LIU Duo, DAI Yiqi. A new algorithm of elliptic curve multi-scalar multiplication[J]. Chinese Journal of Computers, 2008, 31(7): 1131-1137. (in Chinese) 刘铎, 戴一奇. 计算椭圆曲线上多标量乘的快速算法[J]. 计算机学报, 2008, 31(7): 1131-1137. |
[14] |
ANAGREH M, SAMSUDIN A, OMAR M A. Parallel method for computing elliptic curve scalar multiplication based on MOF[J]. International Arab Journal of Informa-tion Technology, 2014, 11(6): 521-525. |
[15] |
KHLEBORODOV D. Fast elliptic curve point multiplica-tion based on window non-adjacent form method[J]. Applied Mathematics and Computation, 2018, 334: 41-59. DOI:10.1016/j.amc.2018.03.112 |
[16] |
ANAGREH M, VAINIKKO E, LAUD P.Accelerate performance for elliptic curve scalar multiplication based on NAF by parallel computing[C]//Proceedings of the 5th International Conference on Information Systems Security and Privacy.Berlin, Germany: Springer, 2019: 24-45.
|
[17] |
ADIKARI J, DIMITROV V S, MISHRA P K.Fast multiple point multiplication on elliptic curves over prime and binary fields using the double-base number system[EB/OL].[2020-01-15].https://www.iacr.org/cryptodb/data/paper.php?pubkey=17822.
|
[18] |
SEO H, KIM H, PARK T, et al. Fixed-base comb with window-Non-Adjacent Form(NAF) method for scalar multiplication[J]. Sensors, 2013, 13(7): 9483-9512. DOI:10.3390/s130709483 |
[19] |
HAO Yanhua, LI Lei, WANG Yumin. Efficient scalar multiplication algorithm using multibase chains[J]. Journal of University of Electronic Science and Technology of China, 2008, 37(6): 868-871. (in Chinese) 郝艳华, 李磊, 王育民. 利用多基链计算椭圆曲线标量乘的高效算法[J]. 电子科技大学学报, 2008, 37(6): 868-871. |
[20] |
LI Yanmei, YIN Xinchun. Extended algorithm for scalar multiplication based on MBNS[J]. Journal of Chinese Computer Systems, 2017, 38(12): 2699-2702. (in Chinese) 李艳梅, 殷新春. 一种基于多基表示的标量乘扩展算法[J]. 小型微型计算机系统, 2017, 38(12): 2699-2702. |
[21] |
ELGAMAL T. A public key cryptosystem and a signature scheme based on discrete logarithms[J]. IEEE Transactions on Information Theory, 1985, 31(4): 469-472. DOI:10.1109/TIT.1985.1057074 |
[22] |
HANKERSON D, MENEZES A J, VANSTONE S A. Guide to elliptic curve cryptography[M]. Berlin, Germany: Springer-Verlag, 2003.
|