Page 443 - 《软件学报》2026年第2期
P. 443
922 软件学报 2026 年第 37 卷第 2 期
2) OSign(x,r) → σ: 对于 i ∈ [1,n]/T , A 选择 x,r 进行查询, 预言机输出签名 , A 的请求次数为 q.
σ i
3) ORetriSerPsw(c) → sp c : A 适应性地选择 c 进行查询, 预言机输出 App 派生密钥 sp c .
4) ORetriSerKw(w) → C sd w : A 适应性地选择关键词 w, 预言机输出对应的强化关键词密文 C sd w .
5) OTrapdoor(w) → td w : A 适应性地选择关键词 w, 预言机输出对应的陷门 td w .
(
A 随机选取 c 0 ,c 1 ,w 0 ,w 1 发送给 . b ∈ {0,1} 并输出 C sd w b ,td w b , σ 1 A 1 对 w b 的签名); 若 b = 0, 输出
ε ε 随机选取
′ ′ .若 能够输出 q < t −t , 或 b 满足
′
′
; 若 b = 1, 输出 A c 的有效签名且 A 对 b 的猜测
sp c b sp c b = F (c b ),F ∈ Func Z p
|Pr[b −b]−1/2| 不可忽略, 则 A 在 CADCsound 中获胜, CADCsound A (ℓ) = 1; 否则, A 在 CADCsound 中失败,
′
CADCsound A (ℓ) = 0. A 在 CADCsound 中获胜的概率定义为 Pr[CADCsound A (ℓ) = 1].
2.4 设计目标
本文的目标是构建一种云辅助的面向跨信任域 App 的数据流转的安全保护方案, 需要设计 CADC 系统实现
以下目标.
1) 功能性. App 能够对用户进行身份验证, 用户只需要维护长效口令即可授权设备并使用设备通过 App 的认
证, 使用相关服务; 在用户的授权下, 用户数据能够在各 App 间流转, App 可向用户请求数据流转, 由用户检索数
据并将其中允许共享的数据发送给请求数据的 App; 云存储服务器可以通过陷门与检索关键词密文的匹配检索
数据.
2) 安全性. CADC 应当能够有效抵御来自敌手的窃听攻击、离线 DGA 攻击和离线 KGA 攻击. 破坏一个或多
个 (不超过门限值) App 无法破坏 CADC 的安全.
3) 高效性. 用户的计算开销和通信开销应尽可能小, 各 App 和云存储服务器的存储开销应尽可能低.
3 具体方案
3.1 方案构建
Setup(ℓ) → pp: 系统初始化算法. 在系统初始化阶段, 根据安全参数 ℓ, 确定系统的公共参数集 PP = {p,P,G,
G T ,e,h,h 1 ,h 2 ,H,H 1 ,H 2 ,E,D,Sig,F 1 ,F 2 ,t,n}. 其中, G 是一个加法循环群, G T 是一个乘法循环群, 它们的阶都为素数 p,
∗
,
∗
P 是 G 的生成元, e : G×G → G T 是一个双线性映射, h : G → Z p ,h 1 ,h 2 : {0,1} → Z p H,H 1 : {0,1} → G 以及 H 2 : G T →
( lg p)
{0,1} 是安全的哈希函数, Z p 为整数关于模 p 的加法群, E/D 是一种安全的对称加/解密算法 (如 CTR[AES]),
Sig 是一种安全的签名算法 (如 BLS 签名), F 1 : Z p ×Z p → Z p 以及 F 2 : Z p ×{0,1} poly(ℓ) → {0,1} poly(ℓ) 是伪随机函数, w 为
ℓ
t
数据检索关键词, 与外包存储数据的内容相关, poly(ℓ) 为一个关于 的多项式, 用于表示 w 的长度, 是门限值, n
是 App 的总数.
MasterKeyGen(ℓ,n,t) → (s,PS, s i ,PS i ). 作为分布式服务器的 App 运行执行分布式秘密共享协议 (算法 1).
算法 1. 分布式秘密共享协议.
参数说明: ℓ: 安全参数; {1,...,n}: App 的索引; t: 门限值; i: 执行该算法的 App 的索引.
确保: 所有 App 共享一个服务器端密钥 s 和相应的公钥 PS ; 对于 i = 1,2,...,n S i 计算子密钥 s i 和相应的子公钥 PS i .
,
∗ f i (x) = a i,0 +a i,1 x+...+a i,t−1 x t−1
1. 每一个 S i (i = 1,2,...,n) 随机选取参数 a i,0 ,a i,1 ,...,a i,t−1 ∈ Z 构造一个 t −1 阶多项式
p
∈ Z p , 使得 f i (0) = a i,0 ;
2. S i 计算 a i,0 P、 a i,τ P(τ = 1,2,...,t −1) 并公开, S i 计算 f i ( j) 并通过安全信道发送给 S j ( j = 1,2,...,n; j , i);
∑ t−1
γ
3. S i 收到 f j (i) 后验证等式 f j (i)P = i ·a j,γ P 是否成立; 若验证通过则接受 f j (i); 否则拒绝;
γ=0
∑
n ∑ n
4. S i 的子密钥 s i = f γ (i), 其对应的子公钥 PS i = s i P. 在 App {S 1 ,S 2 ,...,S n } 间共享的私钥 s = a i,0 , 相应公
γ=1 i=1
∑
n
钥 PS = a i,0 P.
i=1

