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

