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

陈颖 等: 具有用户自主链接及验证者条件撤销的格基群签名                                                    4451


                                              (
                                                               )
                         (
                                         )
                 其中,  Σ 1 = sig 1 , M 1 ,nym 1 ,τ 1 ,scp ,Σ 2 = sig 2 , M 2 ,nym 2 ,τ 2 ,scp .
                                         1                    2
                  3.2   安全模型
                    具有用户自主链接及验证者条件撤销的群签名方案应满足无私匿名性、可追溯性、不可诽谤性. 这里, 相较
                 于普通完全匿名的群签名方案, 无私匿名性是指不依赖公钥加密可实现的最优匿名性                             [3] , 即敌手不可以获得用于
                 挑战的两个用户对应的私钥.
                    定义  11 (无私匿名性 (selfless-anonymity)). 定义无私匿名性游戏    Game selfano , 敌手  A 的目标是判断一个给定签
                 名是由两个用户中的哪一个产生的. 游戏定义如下.
                    (1)  Setup. 挑战者  C  依次运行系统初始化算法    Setup, 群密钥生成算法    GKeyGen, 用户密钥生成算法      UKeyGen,
                                                   (gsk,gpk), 用户  (                  (usk[i],upk[i],grt[i]). 将
                 入群算法    Join  得到公共参数   pp, 群密钥对                ID = i) 密钥对及撤销令牌
                 pp,gpk  发送给  .
                            A
                    (2)  Queries. A 做如下询问.

                         :
                    a)   SO A  自适应选择消息    µ  和主题事件   scp  在  ID = i,i ∈ [c]  用户私钥下的签名.  C  运行签名算法返回  Σ ←
                                       ∗
                 Sign(gpk,pp,usk[π],µ ∈ {0,1} , scp,upk[π],grt[π]) 给  A. 为避免平凡攻击, 对于同一个  ID 下的同一个主题事件  scp
                 仅可询问   1  次.

                    b)   CO : A 询问  ID = i,i ∈ [c] 用户的私钥.   C  返回对应  usk[i]. 此时, 对应用户被腐化.
                    c)  RO : A 询问  ID = i,i ∈ [c] 用户的撤销令牌.  C  返回对应的  grt[i]. 此时, 对应用户被腐化.
                                                                           Σ
                    d)   LO A 选取   ID = i 所对应的私钥  usk[i] 所生成的历史消息-签名集合  , 询问其链接证明.         C  返回对应的  Π L .
                         :
                                        µ
                                         ∗

                                                     ∗
                    (3)  Chal. A 输出挑战消息  , 主题事件    scp  及两个群成员   ID  索引  i 0 ,i 1 , 这里索引对应的用户不可以是已被撤
                                                                                           ∗
                 销的或已在    CO,RO  询问中出现过的同时, 为避免平凡攻击, 若            i 0 ,i 1  在  SO  询问中出现过, 则  scp  不可以与对应历
                                                                                     Σ ← Sign(gpk,pp,usk[i b ],
                                                                                      *
                 史  SO 中询问  i 0 ,i 1  时的   scp 相同   C  随机选取一个比特   b ← {0,1}, 计算由  usk[i b ] 产生的签名
                  ∗
                 M , scp,upk[i b ],grt[i b ]) 并发送给  A.
                    (4)   Restricted Queries. A 可做与  Queries 阶段中相同的询问, 但在  CO,RO  询问时, 不可以对索引   i 0 ,i 1  进行询

                                                           ∗
                 问. 在对索引   i 0 ,i 1  进行  SO  询问时, 主题事件  scp , scp  且不可与  Queries  阶段对  i 0 ,i 1 的SO  询问输入的  scp  相同.
                                                                                                    ,
                 对于索引   i 0 ,i 1 , 在  Queries 和  Restricted Queries 阶段, 分别定义  SO  询问得到返回值  Σ  的集合分别为  SIG,CSIG LO
                 询问得到的返回值集合分别为          LP,CLP, 在对索引   i 0 ,i 1  进行   LO 询问时, 若选择的   Σ  满足   (Σ ∧SIG , ∅∧(∗,Σ) ∈ LP)∧
                 (Σ ∩∧CSIG , ∅∧(∗,Σ) ∈ CLP), 则中止游戏.
                                          b
                                           ′
                                               ′

                    (5)   Output. A 输出一个比特  , 若  b = b 则赢得游戏.


                                                      = Pr[b = b]−  ⩽ negl(λ), 则  GS-UCL-VCR  满足无私匿名性.

                                                                 1
                                                           ′
                    若  A 赢得游戏   Game selfano  的优势   Adv Game selfano
                                                                2
                    定义  12 (可追溯性 (traceability)). 定义可追溯性游戏    Game trace , 敌手  A 的目标是伪造一个合法签名     (或链接
                                                                         Identity 用于判断一个给定的签名是否由
                 证明) 使其不可以被追溯到一个合法群成员. 这里首先定义一个辅助函数
                 群成员生成,    Identity(gpk,usk,Σ) → 1/0, 若  Σ  确实是由  usk  生成则返回  1, 否则返回  0. 其次, 定义询问  LO A  选
                                                                                                    ,
                 取  ID = i  所对应的私钥  usk[i]  所生成的历史签名集合  ,                          UCLink  返回对应的   Π L ; 若
                                                            Σ C  运行用户自主链接算法
                                              (               )
                 ∃Σ ∈ Σ,Identity(gpk,usk,Σ) = 0∧Verify gpk,pp,info  ,Σ,RL = 0, 游戏中止并返回  .
                                                                               ⊥
                                                       new
                    可追溯性覆盖了以往群签名中不可伪造的性质, 保证了只有合法有效的群成员才可以代表群签名. 假设                                  A 伪
                     n 个签名  ( n ⩾ 1),  A  赢得签名可追溯  (signature traceability,   1  ) 和链接证明可追溯  (link traceability,
                 造了                                                 Game trace
                 Game 2  ) 两个游戏的概率:
                     trace
                                                                                          
                                  pp,gsk,gpk,info new  ← Setup,GKeyGen,GUpdate            
                                                                                          
                                                                                          
                                                                                          
                                                                                          
                                             so,co                                        
                                  (Σ 1 ,...,Σ n ) ← A  (gpk)                              
                                                                                          
                                                                                          
                                                                                          
                                                                                           
                                                                                           ⩽ negl(λ),
                           1 = Pr               (              )                         
                                  for i = 1,...,n,Verify gpk,pp,info  ,Σ i ,RL = 1∧Σ i = (sig i , M i ,nym ,T i ,scp ) 
                      Adv Game trace                                                      
                                                          new                     i     i 
                                                                                          
                                                                                          
                                                                                          
                                                                                          
                                  ∃Σ i s.t. ∀ ID ∈ reg∪RL : Identity(gpk,ID,Σ i ) = 0      
                                 
   49   50   51   52   53   54   55   56   57   58   59