使用Strauss-Shamir方法的EC标量乘法

时间:2018-06-22 18:05:54

标签: algorithm multiplication elliptic-curve

我正在搜索有关所谓的“ Strauss-Shamir方法”的信息,以在椭圆曲线上进行标量乘法。这是一种在log 2 k1 · P + k2 · Q)的加法和加倍运算中计算k的方法,其中k1, k2 < k

不幸的是,虽然此算法在左右中间被引用,但在任何地方都没有引用 actual 算法(而且,我敢于希望它的分析)。有没有人可以向我解释,或者至少给我有关伪代码/分析的链接?

非常感谢!

1 个答案:

答案 0 :(得分:2)

要将数字 P n 位标量 k 相乘,可以根据< strong> k 。假设 k = 9 。用二进制表示,即1001,您可以像这样计算 9P

R=0
R=R*2+P  //the most significant '1' bit
R=R*2    //next bit is 0
R=R*2    //next bit is 0
R=R*2+P  //next bit is 1

施特劳斯-沙米尔(Shauss-Shamir)技巧只是通过在链内而不是链外进行加法​​来计算 aP + bQ 。假设以a=1001和b = 0011`的二进制形式表示。然后我们就这样做:

R=0
R=R*2+P   //bits from a,b = 1,0
R=R*2     //bits from a,b = 0,0
R=R*2+Q   //bits from a,b = 0,1
R=R*2+P+Q //bits from a,b = 1,1

如果您预先计算了 P + Q ,那么这不会比一次乘法花费的时间长得多。