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)

