Page 296 - 《软件学报》2025年第5期
P. 296

2196                                                       软件学报  2025  年第  36  卷第  5  期


                                 w 2  , 并从方程                             w 1  . 根据上述安全性分析可知, Alice     和
                 w 2 d 2 = 0  中解出  d 2  和    2:   s−d 1 s 1 −d 1 w 1 +r = 0  中解出  d 1  和
                 Bob  无法分别求解方程     1  和方程  2, 且  Adv  所掌握的信息少于   Alice 和  Bob. 因此, Adv  无法从方程  1  和方程  2  中
                 解出  d 1  、   d 2  、   w 1  、  w 2  . 进一步, 根据签名随机数构造的安全要求,    w 1  和  w 2  总是包含至少  1  个独立随机生成的随
                 机数, 因此在具体的两方门限计算方案中, 敌手              Adv  也无法求解所得的方程. 综上, Adv      无法从协作签名的交互过
                 程中获取任何     Alice 和  Bob  的私密信息, 从而无法获取完整的签名私钥或任一参与方的部分私钥.
                  3.1.4    多随机数两方门限计算方案框架
                    第  3.1.2  节所描述的  Alice 与  Bob  协作计算椭圆曲线点    Q 的过程中, Alice 使用随机数     w 1  、Bob  使用随机数
                                                −1             −1                    −1  进行替换并不会影响最
                                                                                s
                 w 2  以及自己部分私钥    d 2  计算  Q = [w 2 +d w 1 ]G  . 由于此处  d   被用于计算  Q 而非   , 对  d
                                                2              2                     2
                 终签名的有效性. 进一步, Bob      可以不使用     d −1   , 而是替换成一个新的随机数     w 3  , 使得  Q = [w 2 +w 1 w 3 ]G  , 即签名随
                                                   2
                     k = w 2 +w 1 w 3  . 这使得   的协作计算过程发生一些变化, 此时有:
                                      s
                 机数

                   s = d 1 d 2 (w 2 +w 1 w 3 +r)−r = d 1 d 2 w 2 +d 1 d 2 w 1 w 3 +d 1 d 2 r −r = d 1 (d 2 r +d 2 w 2 )+d 1 d 2 w 1 w 3 −r = d 1 s 1 +(d 1 w 1 )(d 2 w 3 )−r.
                    为了实现    s 的协作计算, Bob   不仅需要发送     s 1  给  Alice, 还应发送  s 2 = d 2 w 3  给  Alice. 然后  Alice 计算  s = d 1 (s 1 +
                 w 1 s 2 )−r .
                                          (d 1 w 1 )(d 2 w 3 ) 部分进行扩展. 即  Bob  s 时可以使用更多的随机数, 记为
                    进一步, 本文对上述      s 中的                             在协作计算
                 w γ+2 ,w γ+3 ,...,w 2γ+1  , 将它们分别与自己的部分私钥  d 2  相乘, 并发送给  Alice. Alice 也使用相应个数的随机数与之相
                                             s . 综上, Alice 和  Bob  协作计算  SM2  签名的过程如下, 如图  2  所示.
                 乘, 记为  w 1 ,w 2 ,...,w γ  , 从而计算得到
                             ′                  ′
                    Alice.1 置   m = m||z , 计算  e = Hash(m ) .
                                                                                                e 给  Bob.
                    Alice.2 随机生成或计算    w 1 ,w 2 ,...,w γ ∈ [1,q−1] , 计算   Q 1 = [w 1 ]G,...,Q γ = [w γ ]G , 发送  Q 1 ,...,Q γ  和
                    Bob.1 随机生成或计算     w γ+1 ,w γ+2 ,...,w 2γ+1 ∈ [1,q−1] , 计算  Q = (x 1 ,y 1 ) = [w γ+1 ]G +[w γ+2 ]Q 1 +...+[w 2γ+1 ]Q γ  .
                    Bob.2 计算  r = (x 1 +e) mod q .
                    Bob.3 计算   s 1 = d 2 (r +w γ+1 ) mod q s 2 = (d 2 w γ+2 ) mod q,..., s γ+1 = (d 2 w 2γ+1 ) mod q , 发送  s 1 ,..., s γ+1  和   给 r  Alice.
                                               ,
                    Alice.3 计算   s = (d 1 (s 1 +w 1 s 2 +...+w γ s γ+1 )−r) mod q , 签名即为  (r, s) .
                                 k = w γ+1 +w 1 w γ+2 +...+w γ w 2γ+1  .
                    此时签名随机数

                                           Alice                    Bob
                                           m'=m||z; 计算 e=Hash(m')

                                          随机生成或计算 w 1 ,w 2 ,...,w γ ∈[1,q−1];
                                             计算 Q 1 =[w 1 ]G,...,Q γ =[w γ ]G
                                                      Q 1 ,...,Q γ 、e

                                                     随机生成或计算 w γ+1 ,w γ+2 ,...,w 2γ+1 ∈[1,q−1];
                                                    计算 Q=(x 1 ,y 1 )=[w γ+1 ]G+[w γ+2 ]Q 1 +...+[w 2γ+1 ]Q γ ;

                                                                  计算 r=(x 1 +e) mod q
                                                             计算 s 1 =d 2 (r+w γ+1 ) mod q;
                                                          s 2 =(d 2 w γ+2 ) mod q,...,s γ+1 =(d 2 w 2γ+1 ) mod q
                                                      s 1 ,...,s γ+1 、r
                                         计算 s=(d 1 (s 1 +w 1 s 2 +...+w γ s γ+1 )−r) mod q

                                     图 2 基于乘法密钥拆分的多随机数两方门限计算方案框架

                    在协作计算     SM2  数字签名的过程中, Alice 和    Bob  能够通过不同的方式构造各自的随机数, 对上述门限计算
                 方案框架进行实例化. 随机数的构造应满足下述安全要求.
                    (1) 为了避免相关性, 随机数       w 1 ,w ,...,w γ  均包含至少  1  个独立随机生成的随机数   k i  , 且其与  k i  的取值分布都
                                              2
   291   292   293   294   295   296   297   298   299   300   301