Page 441 - 《软件学报》2025年第8期
P. 441
3864 软件学报 2025 年第 36 卷第 8 期
函数 TimeDB(w) 输出包含关键词 w 的最新文件及这些文件添加到数据库的时间戳 (不包含删除过的文件),
可以将其定义为:
TimeDB(w) = {(tsp,ind) | (tsp,add,(tsp,ind)) ∈ Q∧∀tsp ,(tsp ,del,(w,ind)) < Q}.
′
′
函数 DelHist(w) 输出关键词 w 的删除历史, 它包含与 w 相关的文件被添加到数据库的时间戳以及被删除的
时间戳, 可将其定义为:
del
DelHist(w) = {(tsp ,tsp ) | ∃ind : (tsp ,add,(w,ind)) ∈ Q∧(tsp ,del,(w,ind)) ∈ Q}.
add
add
del
基于上述泄露函数, 后向隐私 [25] 可定义如下.
定义 3. 一个 DSSE 方案满足后向隐私安全, 当且仅当更新泄露函数 L Upd 与搜索泄露函数 L Src 可写为如下 3
h
t
种形式, 其中, a w 表示所有添加的文件, L''表示无状态函数:
Type-I: L Updt (op,w,ind) = L (op) L Srch (w) = L (TimeDB(w),a w ).
′′
,
′
′′
Type-II: L Updt (op,w,ind) = L (op,w) L Srch (w) = L (TimeDB(w),Updates(w)).
′
,
,
Type-III: L Updt (op,w,ind) = L (op,w) L Srch (w) = L (TimeDB(w),DelHist(w)).
′′
′
2.5 可证明安全
可证明安全 (provable security) [50] 是一种基于规约的安全性证明方法, 用来证明一个方案或协议可在某个敌手
模型下实现特定的安全目标. 具体来讲, 该方法的证明流程为: 首先确定协议的安全目标, 其次为协议提供正式的
安全性定义, 然后根据敌手的攻击能力构建敌手模型, 最后, 将攻击者成功攻破目标的过程规约为解决极微本原,
即某些数学难题. 在此过程中, 如果敌手能够攻破目标, 就说明方案中某些困难问题已被破解, 也就是说, 只要我们
相信这些极微本原在一定时间内无法被敌手攻破, 那么该协议就是安全的.
在安全性证明的过程中, 协议的安全可以形式化为攻击者与挑战者之间的游戏过程. 若攻击者攻破目标的概
率是忽略不计的, 则证明该协议是安全的. 该过程首先定义一个实际游戏, 然后根据极微本原对游戏进行一系列改
动, 得到一个游戏序列, 推断出两个相邻游戏等价或者以忽略不计的概率近似, 并根据该游戏序列的最后一个游戏
来得出方案是否安全的结论.
一般来说, 在可证明安全中, 随机预言模型是指理想的哈希函数, 即该函数满足一致性、可计算性以及均匀分
布性. 在用于证明协议安全时, 随机预言模型可以被看作是一个随机函数. 在构造安全方案时, 系统的所有参与者
在初始化过程中都共享该模型. 方案构造完成后, 设计者利用理想的哈希函数来代替随机预言模型. 在证明过程
中, 协议的参与者都能够对模型进行访问, 若攻击者能够在模拟环境中以不可忽略不计的概率攻破目标, 则攻击者
就能解决某些困难问题, 但是这就造成了与证明的前提假设相矛盾, 从而证明协议是安全的.
3 具有鲁棒性的前后向隐私联合查询 DSSE 方案: RFBC
基于布隆过滤器和轻量级对称密码, 本节提出一个具有鲁棒性的前后向隐私联合查询 DSSE 方案 RFBC, 下
面我们详述 RFBC 的设计目标、方案细节及其安全性分析.
RFBC 的结构模型如后文图 2 所示, 客户端使用私钥对关键词和包含该关键词的文件加密, 当客户端对服务
器发起包含多个关键词的联合查询时, 服务器会根据该联合查询返回对应的文件, 最后, 客户端再用自己的私钥对
其文件进行解密.
3.1 RFBC 的安全目标
首先, 我们介绍具有鲁棒性的前后向隐私联合查询方案的安全性及功能性目标. 一个动态的联合对称可搜索
加密方案具有如下性质: (1) 前向隐私: 无法将当前的更新与过去的查询链接起来, 换句话说, 当前的更新不会泄露
过去的联合查询的隐私, 也就是服务器不知道当前添加的关键字之前是否搜索过; (2) 后向隐私: 后续的联合查询
不能链接到过去删除的文件, 即当前的搜索不会泄露过去更新 (添加或删除) 的隐私, 也就是说服务器不知道更新
(添加或删除) 历史; (3) 鲁棒性: 在添加或删除关键词对应的文件时, 服务器会筛选出客户端的不合理更新请求, 保

