Page 446 - 《软件学报》2026年第2期
P. 446
张源 等: 以用户为中心的云辅助跨应用数据安全流转 925
= (χP,H 2 (τ)) (18)
C sd w
C 生成 data 的密文 C data 与 C sd w 相对应的索引表如表 1 所示.
表 1 数据-关键词索引表
强化关键词密文 数据密文 数据存储地址
C sd w 1 C data1 ,...,C datap addr 1 ,...,addr p
C sd w 2 C data2 ,...,C dataq addr 2 ,...,addr q
··· ··· ···
C sd w n C datan ,...,C datam addr n ,...,addr m
Trapdoor(w) → td w : 陷门计算算法. 在数据请求阶段, 请求数据流转的 A R 表示, A R ∈ {A 1 ,A 2 ,...,A n }) 产生
App (用
,
,
用于数据请求的公私钥对 (K d ,S d ) A R 向 U 的登录设备 D 发送包含 w 和 K d 的数据请求 E K R (quest) D 计算 D S R (quest)
获得 w, 随后与 个 t App 交互获取 sd w , 这一过程与数据外包存储阶段中 A S 执行的过程相同. D 根据公式 (19) 计算
陷门并发送给 C.
td w = αH 1 (sd w ) (19)
Test(td w ) → C data : 数据检索算法. C 获取 td w 后验证等式 H 2 (e(td w ,χP)) = H 2 (τ) 是否成立; 若等式不成立, 拒绝
该操作; 否则, C 将 C sd w 对应的所有 C data 发送给 D.
( ( ))
,
′ ′
U 计算 D S R (C data ) 后对其中允许进行共享的 data 计算 Sig E K d data 发送给 A R A R 解密后获取数据.
S S
3.2 正确性证明
为了证明方案的正确性, 需要从以下两方面完成证明.
首先, 需证明用户只需要安全存储长效口令, 即可通过 App 的身份验证.
在登录阶段, 用于证明用户身份的用户凭证为 sp i = h 2 (sp u ||i), 其中 sp u 为 App 派生密钥, 具体地, sp u = F 1 (h 1 (σ u ),
psw u ), 其中 σ u = kH (psw u ) 本质上是一个 BLS 签名 [55] , 即 σ u 是一个确定性签名. 因此, 只要 U 拥有正确的 psw u ,
就可以计算出确定性的 App 派生密钥 sp u , 进而得到其用户凭证 sp i 来通过 App 的身份认证.
其次, 需证明对于不同的 App 集合 (即 T = A i 1 ,A i 2 ,...,A i t } ,A S < T ) 的选择, 相同关键词的强化关键词相同, 这
{
依赖于签名封装算法的正确性.
t 个 App σ w 可以表示为如下形式:
具体地, 为简洁起见, 假设 产生了 t 个有效签名 {σ 1 ,σ 2 ,...,σ t }, 则
∑ t
σ w = r −1 w i σ i
i=1
∑ ∏
t j
−1 ·w ′ (20)
= r s i
i=1 j−i
1⩽ j⩽t,j,i
−1
= r ·r · s· H (w) (21)
= s· H (w)
基于拉格朗日插值, 公式 (20) 和 (21) 成立.
4 安全性分析
本节形式化地证明了 CADC 对半诚实的 App 和云存储服务器的可靠性. 首先, 引出定理 1–定理 3 以及引理 1、
引理 2, 并完成证明. 其次, 基于定义 1, 在定理 4 中描述了 CADC 的可靠性. 根据定理 1–定理 3 及引理 1、引理 2
的正确性, 可以完成对定理 4 的证明. 具体的定义及证明过程如下.
定义 2. 遵循现有工作中针对选择关键词猜测攻击 (SS-CKGA) 的语义安全的安全定义 [53] , SS-CKGA 安全游
戏由一个敌手 A 与挑战者 B 之间进行的交互挑战定义如下.
1) 初始化: 环境 ε 初始化该方案, 向 B 发送 pk R (Q D ), sk R (α),Q(PKS ), 向 A 发送 pk R ,Q.
2) 问答阶段 1: A 可以适应性地向 B 请求任意关键词 w 的陷门或强化关键词密文.

