Page 464 - 《软件学报》2025年第8期
P. 464

唐长虹 等: 加权门限     SM2  签名方案                                                       3887


                    ● 密钥生成
                                                                 [
                                                                      ]
                    (1) 随机生成的秘密数      d A  作为用户  A  的私钥, 且满足  d A ∈ 1,q−1 .
                    (2) 计算  P A = [d A ]G = (x A ,y A ) 得到公钥并公开.
                    ● 签名生成
                    (1) 对待签名的消息      M  进行签名时, 签名者先将消息         M  与自己的信息杂凑值连接得到           ¯ M = Z A ∥M , 并计算
                      ( )
                       ¯
                 e = H v M .
                    (2) 签名者利用随机数生成器选取随机数            k, 满足   k ∈ [1,n−1], 计算  (x 1 ,y 1 ) = kG.
                                                 r +k = n, 则需要重新选择   k.
                    (3) 计算  r = (e+r 1 ) mod n, 若  r = 0 或
                             (               )
                                   −1                s = 0, 则需要重新选择            r, s 即为消息
                    (4) 计算   s = (1+d A ) ·(k −r ·d A ) mod n, 若      k;   s , 0, 则      M  的签名, 记为  (r, s).
                    ● 签名验证
                                                                                                       ′
                                    ′            ′  ′          ′          ′                     ¯ M =Z A ∥M ;
                                                                                                 ′
                    (1) 验证者收到消息    M  及其数字签名    (r , s ) 后, 首先检验   r ∈[1,n−1] 和   s ∈[1,n−1] 是否成立, 并得到
                              (  )
                               ¯ ′
                         ′
                 然后计算   e = H v M .
                                                                     (   )
                               ′  ′                                    ′  ′  ′
                    (2) 计算  t = (r + s ) mod n, 如果  t = 0, 即为验证失败; 否则, 计算   x ,y = [s ]G +[t]P A .
                                                                         1
                                                                       1
                              (    )
                               ′  ′              R = r  是否成立, 若等式成立则签名验证通过; 否则验证失败.
                                                     ′
                    (3) 计算  R = e + x mod n, 判断等式
                                  1
                 1.5   理想功能函数
                    本文借鉴文献      [28] 中的理想功能函数对方案进行构造. 分别为生成随机值的份额                    F Random  、降阶协议  F deg  、
                 乘法协议   F Mult  和打开秘密份额  F Open . 其中,  W =(w 1 ,...,w n ) 为  n 个参与者的总权重, 每个参与者  i 用整数  p i  表示, 有
                 集合   P = (p 0 , p 1 ,..., p n ). 设   (T,t) 分别是重构门限和秘密门限. 用  {[s] i } i∈[n] ← Share(P,T,t, s) 来表示某个秘密  s 的  WRSS
                 结果. 下面具体介绍这      4  个理想功能函数    [28] .

                 1.5.1    随机值份额   F Random
                    各方生成随机值的秘密份额. 具体来说, 各方将自己随机生成的值进行秘密分割后发送给其他人, 所有人接收份
                 额后进行本地加法计算得到随机值, 并将各方得到的随机值作为随机值份额, 即为此函数生成的结果. 具体描述如下.
                                                                        {   }
                    (1) 对于所有的参与者      i ∈ [n], 第  i 方选取随机值  r i ∈ F. 秘密分割  r i : [r i ] j  ← Share(P,T,t,r i ), 并将份额发送
                                                                            j∈[n]
                 给各个参与方.
                    (2) 所有参与者接收到分割份额后, 本地计算          [r i ] = ([r 1 ] i +[r 2 ] i +...+[r n ] i ) mod p i  作为随机域元素   r = r 1 +...+r n ∈ F
                 的份额.
                                        (   ∑    )
                    在下文介绍中将用       F Random r =  r i  表示各个参与方生成    r 的随机份额    r i .
                                              i∈[n]
                 1.5.2    降阶协议   F deg
                    在本文方案设计中, 通过乘法协议对两个多项式进行乘法运算, 此时运算结果多项式的阶增高. 因此, 需要利
                 用降阶协议对计算结果进行降阶. 具体描述如下.
                                                                                {  }    {   }
                                                                                                     0
                    (1) 输入. 各方选取    x  的秘密份额   [x]. 各方还持有随机值     r 的两个秘密份额      [r] 0   和   [r] 1  . 其中  [r]  和
                                                                                  i  i∈[n]  i  i∈[n]
                   1
                 [r]  都是使用  F Random  函数生成.
                                           (      )
                    (2) 参与者  i 本地计算并广播     [x] i +[r] mod p i  作为  x+r 的秘密份额.
                                                 1
                                                 i
                                                                         {  }
                    (3) 所有参与者接收到秘密份额后, 本地重构            x+r ∈ F, 并从秘密份额    [r] 0   中减去  (x+r) mod p i .
                                                                             i∈[n]
                                                                           i
                 1.5.3    乘法协议   F Mult
                    在方案设计中, 需要对两个多项式进行乘法运算, 这里对乘法协议进行介绍.
                                 (   [ ] )
                    参与方本地计算       [x] i · y  mod p i  作为   x·y 的秘密份额. 然后使用降阶协议   F deg , 得到  [z] i  作为  z = x·y 的新份额.
                                       i

                 1.5.4    打开秘密份额   F Open
                                                                                 F Random  类似.
                    在构造方案时, 各方需要打开输出值, 下面介绍打开秘密份额协议, 生成方式与
                    (1) 输入. 各方持有输出线路的秘密份额          [out]. 各方还持有  [0] 的一个秘密份额.
   459   460   461   462   463   464   465   466   467   468   469