Modular exponentiation and scalar multiplication are important operations of most public key cryptosystems, and their fast calculation is essential to improve the system efficiency. The shortest addition chain is one of the most important mathematical concepts to realize the optimization. However, finding a shortest addition chain of length k is an NP-hard problem, whose time complexity is comparable to O($k!$). This paper proposes some novel methods to generate short addition chains. We firstly present a Simplified Power-tree method by deeply deleting the power-tree, whose time complexity is reduced to O($k^2$) sacrificing some increasing of the addition chain length. Moreover, a Cross Window method and its variant are introduced by improving the Window method. More precisely, the Cross Window method uses the cross correlation to deal with the windows and its pre-computation is optimized by the Addition Sequence algorithm. The theoretical analysis is conducted to show the correctness and effectiveness. Meanwhile, the experiment shows that the new methods can obtain shorter addition chains compared to the existing methods. The Cross Window method with the Addition Sequence algorithm can attain 9.5% reduction of the addition chain length, in the best case, compared to the Window method.
翻译:模幂运算和标量乘法是大多数公钥密码系统中的重要操作,其快速计算对于提高系统效率至关重要。最短加法链是实现优化的最重要的数学概念之一。然而,寻找长度为k的最短加法链是一个NP困难问题,其时间复杂度与O($k!$)相当。本文提出了一些生成短加法链的新方法。我们首先提出了一种简化幂树方法,通过深度删除幂树,将时间复杂度降低至O($k^2$),但代价是加法链长度有所增加。此外,我们改进了窗口方法,引入了交叉窗口方法及其变体。更精确地说,交叉窗口方法利用互相关处理窗口,并通过加法序列算法优化其预计算。理论分析证明了该方法的正确性和有效性。同时,实验表明,与现有方法相比,新方法能获得更短的加法链。与窗口方法相比,结合加法序列算法的交叉窗口方法在最佳情况下可实现加法链长度减少9.5%。