Page 53 - 《软件学报》2025年第10期
P. 53

4450                                                      软件学报  2025  年第  36  卷第  10  期


                                                                 VLink 共  10  个多项式时间算法, 描述如下.
                 Verify, 提取撤销令牌  Extract, 用户自主链接   UCLink, 链接验证
                                ( )
                                 λ
                    (1)   pp ← Setup 1 : 输入安全参数  λ, 输出系统公共参数    pp. 群管理员   GM 初始化    Merkle 树  TSetup(pp,gpk)
                                                                                                reg.
                 → T crt , 将所有叶子结点置为   0, 初始化用户计数器      c = 0, 初始化撤销列表   RL = ∅, 初始化用户注册列表
                    (2)   (gsk,gpk) ← GKeyGen(pp) : 输入公共参数  pp, 输出群密钥对   (gsk,gpk). 由群管理员  GM 执行.
                    (3)   (usk,upk) ← UKeyGen(pp,gpk) : 输入公共参数   pp, 群公钥  gpk, 输出用户密钥对  (usk,upk). 由用户本地执行.
                    (4)  ⟨(ID,grt),⊥⟩ ← Join⟨user(upk),GM(gsk)⟩ : 该算法由  GM 与用户交互式进行. 用户提交自己的公钥      upk  申
                                                                               .
                 请入群, 若   GM  同意该入群请求, 用户将得到自己的群成员               ID  和撤销令牌   grt GM  更新树, 更新用户计数器
                                     reg, 无输出.
                 c+ = 1, 更新用户注册列表
                    (5)  info new  ← GUpdate(gpk,gsk,info,RL,reg) : 输入群密钥对  (gsk,gpk), 当前群消息  info, 撤销列表  RL, 用户注册
                 列表  reg, 输出最新群消息    info  . 由群管理员  GM 执行.
                                        new
                    (6)   Σ ← Sign(gpk,pp,usk[π], M ∈ {0,1} , scp,upk[π],grt[π]) : 输入群公钥  gpk, 系统公共参数  pp, 用户公私钥对
                                                 ∗
                                                                          Σ
                 (usk[π],upk[π]), 消息   M, 事件主题   scp, 撤销令牌  grt[π], 输出消息-签名对  . 由群成员   ID 为  π 的用户执行.
                                                )
                                 (
                    (7)  1/0 ← Verify gpk,pp,info new ,Σ,RL : 输入群公钥   gpk, 系统公共参数  pp, 最新群消息  info new  , 消息-签名对  Σ,
                        RL. 输出  1  表示签名合法, 否则输出                                               GM 维护.
                 撤销列表                               0. 由验证者执行. 其中输入的撤销列表          RL 由群管理员
                    (8)   grt[π ]/ ⊥← Extract(Σ 1 ,Σ 2 ): 输入两个消息-签名对  Σ 1 ,Σ 2 , 若其是同一个事件主题  scp 下的不同签名, 则提
                           ∗
                                         ∗                                                     ⊥. 由验证者
                 取对应签名者的撤销令牌         grt[π ] 并输出, 反馈给群管理员     GM 将其添加在撤销列表        RL 中; 否则返回
                 执行.
                    (9)  (Π L ,nym,Σ) ← UCLink(Σ,usk): 输入自己的历史消息-签名对集合   Σ = (Σ 1 ,Σ 2 ,...,Σ K ), 以及用户私钥  usk, 生
                 成链接证明    Π L  及聚合假名  nym 说明集合   Σ  中的签名均由自己所签. 由用户执行.
                                                                          Σ
                    (10)  1/0 ← VLink(Σ,nym,Π L ): 输入某一用户的历史消息-签名对集合  , 聚合假名        nym, 以及对应的链接证明
                 Π L , 输出  1  表示证明合法, 否则输出   0. 任何人可以执行.
                    GS-UCL-VCR  方案满足正确性, 其同时满足签名验证正确性、链接验证正确性及条件可提取性.
                    ● 签名验证正确性      (verification correctness). 一个  GS-UCL-VCR  方案满足签名验证正确性, 当且仅当对于所有
                 由系统初始化     Setup 产生的  pp, 群密钥生成算法    GKeyGen 产生的   gpk, 群更新算法   GUpdate 所产生的最新群消息
                 info new   及通过加入算法  Join 认证的持有密钥   (usk[i],upk[i]) 和撤销令牌  grt[i] 的群成员  ( ID = i) 所产生的签名均合
                 法, 除非该成员已被撤销. 正式地:

                                                                                      )
                          (
                                                                    ∗
                     Verify gpk,pp,GUpdate(gpk,gsk),Sign(gpk,pp,usk[i], M ∈ {0,1} , scp,upk[i],grt[i]),RL = 1 ⇔ grt[i] < RL.
                    ● 链接正确性    (link correctness). 一个  GS-UCL-VCR  方案满足链接正确性, 当且仅当对于通过加入算法         Join 认
                 证的持有密钥     (usk[i],upk[i]) 和撤销令牌  grt[i] 的群成员  ( ID = i) 所产生合法消息-签名对集合   Σ = (Σ 1 ,Σ 2 ,...,Σ K ),
                 利用用户自主链接算法        UCLink 为其生成的链接证明       Π L  及聚合假名  nym, 一定可以通过链接验证算法的验证. 正
                 式地,

                                                        ∗                                
                              Σ j ← Sign(gpk,pp,usk[i], M ∈ {0,1} , scp,upk[i],grt[i])   
                                                                                         
                                                                                         
                                                                                         
                                                                                         
                             
                                                                                          
                           Pr j = {1,2,...,K}                          : VLink(Σ,nym,Π L ) = 1 = 1.
                                                                                         
                                                                                         
                                                                                         
                                                                                         
                               Σ = (Σ 1 ,Σ 2 ,...,Σ K )
                    ● 条件可提取性     (conditional extractability). 一个  GS-UCL-VCR  方案满足条件可提取性, 当且仅当对于所有由
                 系统初始化     Setup  产生的  pp, 群密钥生成算法   GKeyGen  产生的  gpk, 群更新算法    GUpdate  所产生的最新群消息
                 info   及通过加入算法    Join  认证的持有密钥    (usk[i],upk[i])  和撤销令牌  grt[i]  的群成员  ( ID = i) 所产生的任意两
                    new
                                                                         (
                                                                )
                                    (
                             Σ 1 ← Sign gpk,pp,usk[i], M 1 ,scp ,upk[i],grt[i] Σ 2 ← Sign gpk,pp,usk[i], M 2 ,scp ,upk[i],grt[i] , 始
                                                                                                     )
                                                                 ,
                 个消息-签名对                             1                                    2
                 终满足:

                                                    
                                                     grt[i], if nym 1 = nym 2 ∧ M 1 , M 2
                                                    
                                                    
                                                                                 ,
                                        Extract(Σ 1 ,Σ 2 ) = 
                                                      ⊥,     otherwise
                                                    
                                                    
   48   49   50   51   52   53   54   55   56   57   58