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

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


                    常用加法同态密码算法有          Paillier 算法  [16] . 对于        ⊙  操作定义如下:
                                                         Paillier 算法,    ⊕  和
                                            Enc pk (m 1 )⊕ Enc pk (m 2 ) = Enc pk (m 1 )· Enc pk (m 2 ).

                                                                     k
                                                   k ⊙ Enc pk (m) = Enc pk (m) .
                    Alice 和  Bob  分别持有乘法份额    z A  和  z B  , 满足  z = z A z B  . Alice 和  Bob  通过如下步骤使用加法同态密码算法实
                 现  MtA  协议, 从而获得加法份额分享.

                    Alice.1 计算   c A = Enc pk (z A ) , 发送  c A  给  Bob.
                                 z  .
                                 ′
                    Bob.1 随机生成   B
                                        ′           ′      c  给 ′  Alice.
                                      ,
                    Bob.2 计算  c B = z B ⊙c A c = c B ⊕ Enc pk (−z ) , 发送
                                        B           B       B
                                       ′
                               ′
                    Alice.2 计算  z = Dec sk (c ) .
                               A       B
                    Alice 和  Bob  分别获得加法份额   z  和  z  , 满足  z = z A z B = z +z  .
                                                                   ′
                                                                ′
                                              ′
                                                  ′
                                                                A
                                                  B
                                                                   B
                                              A
                  2.2.2    基于不经意传输的  MtA  协议
                    1-out-of-2 OT  协议  [17] 允许发送方输入  2 个比特串  (α 0 ,α 1 ) , 接收方输入  β ∈ {0,1} , 结果是接收方获得比特串  α β  .
                 OT  协议保证接收方不知道       α¯ β  , 发送方不知道   β .
                    Alice 和  Bob  分别持有乘法份额   z A  和  z B  , 满足   z = z A z B z A ,z B ∈ F p  , 令   ρ = log |p| . Alice 和  Bob  通过如下步骤
                                                               ,
                                                                                2
                 使用  1-out-of-2 OT  协议实现  MtA  协议, 从而获得加法份额分享.
                    Bob.1 随机生成   ρ 个随机数, 分别为     µ 0 ,...,µ ρ−1 ∈ F p  .
                                           0     1   i                     0  1   0  1
                    Bob.2 对于  i ∈ [0,ρ−1] . 计算   t = µ i t = 2 z B +µ i  , 得到   ρ 个比特串对  (t ,t ),...,(t ρ−1 ,t ρ−1 ) .
                                                ,
                                           i
                                                 i
                                                                             0
                                                                           0
                    Alice.1 记   z A  的二进制形式为   z A ρ−1  ...z A 0  .
                    Alice 和  Bob  执行   ρ 次  1-out-of-2 OT  协议, 第   i 次执行时, Alice 从比特串对   (t ,t ) 中获得  t z A i  .
                                                                               0
                                                                                 1
                                                                                         i
                                                                                 i
                                                                               i
                                 ∑
                               ′
                                      t
                    Alice.2 计算  z =  ρ−1 z A i  .
                               A      i
                                    i=0
                                  ∑ ρ−1
                              ′
                    Bob.3 计算  z = −   µ i  .
                              B
                                    i=0
                    Alice 和  Bob  分别获得加法份额   z  和  z  , 满足  z = z A z B = z +z  .
                                                                   ′
                                                                ′
                                              ′
                                                  ′
                                              A   B             A  B
                  3   SM2  数字签名算法的两方门限计算方案框架
                    两方门限计算意味着        2  个参与方共同完成     SM2  数字签名的计算过程, 任意一方无法独立完成签名的计算. 因
                 此, 两个参与方应分别持有        1  个部分私钥, 用于协作计算签名. 在签名计算的过程中, 为了保护各自的部分私钥, 2
                 个参与方应该通过特定的方式协作生成签名随机数, 使得任意一方都无法获取完整的签名随机数, 从而进一步计
                 算出完整的签名私钥. SM2       数字签名算法的两方门限计算方案的主要步骤如下.
                    (1) 2  个参与方完成协作式的密钥生成, 分别得到           1  个部分私钥. 2  个部分私钥与签名私钥满足特定的关系, 并
                 对应地公开公钥.
                    (2) 2  个参与方协作计算, 得到一个椭圆曲线点          Q = [k]G , 其中  k 为签名随机数.
                    (3) 2  个参与方根据步骤    2  所得椭圆曲线点的     x 轴坐标以及待签名消息的摘要          e , 计算得到签名的第     1  部分  r  .
                    (4) 2  个参与方使用步骤    2  中生成或计算的随机数、签名第          1  部分  r  以及各自的部分私钥协作计算, 得到签名
                 的第  2  部分  s .
                    上述过程应该满足如下安全要求: 任一参与方无法从中获取完整签名私钥或另一部分私钥的任何信息. 这
                 要求:
                    (1) 在密钥生成阶段, 任一参与方不会泄露有关签名私钥或部分私钥的任何信息, 使得另一方无法获取完整的
                 签名私钥.
                    (2) 在签名计算阶段, 任一参与方不会泄露有关签名私钥或部分私钥的任何信息, 使得另一方无法获取完整的
                 签名私钥.
   286   287   288   289   290   291   292   293   294   295   296