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

刘振亚 等: SM2  数字签名算法的两方门限计算方案框架                                                   2195


                    (1) 签名第  1  部分  r = (x 1 +e) mod q ;
                    (2) 签名第  2  部分   s 的中间值  s 1 = d 2 (r +w 2 ) mod q ,
                      r  是公开的信息且不包含任何        Bob          s 1  包含  Bob
                 其中,                            的私密信息,              的私密信息    d 2  和  w 2  . Alice 试图从方程   s 1 −rd 2 −
                 w 2 d 2 = 0 中解出   d 2  和   w 2  , 该方程为二元一次方程. Alice 令  d 2  在  [1,q−1] 区间上遍历取值, 并计算与之对应的  w 2 =
                  −1                                                                   w 2  的难度等同于穷举.
                 d s 1 −r  , 得到该方程在  [1,q−1]  区间上的  (q−1) 组解. Alice 从这  (q−1) 组解中获取  d 2  和
                  2
                 对于  Alice 而言, 相较于仅掌握签名验证公钥以及签名结果, 掌握上述信息并没有降低获取                        Bob  的部分私钥   d 2  以
                 及随机数   w 2  的难度. 假设  Alice  与  Bob  进行多次协作签名, 每次签名     Alice  都能够获取  1  个方程. 记第  i 次签名
                                          [i]
                                 [i]
                                 s −r d 2 −w d 2 = 0 , 其中包含  2                [i]  . 每次签名  Bob  都会使用相同的
                                     [i]
                 Alice 获取的方程为    1        2               个未知数, 分别为     d 2  和  w 2
                        d 2  , 并独立随机生成或计算              [i]  . 因此  Alice 通过与                          n 个
                 部分私钥                        1 个随机数   w 2               Bob 的   n 次协作签名, 能够获取一个由
                                                                                                 −1 [i]
                                                                                             [i]
                 方程组成的方程组, 其中包含       (n+1) 个未知数. Alice 令   d 2  在   [1,q−1] 区间遍历取值, 并计算与之对应的   w = d s −r  [i]  .
                                                                                                   1
                                                                                                 2
                                                                                             2
                 得到该方程组在      [1,q−1]  区间上的  (q−1)  组解. Alice  从这  (q−1)  组解中获取  d 2  和  w [i]   的难度等同于穷举. 对于
                                                                                   2
                 Alice 而言, 相较于仅掌握签名验证公钥以及签名结果, 掌握上述信息并没有降低获取                        Bob  的部分私钥   d 2  以及随
                 机数  w [i]   的难度. 进一步, 根据签名随机数构造的安全要求,         w [i]  总是包含至少  1  个独立随机生成的随机数, 因此在
                      2                                         2
                 具体的两方门限计算方案中, Alice 也无法求解所得的方程组. 综上, Alice 无法从协作签名的交互过程中获取任何
                 Bob  的私密信息, 从而无法获取完整的签名私钥或另一部分私钥的任何信息.
                    在一次协作签名中, Bob      能够获取如下信息.
                    (1) 椭圆曲线点   Q 1 = [w 1 ]G .
                                      e .
                    (2) 待签名消息的摘要
                    (3) 签名第  2  部分  s = (d 1 (s 1 +w 1 )−r) mod q .
                    由于  ECDLP  和哈希函数的安全性, Bob      无法从   Q 1  和   中获取任何信息. 而   包含   Alice 的私密信息   d 1  和  w 1  ,
                                                                               s
                                                              e
                   s 1  对于  Bob  来说是已知的, 因此  Bob                                   w 1  , 该方程为二元一次方程.
                 且                              试图从方程    s−d 1 s 1 −d 1 w 1 +r = 0 中解出  d 1  和
                                                                 −1
                 Bob 令   d 1  在   [1,q−1] 区间上遍历取值, 并计算与之对应的   w 1 = d (s+r)− s 1  , 得到该方程在  [1,q−1] 区间上的  (q−1)
                                                                 1
                 组解. Bob  从这  (q−1) 组解中获取  d 1  和  w 1  的难度等同于穷举. 对于  Bob  而言, 相较于仅掌握签名验证公钥以及签
                 名结果, 掌握上述信息并没有降低获取            Alice 的部分私钥   d 1  以及随机数  w 1  的难度. 假设  Bob  与  Alice 进行多次协
                 作签名, 每次签名     Bob  都能够获取   1  个方程. 记第  i 次签名  Bob  获取的方程为   s − s d 1 −w d 1 +r = 0 , 其中包含
                                                                                 [i]
                                                                                       [i]
                                                                                            [i]
                                                                              [i]
                                                                                 1     1
                 2 个未知数, 分别为    d 1  和  w [i]  . 每次签名  Alice 都会使用相同的部分私钥  d 1  , 并独立随机生成或计算  1 个随机数  w [i]  .
                                     1                                                                1
                 因此  Bob  通过与  Alice 的  n 次协作签名, 能够获取一个由      n 个方程组成的方程组, 其中包含         (n+1) 个未知数. Bob
                                                         [i]
                                                                [i]
                                                                    [i]
                                                             −1
                 令   d 1  在   [1,q−1] 区间遍历取值, 并计算与之对应的  w = d (s +r )− s [i]   , 得到该方程在  [1,q−1] 区间上的  (q−1)
                                                                        1
                                                             1
                                                         1
                 组解. Bob  从这   (q−1) 组解中获取  d 1  和  w [i]  的难度等同于穷举. 对于  Bob  而言, 相较于仅掌握签名验证公钥以及签
                                                1
                 名结果, 掌握上述信息并没有降低获取            Alice 的部分私钥   d 1  以及随机数  w [i]  的难度. 进一步, 根据签名随机数构造
                                                                          1
                 的安全要求,    w [i]  总是包含至少  1  个独立随机生成的随机数, 因此在具体的两方门限计算方案中, Bob                 也无法求解
                            1
                 所得的方程组. 综上, Bob     无法从协作签名的交互过程中获取任何              Alice 的私密信息, 从而无法获取完整的签名私
                 钥或另一部分私钥的任何信息.
                    假设存在一个外部敌手         Adv  能够获取公开信息以及签名生成过程的通信信息, 包括:
                    (1) 椭圆曲线点   Q 1 = [w 1 ]G .
                    (2) 待签名消息的摘要      e .
                    (3) 签名第  1  部分  r = (x 1 +e) mod q .
                    (4) 签名第  2  部分   s 的中间值  s 1 = d 2 (r +w 2 ) mod q .
                    (5) 签名第  2  部分  s = (d 1 (s 1 +w 1 )−r) mod q .
                                       −1 −1
                    (6) 签名验证公钥    P = [d d −1]G  .
                                       1  2
                    由于   ECDLP  和哈希函数的安全性, Adv       无法从   Q 1  、  P  和   中获取任何信息. Adv  试图从方程  1:   s 1 −rd 2 −
                                                                   e
   290   291   292   293   294   295   296   297   298   299   300