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

924                                                        软件学报  2026  年第  37  卷第  2  期



                                                              (Aut i ||Token)                        (10)
                                                 EAutToken i = E sp i
                      U  计算  D(EAutToken i )  获得  Aut i  和  Token, 验证等式  e(Aut i ,P) = e(H (Token),PK i )  是否成立; 若等式成立, 则
                                             t
                 Aut i  有效; 否则,  U  拒绝该操作. 收到   个有效证书签名    (用  {Aut 1 ,Aut 2 ,...,Aut t } 表示) 后,  U  计算封装后的证书签名
                 Aut u , 检查等式  e(Aut u ,P) = e(H (Token),PK) 是否成立; 若等式不成立则协议终止; 否则,  U  接受  Aut u , 如公式  (11)
                 计算设备证书.

                                                     Cert D = {Token,Aut u }                         (11)
                    设备授权成功      (获取设备证书) 后, 用户可以通过授权设备在            App  和云存储服务器进行登录和使用. 用户在云
                 存储服务器上的登录与其在          App  的登录步骤类似, 出于简洁性的考量, 以下只具体展示用户在                 A i (i = 1,2,...,n) 登
                 录的具体步骤.
                                                                                                  ,
                      U  使用设备  D 通过客户端联系     A i  的后端服务器进行登录请求,      A i  为客户端生成唯一的会话标识        ID S D 获取
                        ID S  后生成一个随机的账户       ID                                           D 创建一个证书
                 客户端的                            字符串   ID a  以及一个短效的账户密钥对       (K a ,S a ). 随后,
                 签名请求    (certificate signing request, CSR), 其中包含  Sig (ID a ,K a ) D 计算  Sig (CS R) 并将  CSR、 Sig (CSR) 及
                                                                     ,
                                                             S a              S D               S D
                 Cert D  发送给  .
                           A i
                       A i  验证  D 是否有权获取  Cert D  中列出的用户名的证书, 并同时拥有      S D  和   S a ; 若验证失败, 则  A i  拒绝该操作;
                                                                       ,
                 否则,   A i  将   ID a  与该用户名关联起来, 并返回一个账户证书    Sig (Cert a ) Cert a  中列出了   ID a  和  K a .
                                                                k i
                    若为首次登录,     D 生成用于与    A i  会话的短效密钥对    (K S ,S S ), 生成会话证书   Cert S , 证书包含  ID S 、 A i  的域名以
                                    ,
                     ,
                 及   K S D 向  A i  发送  Cert a Sig (Cert S ) 和  Sig (ID S ) 请求登录.   A i  将  K S  与  U  的账户关联, 随后只允许来自证明其
                                       S a         S S
                 拥有  S S  的  D 登录.
                    若不为首次登录,       D  需查找其用于    A i  的会话密钥对   (K S ,S S ), 通过计算  Sig (ID S )  来证明其拥有  S S  以完成
                                                                               S S
                 登录.
                    用户数据的外包存储由发送数据的             App ( A S A S ∈ {A 1 ,A 2 ,...,A n }) 完成.
                                                      ,
                    首先,  U  为其授权设备    D 从  Z  中随机选取用于陷门计算的私钥          α, 如公式  (12) 计算对应的公钥, 给定     U  的使
                                           ∗
                                           p
                 用数据的数据文件       data 及其关键词  ,        E K R (data) 并发送至云存储服务器  .
                                                                              C
                                            w A S  计算

                                                        Q D = αP ∈ G                                 (12)
                      RetriSerKw(σ w ,w) → sd w : 强化关键词算法.   A i (i = 1,2,...,n) 执行分布式秘密共享协议得到其子密钥  sk i = s i ,
                                                          .
                                                                                      ′
                                                                               ∗
                 子公钥   PSK i = PS i , 计算得到相应的公钥   PKS = PS A S  均匀一致地选择    β ∈ Z , 计算  w = β· H (w), 由于  A S  在
                                                                               p
                                                                         ′
                 A i (i = 1,2,...,n)  中, 故  A S  可以根据公式  (13) 使用其子密钥计算一个对  w  的签名.

                                                         ′
                                                    Sig  (w ) = σ S = sk S ·w ′                      (13)
                                                      sk S
                                                         {
                    随后,   A S  随机选择其余  t −1 个  App  的集合  T = A i 1  ,A i 2  ,...,A i t−1  }  , A S < T , 将  w  发送给  . 收到  w  后,  A k (k = i 1 ,
                                                                                             ′
                                                                               ′
                                                                                      T
                 i 2 ,...,i t−1 ) 根据公式  (14) 计算其对   w  的签名并将  σ k  发送给  A S A S  验证等式  e(σ k ,P) = e(w ,PSK k ) 是否成立; 若验
                                                                 ,
                                                                                      ′
                                             ′
                 证失败,   A S  拒绝  σ k ; 否则,  A S  在本地存储  σ k .

                                                          ′
                                                    Sig (w ) = σ k = sk k ·w ′                       (14)
                                                      sk k
                     A S  共需要接收到   个有效签名        {          }                    {             }  计算盲化后
                                  t          (用   σ i 1  ,σ i 2  ,...,σ i t−1   表示), 使用  t  个有效签名   σ i 1  ,σ i 2  ,...,σ i t−1 ,σ S
                          σ , 如公式  (15) 去盲化后得到封装签名.
                           ∗
                 的封装签名
                           w

                                                             −1
                                                        σ w = β ·σ ∗                                 (15)
                                                                w
                       A S  计算验证等式  e(σ w ,P) = e(H (w),PSK) 是否成立; 若等式不成立, 则  σ w  计算错误; 否则,  A S  可根据公式  (16)
                 计算强化关键词.

                                                      sd w = F 2 (h(σ w ),w)                         (16)
                                  ∗
                       A S  随机选取  χ ∈ Z , 根据公式  (17)、(18) 计算强化关键词的密文并将        发送给  C.
                                                                          C sd w
                                  p
                                                     τ = e(H 1 (sd w ),χQ D )                        (17)
   440   441   442   443   444   445   446   447   448   449   450