安全细粒度查询结果验证方案解析
在数据查询场景中,确保查询结果的正确性和完整性至关重要。为了实现这一目标,我们将介绍一种基于抗碰撞伪随机函数构建验证对象的方案,该方案能在保证实用性的同时保护数据隐私。
1. VO - I 构建与验证
VO - I 用于验证查询结果集 $R(w)$ 中每个数据文件的正确性。
1.1 构建步骤
- 数据所有者针对集合 $C(w)$($w \in W$)生成一个 $m$ 位的数组 $VO(w)$,它代表布隆过滤器。
- 对于 $C(w)$ 中的每个加密文件 $C$,使用数据所有者和数据用户共享的密钥 $k$,通过安全且抗碰撞的哈希函数计算哈希消息认证码 $HMAC(k, C)$。
- 选择 $l$ 个独立的哈希函数 $h_1, h_2, \cdots, h_l$,其范围为 $[0, m - 1]$,对 $HMAC(k, C)$ 进行哈希运算,并将 $VO(w)[h_i(HMAC(k, C))]$($1 \leq i \leq l$)置为 1。
- 对于每个 $C(w_i)$($w_i \in W$,$1 \leq i \leq d$),重复上述操作,构建验证对象集 $OV(W) = {OV(w_i)|w_i \in W, 1 \leq i \leq d}$。这里,$HMAC - MD5$ 是 $HMAC$ 的一个不错实现。
1.2 填充操作
由于 $VO(w)$ 中 1 的总数与 $C(w)$ 的大小密切相关,为避免云服务器通过统计分析猜测包含关键字 $w$ 的数据文件数量,需要进行填充操作:
超级会员免费看
订阅专栏 解锁全文
1082

被折叠的 条评论
为什么被折叠?



