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

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


                    各  App (后文中用   A i  表示, 其中  i = 1,2,...,n) 执行分布式秘密共享协议, 得到其密钥共享        k i = s i , 相应公钥
                 PK i = PS i , App  端公钥为  PK = PS .
                                                                                    .
                      Sign(x,r) → σ: 签名算法. 用户  U  生成用户名   ID u 、不可复用的长效口令       psw u U  均匀一致地选取参数
                 r ∈ Z , 如公式  (1) 计算盲化口令并将   ( ID u , psw ∗ u  )   发送给  A i (i = 1,2,...,n).
                    ∗
                    p

                                                         ∗
                                                      psw = r · H (psw u )                            (1)
                                                         u
                              ,
                    对于   i ∈ [1,n] A i  检查本地存储中  ID u  是否已存在; 若已存在, 返回  U  身份重复; 否则,   A i  存储  ID u , 如公式  (2)
                                                             )
                                                         (
                                                                        )
                                                                 (
                 计算其对盲化口令的签名并发送给  .                     e σ ,P = e psw ,PK i  是否成立; 若等式成立, 则  σ  有效; 否则,
                                                                                               ∗
                                                           ∗
                                                                    ∗
                                            U U  检查等式
                                                                                               i
                                                                    u
                                                           i
                        ∗
                 U  拒绝  σ .

                        i
                                                      (   )
                                                              ∗
                                                         ∗
                                                   Sig psw = σ = k i · psw ∗                          (2)
                                                         u    i      u
                     Encap(σ 1 ,σ 2 ,...,σ t ) → σ: 签名封装算法  (算法  2).

                 算法  2. 签名封装算法.
                 参数说明:   ℓ: 安全参数;  {1,...,n}: 服务器的索引;  t: 门限值.
                 确保: 收到  t 个来自服务器的有效签名        {σ 1 ,σ 2 ,...,σ t } 后,   U  可计算签名  σ.
                                  ι
                             ∏
                 1.  U  计算  w η =   ;
                                 ι−η
                            1⩽ι⩽t,ι,n
                                    t ∑
                 2.  U  计算封装签名  σ =  w η σ η
                                   η=1
                                 σ  后 ∗   ∗     ∗  ∗                            σ , 根据公式   (3) 去盲化后得到
                                                                                  ∗
                    收到   t 个有效的   i  (用  {σ , σ ,...,σ } 表示),   U  计算封装后的盲化口令签名   u
                                             2
                                          1
                                                  t
                 封装后的口令签名.

                                                             −1
                                                        σ u = r ·σ ∗                                  (3)
                                                                u
                     RetriSerPsw(σ u , psw u ) → sp u : App  派生密钥生成算法.   e(σ u ,P) = e(H (psw u ),PK) 是否成立; 若等
                                                               U  检查等式
                 式不成立, 则   σ u  计算错误; 否则, 根据盲化口令的签名,       U  根据公式  (4) 计算  App  派生密钥.

                                                    sp u = F 1 (h 1 (σ u ), psw u )                   (4)
                                 ,
                    对于  i = 1,2,...,n U  根据公式  (5) 计算凭证发送给  ,       sp i  并对应  ID u , 完成用户注册.
                                                           A i A i  存储

                                                       sp i = h 2 (sp u ||i)                          (5)
                 用户完成注册后, 为便于后续通过设备在             App  进行安全便捷的登录与使用, 用户需要对设备进行授权.
                                                                                    ,
                      Auth(sp i ,K D ,K R ) → Aut i : 设备授权算法.   U  生成两对安全的短效公私钥对  (K D ,S D ) (K R ,S R ) 并存储在待授权
                                                    ∗
                 设备  D 上, 随后,  U  均匀一致地选取参数     α ∈ Z , 如公式  (6) 计算盲化口令并将    ( ID u , psw ′  )   发送给  A i (i = 1,2,...,n).
                                                    p                               u

                                                      psw = α· H (psw u )                             (6)
                                                        ′
                                                        u
                                                                                      }
                                 ,
                                                                                             U
                                                                                    ′
                    对于  i = 1,2,...,n A i  根据公式  (7) 计算其对盲化口令的签名, 随机选取     r i ∈ Z p , 将   { σ ,r i  发送给  .
                                                                                    i
                                                      (   )
                                                              ′
                                                   Sig psw = σ = k i · psw ′ u                        (7)
                                                         ′
                                                              i
                                                         u
                                         (   )   (       )
                                                                                                      t
                                                                               ′
                                                                                                ′
                               ′           ′         ′                        σ  有效; 否则,       σ . 收到   个
                      U  获取  r i  和  σ , 检查等式  e σ ,P = e psw ,PK i  是否成立; 若等式成立, 则      U  拒绝
                               i           i         u                         i                i
                                                                  ′
                        ′    ′  ′    ′                           σ , 根据公式
                 有效的  σ , 即  {σ ,σ ,...,σ } 后,  U  计算封装后的盲化口令签名            (8) 去盲化后得到封装后的口令签名.
                        i    1  2    t                            u

                                                             −1
                                                        σ u = α ·σ ′                                  (8)
                                                                u
                    U  检查等式   e(σ u ,P) = e(H (psw u ),PK) 是否成立; 若等式不成立, 则  σ u  计算错误; 否则, 根据盲化口令的签名,
                 U  根据公式   (4) 计算  App  派生密钥  sp u . 对于  i = 1,2,...,n U  根据公式  (5) 计算凭证   sp i  并发送  E sp i  (r i ,K D ,K R )  给
                                                              ,
                  ,
                 A i A i  解密并获取  , 验证   r i  是否正确; 若解密失败或  r i  错误,  A i  拒绝该操作; 否则,  A i  根据公式  (9)、(10) 计算证书
                               r i
                 签名并将   EAutToken i  发送给  ,        K D 、 K R 、 U  的信息、过期时间以及其他辅助信息.
                                       U Token 中包含

                                                     Aut i = k i · H (Token)                          (9)
   439   440   441   442   443   444   445   446   447   448   449