高效布尔搜索:加密数据下的低泄漏方案
在当今数字化时代,数据安全与隐私保护至关重要。特别是在处理加密数据时,如何进行高效的布尔搜索并减少信息泄漏成为了研究的热点。本文将深入探讨支持布尔查询的相关技术,包括CNF查询的处理、布尔加密多映射的概念、安全定义以及ConjFilter的构造等内容。
1. CNF查询处理
传统的BIEX构造在处理CNF查询时,会泄漏单例查询的体积信息。例如,对于CNF查询 $D_1 \land \cdots \land D_{\ell}$,其中 $D_i = (\ell_{i,1} \lor \cdots \lor \ell_{i,q_i})$,BIEX在计算 $MM[D_1]$ 时,会泄漏 $q_1$ 个单例查询的体积。为了避免这种泄漏,CNFFilter采取了不同的策略。
CNFFilter将前两个子句 $D_1 \land D_2$ 进行重写:
[
D_1 \land D_2 = (\ell_{1,1} \lor \cdots \lor \ell_{1,q_1}) \land (\ell_{2,1} \lor \cdots \lor \ell_{2,q_2}) = \bigvee_{i \in [q_1], j \in [q_2]} (\ell_{1,i} \land \ell_{2,j})
]
这样,$D_1 \land D_2$ 就变成了 $q_1q_2$ 个2 - 合取查询的析取。通过对这些2 - 合取结果集应用析取计算算法,得到 $S_2 := MM[D_1 \land D_2]$。虽然所有2 - 合取集的体积会被揭示,但单例查询的体积不会泄漏。
接着,使用过滤算法将剩余的子句 $D