一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种支持数据库动态更新的隐私保护子图同构查询方法

2022-11-30 10:52:13 来源:中国专利 TAG:


1.本发明属于信息安全技术领域,特别是涉及一种支持数据库动态更新的隐私保护子图同构查询方法。


背景技术:

2.图形作为一种重要的数据结构,用来描述具有内在相关性的数据之间的关系,在众多领域中得到了广泛的应用。例如,pubchem和chebi作为广泛使用的化学分子数据库,以图形的形式存储化学分子。子图查询是图形数据库中一种重要的图形查询操作。广泛用于社会网络中的人际关系查询和化学分子数据库中含有特定结构的化合物查询。在社交网络中,爱好相同的人往往有相似的人际关系。广告提供商利用子图查询快速准确地找到目标用户,有效地提高了信息推送的效率。在化学领域,子图查询可以帮助人们猜测化合物的功能,找到具有相同性质的化合物。
3.对于查询图,子图查询是指在图形数据库中查找包含查询图的图形。一个最直接的解决方法是逐个检查询图和数据库中的图(称为数据图)的子图同构。然而,检查子图同构是一个np完全问题。完成子图查询是非常昂贵的。为了降低子图查询的开销,提出了一些基于索引的解决方法。大多数解决方法遵循“过滤验证”原则,该原则包括两个阶段:过滤和验证。他们从数据图中提取子图(特征)来构建索引。在过滤阶段,这些解决方法过滤出大量明显不包含查询图的数据图,并获得包含查询图所有特征的数据图。例如,查询图中包含有着特定标签的点和边。通过事先删除不包含这些点和边的数据图可以有效减少子图同构检测的次数。在验证阶段,只需将剩余的数据图与查询图进行比较。“过滤验证”原则大大提高了子图查询的效率。
4.由于子图同构的复杂性和图形数据规模的不断扩大,数据所有者将这些图形数据存储在本地并为用户提供子图查询服务变得越来越困难。相比之下,云服务器拥有大量的存储空间和计算资源。云服务提供商通常配备高性能设备,可以提供多种服务。越来越多的数据所有者选择将大量图数据外包给云服务器,让云服务器帮助他们完成复杂的查询操作。得益于云服务器,数据所有者不再需要拥有大量用于存储和计算的硬件。尽管如此,它给在云服务器上存储图形带来了新的安全问题。外包数据通常包含一些应当受到保护的私人信息。云服务器可能受到内部或外部攻击。数据泄漏将给数据所有者带来巨大损失。并且,数据所有者也无法完全信任云服务器。出于隐私保护的目的,这些数据在上传到云之前必须进行加密。一旦数据被加密,普通的子图查询方法就不再有效了。
5.随着科研的不断深入,越来越多的图信息产生,图数据库需要通过不断更新来向其中添加新的数据。之前的意思保护子图同构查询方法往往忽视了图数据库和查询索引的更新。之前的安全子图同构查询方法在面对数据库更新时,很多需要重新构建加密索引,这一过程是十分缓慢并且代价高昂的。所以提出能够支持数据库动态更新的隐私保护的子图同构查询是十分具有挑战性的。


技术实现要素:

