Page 147 - 《软件学报》2025年第10期
P. 147

4544                                                      软件学报  2025  年第  36  卷第  10  期



                                                      表 1 符号说明

                                       符号                                 含义
                                        k                           标量乘算法中的标量
                                       P,Q                            椭圆曲线上的点
                                       [k]P                       椭圆曲线上点    P 的   倍点
                                                                                k
                                        w                               窗口宽度
                                     NAF w (k)                      标量  k 的wNAF表示
                                     NAF rw (k)                     标量  k 的RWNAF表示
                                     NAF ow (k)                     标量  k 的OWNAF表示
                                        A                               点加运算
                                        D                               倍点运算
                                       sgn()                            符号函数
                                     MSB w (k)                  取标量   k 的二进制表示的第   w 位
                                        e λ                         e λ = λ−2 w−1  mod 2 w−1

                          k 的  wNAF  形式的算法如算法     1  所示.
                    计算数
                 算法  1. 标量  k 的  wNAF  编码算法  [3] .

                 输入: 标量  k, 窗口宽度   w;
                 输出:  NAF w (k).

                 1.  i ← 0;
                 2. while  k ⩾ 0 do
                 3.  if  k 是奇数 then
                                w
                 4.    k i ← k mod 2 ;
                 5.   if  k i ⩾ 2 w−1  then
                               w
                 6.     k i = k i −2 ;
                 7.   end if
                 8.      k ← k −k i ;
                 9.  else
                 10.    k i ← 0;
                 11.  end if
                 12.   k ← k/2 i ← i+1;
                           ,
                 13. end while
                 14. return  NAF w (k) = (k i−1 ,k i−2 ,...,k 1 ,k 0 ).

                    由算法   1  计算得到的   NAF w (k) 的位数最大为   n+1 n 为   的二进制表示位数. 在宽度为        w 的  NAF w (k) 中非  0
                                                           ,
                                                                k
                 数字的密度平均为      1/(w+1). 计算  wNAF  形式  k  的标量乘算法如算法    2  所示.
                 算法  2. wNAF  标量乘算法  [3] .

                 输入: 标量  k, 椭圆曲线上一点     P, 窗口宽度   w;
                 输出:  [k]P.

                               len−1
                               ∑
                                    i
                 1. 计算  NAF w (k) =  k i 2 ; /* 算法  1 */
                                i=0
                                  {      w−1  }
                               ,
                 2. 预计算  P i = [i]P i ∈ 1,3,...,2  −1 ;
   142   143   144   145   146   147   148   149   150   151   152