利索能及
我要发布
收藏
专利号: 2025106376011
申请人: 南京信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种具有前后向隐私的动态可搜索加密方法,其特征在于,方法包括以下步骤:获取加密数据,基于虚拟二叉树VBTree对加密数据进行存储,生成加密数据库;

基于预先构建的版本控制库对加密数据库进行管理以实现动态可搜索加密的前向隐私,基于预先构建的布隆过滤器BF对加密数据库的数据删除进行记录,以实现可搜索加密的后向隐私;基于缓存机制对加密数据库的搜索结果进行记录,得到处理后的加密数据库;

所述预先构建的版本控制库如下:

给定关键字w,第v个版本记为w||v,第v个版本陷门记为FKs(w||v),历史搜索查询和更新由版本控制库来管理;

版本控制库:动态对称可搜索加密方案的版本控制库包括本地存储库LR和云存储库CR,LR是一个本地哈希表,CR是云哈希表;

在客户端,LR(w)表示关键字w的使用信息,客户端包括数据所有者和数据用户,所有者和用户共享相同的LR,对于每个关键字w,LR(w)有三个属性,b,Vl,nl,如下:LR(w).b表示数据用户是否查询过关键字w的最新版本,LR(w).b的初始状态为false,表示此关键字最新版本未泄露,若搜索过关键字w,则LR(w).b设置为true,表示关键字已根据搜索模式泄露到云服务器端;

LR(w).Vl表示关键字w的最新版本;

L.R(w).nl表示最后一个匹配关键字w的文件标识符;

在云服务器端,CR被看作多个加密的单链表,设H2和H3为不同的随机预言机,CR中的加密项为键值形式(H2(FKs(w||i||v)),H3(FKs(w||i||v))⊕FKs(w||iold||(v‑1))),云服务器使用当前陷门获得前一个陷门以搜索所有结果,云服务器无法从第v个版本推导出v+1个版本的陷门,依此保护动态可搜索加密的前向隐私;

所述基于预先构建的布隆过滤器BF对加密数据库的数据删除进行记录的过程包括:使用布隆过滤器BF来记录加密数据的删除,若对(w,id)执行删除操作,只需计算此项的t,其中t=FKt(w,id),利用k个哈希函数将其映射到二进制向量的k个位置,将位置上的值设为1,实现元素添加到BF之中;

执行搜索时,再次利用k个哈希函数计算t对应到二进制向量的k个位置,检查位置上的值是否都为1,若全为1则说明关键字w及其对应文件id的t存在于BF之中,则执行过删除操作,不返回此id;

将处理后的加密数据库基于多种复杂查询进行查询,其中,所述复杂查询包括连接查询、布尔查询和范围查询,得到最终查询结果。

2.根据权利要求1所述的一种具有前后向隐私的动态可搜索加密方法,其特征在于,所述基于虚拟二叉树VBTree对加密数据进行存储以自顶向下的方式将索引元素组织到虚拟二叉树VBTree中;

预先构建的版本控制库包括本地存储库和云存储库,所述复杂查询可转化为查询单关键字所对应的所有文件,之后对多个关键字的结果集取交集为连接查询、并集为范围查询或检查某个文件是否存在于结果集中为布尔查询。

3.根据权利要求2所述的一种具有前后向隐私的动态可搜索加密方法,其特征在于,所述虚拟二叉树VBTree有以下属性:L L‑1

全二叉树:全二叉树是具有2‑1个树节点和2 个叶子的二叉树,其中L是树的高度;

Path(V):给定树节点V,Path(V)表示由从树根开始到当前节点V的所有树分支连接而成的字符串;

L‑1

Nodes(i):设i∈[0,2 ‑1],leafi表示树中的第i片叶子,Nodes(i)表示从根到叶的所有遍历节点的集合;

VBTree存储在哈希表中,如下所示:

每个树节点包含零个或多个不同的加密关键字,

哈希表只存储加密的关键字,不存储任何树节点和树分支,

L‑1

为索引文件标识i的关键字w,其中i∈[0,2 ‑1],将关键字插入Nodes(i)的每个树节点;

哈希表上的元素为:

{(H 1(Path(V)||FKs(w||i||v)),t)}V∈Nodes(i)其中,t=FKt(w,id),F为键控伪随机函数,H1为随机预言机,V是含有关键字w的树节点,Ks,Kt是数据所有者的一组密钥,w为关键字,id为文件标识符,v是关键字w的版本号,i是关键字w的搜索次数。

4.根据权利要求1所述的一种具有前后向隐私的动态可搜索加密方法,其特征在于,所述基于缓存机制对加密数据库的搜索结果进行记录的过程:利用缓存器cache对单关键字的搜索结果进行记录,此次搜索只需查询到上次与本次搜索两次搜索之间新插入的数据,然后在cache中获取上次搜索的结果,获得两者结果之和后,一一检查t是否存在于BF之中,筛掉存在于BF之中的数据,将属于两次搜索结果之和且不存在于BF之中的id进行返回,并更新cache中的数据为返回的搜索结果。

5.根据权利要求1所述的一种具有前后向隐私的动态可搜索加密方法,其特征在于,所述连接查询时,若要对共同包含关键字w1,w2的文件进行查询,最后返回结果集,即对每个关键字进行查询,获得包含此关键字且未被删除的文件id,最后对所有关键字的查询结果取交集即为连接查询的结果;

在进行布尔查询时,若要查询标识符为id1的文件是否包含关键字w1,即对所有包含关键字w1的文件进行查询并返回结果集,最后检查id1是否包含在结果集中;

在进行范围查询时,若要对大于等于a小于等于d的关键字w进行查询,先找到大小符合要求的关键字,设w1,w2符合要求,然后对包含关键字w1,w2的文件进行查询,最后返回文件id,即对每个关键字进行查询,获得包含此关键字且未被删除的文件id,最后对所有关键字的结果集取并集即为范围查询的结果。

6.一种具有前后向隐私的动态可搜索加密系统,采用了权利要求1至5中任一项所述的一种具有前后向隐私的动态可搜索加密方法,其特征在于,包括:数据存储模块,用于获取加密数据,基于虚拟二叉树VBTree对加密数据进行存储,生成加密数据库;

前后向隐私模块,用于基于预先构建的版本控制库对加密数据库进行管理以实现动态可搜索加密的前向隐私,基于预先构建的布隆过滤器BF对加密数据库的数据删除进行记录,以实现可搜索加密的后向隐私;基于缓存机制对加密数据库的搜索结果进行记录,得到处理后的加密数据库;

复杂查询模块,用于将处理后的加密数据库基于多种复杂查询进行查询,其中,所述复杂查询包括连接查询、布尔查询和范围查询,得到最终查询结果。

7.一种终端设备,包括存储器、处理器及存储在存储器中并能够在处理器上运行的计算机程序,其特征在于,所述存储器中存储有能够在处理器上运行的计算机程序,所述处理器加载并执行计算机程序时,采用了权利要求1至5中任一项所述的一种具有前后向隐私的动态可搜索加密方法。

8.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器加载并执行时,采用了权利要求1至5中任一项所述的一种具有前后向隐私的动态可搜索加密方法。