6.为解决上述问题,本发明提供了如下方案:一种支持数据库动态更新的隐私保护子图同构查询方法,包括:
7.获取待查询图形的第一图形特征与图数据库的第二图形特征,基于所述第二图形特征建立树状索引,利用安全特征向量匹配方法对所述树状索引进行加密,获得密文下的匹配查询;
8.基于所述密文下的匹配查询与所述待查询图形的第一图形特征进行子图同构查询,获得查询结果。
9.优选地,利用安全特征向量匹配方法对所述树状索引进行加密,获得密文下的匹配查询的过程包括,
10.对所述图数据库进行加密获得加密数据库;
11.提取所述图数据库的第二图形特征生成第二特征向量,基于所述第二特征向量建立索引,对所述索引进行加密获得加密索引;
12.将所述加密数据库与所述加密索引上传至云服务器,获得密文下的匹配查询。
13.优选地,提取所述图数据库的第二图形特征生成第二特征向量,基于所述第二特征向量建立索引,对所述索引进行加密获得加密索引的过程包括,
14.为所述图数据库中的每个数据图生成一个n位的全0的特征向量;利用枚举算法,提取所述数据图中小于预设阈值的子树和循环作为第二图形特征;对所述第二图形特征进行编码并利用hash算法将所述第二图形特征映射到特征向量上,获得第二特征向量;
15.根据k-means聚类算法和所述第二特征向量对所述数据图进行分组后建立查询索引树;对所述查询索引树每个节点的节点向量和特征向量分别进行加密获得密文索引树。
16.优选地,对所述查询索引树中节点的特征向量进行加密的过程包括,将节点的特征向量中的1,0分别进行替换,获得第一替换特征向量;对所述第一替换特征向量进行拆分,获得第一拆分向量、第二拆分向量;通过可逆矩阵对所述第一拆分向量、第二拆分向量进行加密,获得加密特征向量存储于密文索引的节点中。
17.优选地,对所述索引进行加密获得加密索引的过程中还包括生成加密秘钥;
18.所述加密秘钥包括第一部分m1、第二部分m2、第三部分s、第四部分ρ;
19.所述第一部分m1、第二部分m2为随机的n阶可逆矩阵;
20.所述第三部分s为一个随机的n阶0,1向量;
21.所述第四部分ρ为一个n阶随机向量。
22.优选地,基于所述密文下的匹配查询与所述待查询图形的第一图形特征进行子图同构查询,获得查询结果的过程包括,
23.基于待查询图形的第一图形特征生成第一特征向量,根据所述第一特征向量生成查询陷门并将所述查询陷门发送至云服务器,云服务器运行查询算法在加密索引中进行查询,获得初始查询结果;
24.基于对应的验证算法对所述初始查询结果进行验证,获得目标查询结果。
25.优选地,根据所述第一特征向量生成查询陷门的过程包括,将第一特征向量中的1,0分别进行随机值替换,获得第二替换特征向量;对所述第二替换特征向量进行拆分,获得第三拆分向量、第四拆分向量;基于第二特征向量与第三拆分向量、第四拆分向量获得第
五拆分向量;
26.根据第三拆分向量、第四拆分向量、第五拆分向量生成所述查询陷门。
27.优选地,云服务器运行查询算法在加密索引中进行查询,获得初始查询结果的过程包括,
28.云服务器判断节点与查询陷门是否匹配,
29.若匹配节点是叶子节点时,对所述叶子节点下的特征向量表中的特征向量进行逐个匹配,将匹配通过的放入候选集;若匹配失败,放弃对子节点的搜索直至找到所有匹配的叶子节点,获得初始查询结果。
30.优选地,所述查询方法还包括在获得查询结果后对图数据库和索引的动态更新;
31.所述图数据库和索引的动态更新过程包括,将待更新数据包发送给云服务器进行图数据库更新;基于待更新数据包,云服务器执行定位算法定位需要更新的索引节点;判断所述需要更新的索引节点是否需要修改节点向量,若是,进行修改,云服务器完成索引与图数据库的同步更新;否则,云服务器将需要修改的节点发送给数据所有者,数据所有者将需要修改的节点解密后对节点向量进行修改,加密获得新的节点并发送至云服务器,完成索引与图数据库的同步更新。
32.优选地,所述图数据库和索引的动态更新包括向加密索引中添加新的特征向量、删除加密索引中的特征向量、修改索引中的特征向量;
33.所述向加密索引中添加新的特征向量的过程包括:
34.为要添加的新的特征向量生成更新数据包并发送给云服务器,云服务器通过查询算法为新的特征向量选取合适添加的位置;所述新的特征向量如果能成功匹配到叶子节点,则直接向所述叶子节点添加新的特征向量;如果无法匹配到叶子节点,则从所有能匹配的节点中选取一个离叶子节点最近的索引节点,将所述新的特征向量添加至相应的叶子节点,并修改索引节点到相应的叶子节点这一路径上的所有节点;
35.所述删除加密索引中的特征向量的过程包括,
36.将需要删除的特征向量的编号写入更新数据包,并发送给云服务器,云服务器找到对应的特征向量并删除。
37.本发明公开了以下技术效果:
38.本发明针对需要不断更新的图数据库,提出一种基隐私保护的子图同构查询方法,可以实现给定一个查询图,找到数据库中所有包含查询图的图,并且当数据库更新时,加密索引可以同数据库一起同步更新。针对子图同构查询,提取数据库中图的特征并建立树状索引。为了保护索引的隐私性,利用安全特征向量匹配方法对索引进行加密并实现密文下的匹配查询。本发明将子图同构查询分成了两阶段进行。第一阶段,云服务器快速地通过索引对数据库进行过滤。在该阶段,大量不符合要求的数据图被排除。第二阶段,采用相应的子图同构验证算法对过滤结果进行最后的验证。对于数据库更新的问题,本文提出了添加,删除和修改三种方法来实现索引与数据库同步更新。用户通过将需要更新数据包发送给云服务器,云服务器通过查询算法快速定位需要修改的索引节点,用户生成新的索引节点,云服务器通过节点替换的方式快速完成索引更新。
39.本发明由于采用了枚举方法生成特征,所以索引生成建立的速度要快于基于数据挖掘的子图同构查询方法;采用了树状索引,显著提高了过滤阶段的速度;采用hash映射的
方式决定特征在特征向量上的位置,更加充分的利用了特征向量的每一位,提高了过滤效果;本文所提出的查询方法还可以支持数据库频繁更新,加密索引可以随着数据库的更新快速更新。
附图说明
40.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1为本发明实施例的方法流程示意图;
42.图2为本发明实施例的明文索引树生成示意图;
43.图3为本发明实施例的数据库和索引安全外包流程图;
44.图4为本发明实施例的加密索引结构示意图;
45.图5为本发明实施例的查询过程流程图;
46.图6为本发明实施例的更新阶段流程图。
具体实施方式
47.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
49.如图1所示,本发明提供了一种支持数据库动态更新的隐私保护子图同构查询方法,包括五个部分:系统初始化,生成加密索引,生成查询陷门,查询,数据库和索引更新。
50.系统初始化阶段:用于生成加密密钥。
51.数据所有者选取一个安全参数λ和特征向量规模n并以此生成加密数据库和加密索引的密钥集合k。加密索引的密钥集合k包含四部分m1,m2,s和ρ,其中,m1和m2是两个随机的n阶可逆矩阵,s是一个随机的n阶0,1向量,ρ是一个n阶随机向量。这四部分用于加密索引和生成查询陷门。本实施例的符号含义如表1所示。
52.表1
[0053][0054]
数据所有者提取特征并生成加密索引。
[0055]
如图2-3所示,数据所有者为每一个数据图生成一个n位的全0的特征向量,然后利用枚举算法,提取每一个数据图的特征。本实施例中数据图的特征为数据图中特定大小的子树和循环。子树和循环相对于传统方法所使用的子图来说提取更加方便快捷,相对子路径来说包含了更多的图的结构信息。为提取出来的每一个特征进行唯一编码并利用hash算法将提取出来的每一个特征映射到特征向量的某一位上。如果一个特征的hash值为h,那么对应数据图的特征向量的第h位将被置为1。枚举算法和hash算法的使用保证了本实施例可以快速为大量的数据图提取特征,从而为包含海量数据图的数据库快速生成索引。当所有特征都被映射到特征向量后,就获得了该数据图的特征向量。
[0056]
如图4所示,然后数据所有者利用k-means聚类算法,对数据图的特征向量进行分组。特征向量间的距离被定义为不同位的个数,将距离较近的特征向量分到同一组。分类完成后数据所有者开始建立查询索引树。在索引树中,每个节点都包含一个n维节点向量。每个叶节点除了包含一个n维节点向量外还包含一张特征向量表,每一张特征向量表中存储着一组相近的特征向量。通过对特征向量表中所有的特征向量进行逐位的或操作来生成叶子节点的节点向量。接下来,数据所有者自下而上的方法来建立索引。首先,每一组特征向量进行逐位与计算来生成它们所对应的叶子节点的节点向量。通过合并两个相邻的节点来生成上级节点。重复此过程,直到生成唯一的根节点。
[0057]
针对明文索引树中的每个节点向量和特征向量分别进行加密来获得密文索引树。首先根据p的值对特征向量f中的0,1进行替换,特征向量中的1,被替换成p中对应位的值,0被替换成小于ρ中对应位的随机值。这样进行替换保证了在查询时,不会影响到计算结果的有效性。然后根据s中的值对特征向量进行拆分。将特征向量拆分为两个。在分别和矩阵m1,m2进行计算,来实现加密。加密索引生成后,数据所有者将数据库加密并和加密索引一起上传给云服务器。
[0058]
进一步地优化方案,对于n维向量p,首先对p中的1和0进行替换,生成如果p[i]=1,那么如果p[i]=0,那么a是一个小于ρ[i]的随机值。接下来对向量进行拆分,将拆分成和当s[i]=1时,当s[i]=0时,最后使用两个可逆矩阵对拆分后的向量进行加密。ei={ei′
,ei″
}是向量fi加密的最终结果,存储于密文索引的节点中。至此,密文查询索引建立完成。数据所有者将密文索引和加密后的数据库一起上传给云服务器。
[0059]
查询者为查询图生成查询陷门。
[0060]
如图5所示,查询者想要查询包含查询图q的数据图时,首先要为查询图生成查询陷门。陷门生成的方式与生成加密索引的方法类似。先通过相同的特征生成方法为查询图生成特征向量。然后通过替换,拆分和矩阵运算等过程进行加密。陷门生成后,查询者将陷门发送给云服务器。
[0061]
进一步地优化方案,对于n维查询图特征向量q,首先对q中的1进行替换,生成当q[i]=1时,r是生成陷门时,临时生成的随机值。计算接下来将拆分成和当s[i]=1时,当s[i]=0时,最后使用两个可逆矩阵对拆分后的向量进行加密,获得t1和t2作为陷门的一部分,与之前生成的t3共同组成查询陷门,用于查询阶段。查询者生成查询陷门后将其发送给云服务器。
[0062]
云服务器执行查询。
[0063]
云服务器收到查询陷门时,云服务器运行查询算法来进行查询。在搜索过程中当一个节点与陷门匹配时才会继续搜索它的孩子节点,具体通过云服务器计算w=ei′
·
t1 ei″
·
t2,如果ei=t3那么匹配成功,云服务器继续搜索该节点的子节点。当匹配节点是叶子节点时,会对该叶子节点下的特征向量表中的特征向量进行逐个匹配,将其中匹配通过的放入候选集中。当一个节点匹配失败时,就放弃对其子节点的搜索,因为当父节点不匹配时子节点一定不匹配。找到所有匹配的叶子节点后,过滤阶段就完成了。接下来只要采用相应的验证算法就可以获得精确的查询结果。
[0064]
数据库和索引更新
[0065]
如图6所示,当要向数据库添加新的数据图时,加密索引也要进行相应的更新才能
满足查询的需求。为了应对数据库的频繁更新,本实施例针对加密索引提出三种更新操作,分别向加密索引中添加新的特征向量,删除加密索引中的特征向量和修改索引中的特征向量。
[0066]
对于添加操作,首先数据所有者为要添加的特征向量生成更新数据包并发送给云服务器。云服务器通过查询算法为新的特征向量选取一个合适添加的位置。新特征向量如果能成功匹配到一个叶子节点,那么就可以直接向该叶子节点添加新的特征向量。如果无法匹配到叶子节点,则从所有能匹配的节点中选取一个离叶子节点最近的索引节点。将新特征向量添加至相应的叶子节点,并修改该索引节点到相应叶子节点这一路径上的所有节点。数据所有者为需要更新的节点生成新的索引节点,云服务器用新的节点替换旧的节点。对于删除操作,数据所有者将需要删除的特征向量的编号写入更新数据包,并发送给云服务器。云服务器找到对应的特征向量并删除。当需要修改加密索引中的特征向量时,本实施例选择先删除后添加的方式来实现修改。这样可以更好地保证索引的查询效率不会因为频繁的更新而降低。
[0067]
进一步地优化方案,当要向加密索引中插入新的特征向量时,数据所有者首先通过查询陷门生成算法和特征向量加密算法为新的特征向量生成查询陷门和加密后的特征向量并发送给云服务器。云服务器执行的定位算法来定位需要修改的索引节点并将需要修改的节点向量发送给数据所有者。该定位算法使用与查询阶段使用的查询算法相同的方式对索引进行搜索。不过该定位算法返回的是一个索引节点的集合,该集合中包含了新特征向量所能匹配的最深层次的节点。
[0068]
当这其中包含了叶子节点时,说明新的特征向量可以直接添加到一张特征向量表中,并且无需修改任何节点向量。那么云服务器将选取返回集合中包含特征向量最少的叶子节点并将新特征向量添加到它的特征向量表中。如果新特征向量无法匹配到叶子节点,那么云服务器会选取返回集合中的节点所能到达的包含特征向量最少的叶子节点作为新特征向量添加的位置。并且将该路径中所有的节点向量发送给数据所有者。数据所有者解密收到的节点向量,并通过逐位或的方式,将新特征向量中的特征添加到节点向量中。数据所有者运用向量加密算法生成新的节点向量并发送给云服务器。云服务器用新的节点向量替换旧的节点向量,并向叶子节点的特征向量表中添加新的特征向量。当需要删除数据库中某些数据图时,加密索引中所对应的特征向量也要同步删除。数据所有者将需要删除的特征向量的编号发送给云服务器。云服务器在特征向量表中查找该特征向量并删除。当需要修改数据库中的某一种数据图时,我们选择先在加密索引中删除所对应的特征向量并重新添加新的特征向量到加密索引中。这样可以尽可能的减少更新过程对加密索引影响。加密索引中某一个特征向量时,我们选择先删除后添加的方式来完成对加密索引中特征向量的修改。
[0069]
以上所述的实施例仅是对本发明的优选方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献