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

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


                                 w 2  , 并从方程                              w 1  . 根据上述安全性分析可知, Alice 和
                 w 2 d 2 = 0 中解出  d 2  和    2:    s−(r +w 1 )d 1 − s 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  的私密信息, 从而无法获取完整的签名私钥或任一参与方的部分私钥.

                  4   性能分析

                    Alice 和  Bob  使用一对公私钥多次进行两方协作签名, 密钥生成过程只执行一次. 因此, 本文只讨论签名生成
                 过程的计算消耗和通信消耗. 签名生成过程的计算消耗主要由点乘、点加、数乘和数加运算组成. 相关文献                                   [40] 指
                 出, 点乘运算的计算消耗大约是点加运算的              300  倍, 且远大于数乘和数加运算的计算消耗, 因此本文只讨论签名生
                 成过程中的点乘计算消耗. 以下分别讨论不同                SM2  两方门限计算方案框架的计算消耗以及通信消耗, 如表                   6
                 所示.

                                                      表 6 性能分析

                                          已知点点 未知点点                                          通信   通信量
                            框架                                离线预计算              在线计算
                                            乘/次    乘/次                                       轮数    (bit)
                     乘法密钥拆分、两随机数             2      1          [w 1 ]G,[w 2 ]G     [ d  −1 ]  2    1 280
                                                                                   2  Q 1

                     乘法密钥拆分、多随机数              γ +1    γ       [w 1 ]G,...,[w γ+1 ]G  [w γ+2 ]Q 1 ,...,[w 2γ +1 ]Q γ  2    768γ +512
                 加法密钥拆分、服务器/客户端1-to-1        2      0     [d 1 w 1 ](P+G),[d 2 w 2 ](P+G)  Null  2  1 280
                 加法密钥拆分、服务器/客户端1-to-n        1      1          [d 1 w 1 ](P+G)    [d 2 w 2 ](P+G)  2  1 280

                  4.1   基于乘法密钥拆分的两随机数两方门限计算方案框架
                    该框架所给出的签名生成过程包含             3  次点乘运算, 分别为    Alice 端的一次基点点乘     [w 1 ]G , Bob  端的一次基点
                                        [  −1  ]
                 点乘  [w 2 ]G 和一次未知点点乘    d 2  Q 1  . 由于基点  G 为已知点, 且随机数  w 1  和  w 2  分别由  Alice 和  Bob  独立生成, 因
                                                                                            [  −1  ]
                 此点乘   [w 1 ]G  和  [w 2 ]G  可以离线预计算, 将点乘结果分别存储, 节省签名生成的计算消耗. 而点乘             d 2  Q 1  中的  Q 1
                 是签名生成过程中       Alice 发送给  Bob  的点, 对于  Bob  而言是未知点, 因此只能在线计算.
                    该框架所给出的签名生成过程包含两次通信, 分别是                 Alice 给  Bob  发送椭圆曲线点  Q 1  和消息摘要   , 以及  Bob
                                                                                               e
                 给  Alice 发送签名中间值   s 1  和签名第  1 部分  r  . 根据  SM2 椭圆曲线的标准参数可知, 椭圆曲线点      Q 1  包含两个  256 bit
                 的坐标, 消息摘要    e 、签名中间值    s 1  和签名第  1 部分  r  的长度均为  256 bit, 因此该签名生成过程的通信量为      1 280 bit.
                  4.2   基于乘法密钥拆分的多随机数两方门限计算方案框架
                    该框架所给出的签名生成过程的计算消耗与随机数的数量相关, 当随机数数量为                           (2γ +1) 时, 签名生成过程包
                                                                          ]
                                                                        [
                                                                                                    ]
                 含  (2γ +1) 个点乘. 分别为  Alice 端的  γ 次基点点乘  Q 1 = [w 1 ]G,...,Q γ = w γ G  , Bob  端的一次基点点乘  [ w γ+1 G  和
                             [   ]     [    ]
                 γ  次未知点点乘    w γ+2 Q 1 ,..., w 2γ +1 Q γ  . 由于基点  G  为已知点, 且随机数   w 1 ,w 2 ,...,w γ  和  w γ+1  分别由  Alice 和  Bob
                                                [  ]    [  ]
                 独立生成, 因此点乘      Q 1 = [w 1 ]G,...,Q γ = w γ G  和   w γ+1 G  可以离线预计算, 将点乘结果分别存储, 节省签名生成
                                 [  ]     [    ]
                 的计算消耗. 而点乘      w γ+2 Q 1 ,..., w 2γ+1 Q γ  中的  Q 1 ,...,Q γ  是签名生成过程中  Alice 发送给  Bob  的点, 对于  Bob  而
                 言是未知点, 因此只能在线计算.
                    该框架所给出的签名生成过程包含两次通信, 分别是                  Alice 给  Bob  发送椭圆曲线点   Q 1 ,...,Q γ  和消息摘要   ,
                                                                                                       e
                 以及  Bob  给  Alice 发送签名中间值  s 1 ,..., s γ+1  和签名第  1  部分  r  . 每个椭圆曲线点都包含两个  256 bit 的坐标, 消息
                 摘要  e 签名中间值   s 1 ,..., s γ+1  和签名第  1 部分  r  的长度均为  256 bit, 因此该签名生成过程的通信量为  (768γ +512)  bit.
                  4.3   基于加法密钥拆分的两方门限计算方案框架
                    该框架所给出的签名生成过程包含两次点乘运算, 分别为                    Alice 端的一次点乘    [d 1 w 1 ](P+G) , 和  Bob  端的一
   298   299   300   301   302   303   304   305   306   307   308