Page 448 - 《软件学报》2026年第2期
P. 448

张源 等: 以用户为中心的云辅助跨应用数据安全流转                                                        927


                 U  的长效口令. 注意到第   个  i  App  的用户凭证为    sp i = h 2 (sp u ||i), 由  App  派生密钥  sp u ′  计算得到. 由于哈希函数的
                  ′
                 抗第一原象性, 对于      i ∈ [1,n], 给定   sp i , 计算  sp u ′  是计算不可行的.   A 破解  sp u ′  的最高效的方法是破解  sp u ′  的生成
                 过程.  sp u ′  的安全性由引理  1  和引理  2  保证, 确保了  CADC  能够抵御敌手  A.
                    引理  1 (不可预测性). 在   CADC  中, App  派生密钥是不可预测的. 这意味着, 给定用户           U  的口令  psw U ′ , 即使敌
                                                                                       ′
                          t (t < t) 个  App, 也无法预测相应的  App
                            ′
                           ′
                 手可以破坏                                   派生密钥    sp U ′ .
                    证明: 定义   CADC  的不可预测性挑战如下.
                    1) 环境  ε 初始化该方案, 生成一个服务器端密钥           k, 使用  (t,n) 门限秘密共享协议生成      n 个服务器端密钥共享
                                                           S S  将
                 {k 1 ,k 2 ,...,k n } 并产生相应的公共参数  PP 发送给模拟器  ,   PP 转发给  A.
                                                                       {         }
                                                                                    S S  转发给
                    2) A  选取   t  个索引  T = {i 1 ,i 2 ,...,i t ′}  发送给  ,   ε ε  回复   k i 1  ,k i 2  ,...,k i t ′   给  ,   A  并设置  q 1 ,
                             ′
                                                      S S  转发给  .
                 q 2 ,...,q n = 0.
                    3) A  随机选取   x ∈ Z ,r ∈ Z  并计算  c = r · H (x).
                                   ∗
                                        ∗
                                        p
                                   p
                    4) 对  i ∈ [1,n]/T , A  向  S  请求  σ i = k i c.
                    5) 收到请求后,   S  设置   q i = q i +1 并将请求转发给  ε.
                    6)   ε 计算  σ i  并发送给  ,   σ i  转发给  A.
                                     S S  将
                    7) A  对不同的   i 重复上述请求, 最终输出     σ.
                              n
                            ∑
                                      ′
                    当且仅当        q i < t −t , 且   σ 是对  c 的有效签名时, A  在不可预测性挑战中获胜.
                              i=1
                                                                 [      ∩  (∑ n     )]
                    定义  A  在不可预测性挑战中获胜的概率为            Adv predi (ℓ) = Pr (σ = σ c )  q i < t −t ′  .
                                                        A                   i=1
                    可证明如果     A  能够以一个不可忽略的概率赢得不可预测性挑战, 那么                 S  也能够以同样的概率破坏        BLS  签名
                 的存在不可伪造性. 具体地, 在交互过程中,            S  可以获取   {k ι ,σ ι } ι=T ′,{σ i } i∈[1,n]/T ′  和  σ. 注意到无论  A  采取何种策略, 都
                                  ∑ n
                                          ′                                     t −1  个服务器端密钥共享下的
                 不会比请求次数满足            q i +t = t −1  时更有效, 因此, 不妨假设  S  可以收集到
                                    i=1
                 t −1 个签名  σ i ′ ,σ i ′ ,...,σ i ′   以及一个服务器端密钥下的签名  (由  A  输出). 假设  A  的目标是在未知第  t  个服务器端
                            1  2    t−1
                                                                              ∏         ι     ∏       ι
                 密钥共享的情况下伪造        c 的签名, 则  S  可根据公式  (23) 伪造  BLS  签名, 其中  w η =        ,  w t =
                                                                                i ′ ⩽ι⩽i ′ ,ι,η ι−η  i ′ ⩽ι⩽i ′ t−1 ι−t
                                                                                 1  t−1          1
                 输出.

                                                           i ′  
                                                          t−1   1
                                                                 
                                                         ∑
                                                             
                                                                 
                                                                 
                                                   σ t =  −   w η σ η·                           (23)
                                                       σ 
                                                               
                                                                w t
                                                           η=i ′
                                                             1
                    引理  2 (不可见性). 在本方案中, App     派生密钥是不可见的. 这意味着, 给定用户           U  App  派生密钥  sp U ′ , 敌手无
                                                                                   ′
                 法获取相应口令      psw U ′  的任何信息  (如  psw U ′  的哈希值).
                             r 的随机性, 敌手只能收集到不同口令盲化后的信息. 定义一个不可见性证明过程如下.
                    证明: 由于
                           ε  初始化该方案, 生成一个       App            (t,n)  门限秘密共享协议生成   个  n   App  端密钥共享
                    1) 环境                           端密钥   k, 使用
                 {k 1 ,k 2 ,...,k n }  并产生相应的公共参数  PP  发送给模拟器  ,   PP  转发给  A.
                                                           S S  将
                    2) A  随机选取  c ∈ Z p  发送给  ,    ε.
                                          S S  转发给
                                                                                  S S  收到后转发给
                    3)   ε 随机选取   并计算  σ c = rk · H (c), 将  App  派生密钥  sp c = F 1 (h 1 (σ c ),c) 发送给  ,   A.
                               r
                    4) A  可重复进行步骤    2)、3), 次数上限由安全参数      ℓ 的多项式   poly(ℓ) 界定.
                    5) A  随机选取  c 0 ,c 1 ∈ Z p  并发送给  ,      ε.
                                              S S  收到后转发给
                                                                   ′
                    6)  ε 随机选取   b ∈ {0,1},r ∈ Z . 若  b = 0 ε 计算   sp c b  = F 1 (h 1 (kr H (c b )),c b ); 否则  ε 随机选取一个函数   ′  ,
                                       ′
                                                 ,
                                          ∗
                                          P                                                    F ∈ Func Z p
                              .
                           ′               S S  转发给
                 计算   sp c b  = F (c b ) ε 将   sp c b  发送给  ,   A.
                    7) A  输出  b .
                             ′
                             ′
                    当且仅当    b = b 时, A  在不可见性证明过程中获胜.
                    A  在不可见性证明过程中获胜的概率为            Pr Obli,ℓ  = |Pr[b = b]−1/2|.
                                                             ′
                                                     A
                    可证明如果     A  能够以一个不可忽略的概率在不可见性证明过程中获胜, 那么                   S  也能够以同样的概率      Pr Obli,ℓ  破
                                                                                                   A
   443   444   445   446   447   448   449   450   451   452   453