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

安全高效的动态加密云数据多维范围查询方法

2022-12-07 02:57:28 来源:中国专利 TAG:


1.本发明属于数据加密技术领域,尤其涉及一种安全高效的动态加密云数据多维范围查询方法。


背景技术:

2.随着云计算和数据外包服务的普及,数据隐私保护技术快速发展。作为云上外包加密数据检索的主流技术,可搜索加密技术在安全性和功能性方面取得了重大进展。当前可搜索加密技术已应用于密文检索、加密图像检索和加密音频检索;然而,现有技术的改进通常基于应用需求,在检索加密的数据库时需要对多维加密数据进行范围检索。大多数现有可搜索加密方法只能处理相对简单的关键字检索或一维范围查询,不能充分支持多维加密数据的范围检索。因此,研究人员提出了多维范围检索技术。
3.但是多维范围检索技术存在着一些问题:与传统的可搜索加密技术相比多维范围检索技术有着更高的功能要求,需要一维隐私保护。一些多维范围检索方法基于保序加密实现检索,或者将多维范围查询分解为多个一维范围查询,这无法保护一维隐私;此外,多维范围查询方法的效率和开销直接影响其实用性,基于公钥密码的多维范围查询方法不仅具有较高的计算开销,而且不能保护查询隐私;同时,虽然基于多服务器的多维范围查询方法避免了单服务器检索导致的查询隐私泄露,但多服务器之间存在额外的通信开销,且多服务器之间的合谋攻击也将对用户构成威胁。
4.综上,现有技术存在的缺点为:(1)一些多维范围查询方法无法保护一维隐私;(2)在实际应用中数据库需要频繁更新会引起前向和后向隐私泄漏,这使得攻击者更容易掌握加密数据和关键字之间的分布;(3)现有的多维范围查询方法中将云服务器设置为诚实或半可信,但云服务器破坏查询结果的正确性和完整性是可搜索加密中需要考虑的常见安全威胁。


技术实现要素:

5.为了克服上述现有技术的缺点,本发明的目的在于提供了一种安全高效的动态加密云数据多维范围查询方法,使用g-树结构对数据集进行索引实现高效查询,使用维度扩展和轻量级矩阵加密可实现前后向隐私保护及查询中的一维隐私保护,通过将结果完整性验证转化为基于rsa算法的单向累加器计算,可实现高精度、低开销的验证机制。
6.为了达到上述目的,本发明采取的技术方案为:
7.一种安全高效的动态加密云数据多维范围查询方法,包括以下步骤:
8.s101初始化阶段:数据拥有者do,以安全参数η,素数p、q作为输入,生成密钥集sk以及系统参数元组sp;
9.s102索引加密阶段:数据拥有者do根据g-树构建用于验证查询结果及更新的加密的原始索引i,同时数据拥有者do输出具有原始索引i的验证签名sig;
10.s103生成陷门:查询用户qu执行陷门生成算法gentrap为具有密钥元组sk的多维
范围查询q生成陷门tr;
11.s104查询阶段:云服务器cs执行查询算法query,通过原始索引i在加密数据库上检索范围查询tr,云服务器输出检索结果和验证辅助信息a


12.s105验证阶段:在查询用户qu得到检索结果以及验证辅助信息a

后,查询用户qu利用哈希函数h(
·
)进行完整性验证,若验证通过输出1;否则输出0;
13.s106更新阶段:数据拥有者do通过更新数据记录d
up
、原始签名a和更新算法update更新数据集和签名,得到更新后的数据集d

以及新签名a
new

14.所述的始化阶段包括:
15.数据所有者do选择一个安全参数η,两个大素数p、q,数据所有者do生成密钥集sk={sk
leaf
,sk
non-leaf
,sk
data
},计算公式如下:
[0016][0017]
此外,数据所有者do计算n=pq,选择一个大基数a,生成一个安全的哈希函数h(
·
),两个置换函数π1(
·
)、π2(
·
),置换函数对应的密钥分别为
[0018]
所述的索引加密阶段包括:
[0019]
(1)首先,数据所有者do加密原始索引i={l1,

,ln,n1,

,n
t
,p},其中代表叶子结点,代表非叶子结点,p代表孩子结点的指针集合,
[0020][0021]
之后数据所有者do将加密索引i
*
={el1,

,eli,en1,

,enj,p}以及密文c外包给云服务器cs,其中分别表示加密后的叶子结点和加密后的非叶子结点;
[0022]
(2)数据所有者do利用哈希函数h(
·
)计算加密数据点ci的哈希值,即xi←
h(ci),数据所有者do计算密文c的rsa累积值,即
[0023]
do通过组合累积值a和当前时间戳t得到元组(a,t),并使用签名私钥sks对(a,t)进行签名;加密索引i
*
及签名sig(a,t)将通过数据所有者do一并上传cs,签名公钥sk
p
被分发至各授权用户ds。
[0024]
所述的陷门生成阶段包括:
[0025]
输入密钥元组sk以及多维范围查询mrq,陷门生成的过程如下所示:
[0026][0027]
之后数据所有者do将陷门分配给授权的查询用户qu。
[0028]
所述的查询阶段包括:
[0029]
输入查询陷门tr
mrq
、加密索引i
*
,云服务器cs逐级检索加密索引i
*

[0030]
(1)云服务器cs开始从加密索引i
*
的根结点检索,对于非叶子结点enj,当且仅当时,继续检索该结点下的子结点,否则它停止检索该结点;
[0031]
(2)对于叶子结点eli,当且仅当数据点ci∈mrq,即∈mrq,即时,将数据点di的标识符idi放入结果列表result
mrq

[0032]
(3)同时,云服务器cs在删除result
mrq
中的每个数据点后计算剩余数据点的累积值,即a

由云服务器cs使用私钥sks签名;
[0033]
最后,云服务器cs返回结果列表result
mrq
,使用验证辅助签名sig(a

),验证签名sig(a,t)发送给查询用户qu。
[0034]
所述的验证阶段包括:
[0035]
输入辅助签名sig(a

),验证签名sig(a,t),结果列表result
mrq
以及哈希函数h(
·
);
[0036]
(1)查询用户qu首先用sk
p
解密sig(a,t)来获得初始累积值a以及时间戳t,并且通过t来检查签名的有效性;
[0037]
(2)查询用户利用h(
·
)计算结果列表result
mrq
中每个数据点的相关值,计算公式如下:
[0038][0039]
之后,查询用户计算并检查累积值并且将其与a进行比较,当且仅当a
*
=a时,表示结果集是完整的;否则,结果集不完整。
[0040]
所述的更新阶段包括:
[0041]
插入:在g树中,插入操作由两个函数实现,“分配”和“搜索”;“分配”函数用于生成插入结点在树中的相应位置,“搜索”函数用于查找树中相应位置的特定分区;如果插入不会导致分区溢出,则直接执行插入操作;否则,应先分割分区,然后插入;
[0042]
(1)直接插入:当数据所有者do插入一组新的数据d
new
时,首先需要判断d
new
的插入位置,数据所有者do使用“等价查询”操作进行评估;也就是说,数据所有者do将转换为范围向量其中数据所有者do通过执行gentrap和encindex算法,获得相应的陷门tr
new
、密文_c
new
和基于mr
new
的更新签名a
new
;收到更新元组(tk
new
,c
new
,a

)后,从数据所有者do开始,查询用户qu运行查询算法以获取数据插入位置,并将c

存储在数据库中;在加密d
new
时,只需要更新对应于fb-pipe的数字集d1,具体过程如算法1所示;
[0043]
算法1;输入:数集d1,随机参数
[0044]
输出:混淆向量(v
w 1
,

,vk),修改数集d1,
[0045]
for w 1≤j≤k do
[0046]
随机从d1中选择一个元素ej:ej←rd1;
[0047]
随机从中选择一个数aj:
[0048]
生成混淆向量
[0049]
更新数集d1:d1=d
1-{ej};
[0050]
更新数集
[0051]
return混淆向量(v
w 1
,

,vk),修改数集d1,
[0052]
(2)调整插入:如果g-树中的某些分区在数据插入后溢出,则需要调整g-树;首先,与“直接插入”类似,数据所有者do首先通过查询算法评估插入位置,然后找出数据插入后哪些分区将溢出,并拆分和调整溢出的分区;这个过程从下到上迭代,直到不需要调整分区;与“直接插入”不同,叶结点和非叶结点分区需要同时调整,因此,加密d
new
时,fb-pipe和fb-ripe对应的数字集d1和d2都需要更新,具体过程如算法1和算法3所示;
[0053]
算法3;输入:数集d2,随机参数
[0054]
输出:混淆向量(v
w 1
,

,vk),修改数集d2,
[0055]
for w 1≤j≤k do
[0056]
随机从d2中选择一个元素e
′j:e
′j←rd2;
[0057]
随机从中选择一个数a
′j:
[0058]
生成混淆向量
[0059]
更新数集d2:d2=d
2-{e
′j};
[0060]
更新数集
[0061]
return混淆向量(v
w 1
,

,vk),修改数集d2,
[0062]
删除:与插入类似,数据所有者do首先查询要删除的数据记录在g-树中的相应位置,然后将其删除;如果数据所在的分区在删除后不包含数据,则需要将其与相邻分区合并;如果删除只涉及叶结点分区,则只应更新数字集d1;如果删除涉及叶结点和非叶结点,则需要同时更新数字集d1和d2;具体过程分别见算法5和算法6所示。
[0063]
算法5;输入:数集d1,随机参数ej[0064]
输出:修改数集d1,
[0065]
for w 1≤j≤k do
[0066]
更新数集
[0067]
将ej发送给数据用户;
[0068]
更新数集d1:d1=d1 {ej}
[0069]
return修改数集d1,
[0070]
算法6:输入:数集d2,随机参数e
′j[0071]
输出:修改数集d2,
[0072]
for w 1≤j≤k do
[0073]
更新数集
[0074]
将ej发送给数据用户;
[0075]
更新数集d2:d2=d2 {e
′j}
[0076]
return修改数集d2,
[0077]
修改:通过“删除”和“插入”协作完成修改操作,数据所有者do首先使用“删除”操作删除数据记录,然后使用“插入”操作将修改后的数据记录添加到索引和数据集;由于数据集中的数据量在修改期间不会改变,因此在修改期间不需要拆分或合并g-树索引中的分区。
[0078]
所述的安全高效的动态加密云数据多维范围查询方法基于一种接收用户输入程序存储介质存储,通过计算机程序使电子设备执行。
[0079]
所述的安全高效的动态加密云数据多维范围查询方法基于多维范围查询系统实现,多维范围查询系统包括:
[0080]
数据所有者:生成密钥元组和系统参数,构建加密索引,构造签名,执行更新;
[0081]
查询用户:生成陷门,检查查询结果的完整性;
[0082]
云服务器:为外包数据集提供存储和检索服务,对加密索引执行查询。
[0083]
所述的多维范围查询系统搭载于终端,终端为物联网终端。
[0084]
结合上述的所有技术方案,本发明所具备的有益效果为:本发明使用新提出的fb-pipe和fb-ripe用来执行索引中的能够保护前后向隐私的范围交叉谓词加密查询和点交叉谓词加密查询;fb-pipe和fb-ripe中的加密过程采用基于扰动的矩阵、伪随机置换函数和随机扰动进行设计,将消息转换为具有相同密钥的不同密文,可以确保fb-pipe和fb-ripe的语义安全;比较谓词加密采用维数扩展、伪随机置换和随机扰动,使本方法在已知背景模型下是安全的;云服务器无法区分加密索引中混淆的叶节点或非叶节点且云服务器基于伪随机置换函数和随机扰动混淆了索引中属性列的顺序,故本发明技术方案可以有效保护一维隐私;由于随机参数干扰,无法获得fb-pipe和fb-ripe中的正确计算结果,确保前向安全和后向安全。
[0085]
本发明与经典的多维范围查询方法进行对比分析。安全性对比结果如表1所示,其中“√”表示满足该项安全需求,
“×”
表示不满足该项安全需求,“*”表示部分满足该项安全需求。
[0086]
表1安全性对比
[0087] prqtreqdtreqd maplelsed 本方法查询隐私√√√
×
√√
一维隐私√√√√
×
√路径保护
××

×××
数据动态更新√√√
×
√√结果验证
×××××
√前向隐私保护
×××××
√后向隐私保护
×××××

[0088]
在表1中,本发明方法具有其他经典的多维范围查询方法没有的前向、后向隐私保护;maple和lsed 都是基于公钥密码体制设计的,其查询开销比其他方案高得多;prq是基于矩阵加密技术设计的。相比之下,treqd 和本方法在查询过程中也包括置换技术;为了实现路径保持,treqd 使用两个云服务器在安全多方计算协议下执行查询,这种操作必须辅以基于标志位的同态加密,这会带来额外的通信开销;此外,treqd 比treqd具有更全面的性能。因此,在查询实验中选择treqd 和prq作为比较方案。实验结果表明,本发明方法实现了多维范围查询低成本和高安全性需求之间的均衡。
附图说明
[0089]
图1是本发明实施例的多维范围查询方法流程图。
[0090]
图2是本发明实施例的多维范围查询系统框架图。
[0091]
图3、图4分别是本发明实施例的多维范围查询方法在不同的数据集维数、大小下索引构造的计算开销、存储开销的仿真图。
[0092]
图5、图6分别是本发明实施例的多维范围查询方法在不同的数据集维数、大小下签名构造的计算开销、存储开销的仿真图。
[0093]
图7、图8是本发明实施例的多维范围查询方法在不同的数据集维数、大小以及数据集最大容量下签名构造的陷门生成的计算开销的仿真图。
[0094]
图9、图10分别是本发明实施例的多维范围查询方法在不同的数据集维数、数据集最大容量下点相交查询、范围相交查询计算开销的仿真图。
[0095]
图11、图12是本发明实施例的多维范围查询方法在不同的数据集维数、大小以及数据集最大容量下多维范围查询计算开销的仿真图。
[0096]
图13是本发明与其他经典的多维范围查询方法的查询时间、查询准确性和查询召回率的对比图。
[0097]
图14、15分别是基于不同索引设计的安全高效的动态加密云数据多维范围查询方法的查询准确度、召回率的对比图。
具体实施方式
[0098]
以下结合实施例和附图对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0099]
如图1所示,一种安全高效的动态加密云数据多维范围查询方法,包括以下步骤:
[0100]
s101初始化阶段:数据拥有者do,以安全参数η,素数p、q作为输入,生成密钥集sk以及系统参数元组sp;
[0101]
s102索引加密阶段:数据拥有者do根据g-树构建用于验证查询结果及更新加密的
原始索引i,同时数据拥有者do输出具有原始索引i的验证签名sig;
[0102]
s103生成陷门:查询用户qu执行陷门生成算法gentrap为具有密钥元组sk的多维范围查询q生成陷门tr;
[0103]
s104查询阶段:云服务器cs执行查询算法query,通过原始索引i在加密数据库上检索范围查询tr,云服务器输出检索结果和验证辅助信息a


[0104]
s105验证阶段:在查询用户qu得到检索结果以及验证辅助信息a

后,查询用户qu利用哈希函数h(
·
)进行完整性验证,若验证通过输出1;否则输出0;
[0105]
s106更新阶段:数据拥有者do通过更新数据记录d
up
,原始签名a和更新算法update更新数据集和签名,得到更新后的数据集d

以及新签名a
new

[0106]
如图2所示,所述安全高效的动态加密云数据多维范围查询方法基于多维范围查询系统实现,多维范围查询系统包括:
[0107]
数据所有者:负责系统初始化,并生成密钥元组和系统参数;在数据所有者加密和上载数据集之前为数据集构建可搜索的加密索引;此外,数据所有者需要为加密数据集构造签名;当外包数据集需要更新时,数据所有者执行更新以调整加密的索引和签名,并将其与更新的数据集一起发送到云服务器。
[0108]
查询用户:查询用户确定查询范围并生成相应的陷门发送给云服务器,在查询用户获得检索结果后会执行验证以检查查询结果的完整性;
[0109]
云服务器:凭借其强大的计算资源和系统模型中的存储空间,云服务器为外包数据集提供存储和检索服务;当云服务器接收到陷门时,它对加密索引执行查询,以获取查询范围内的数据记录,并且把查询结果和验证辅助信息发送给查询用户。
[0110]
如图2所示,所述的初始化阶段包括:
[0111]
数据所有者do选择一个安全参数η,两个大素数p、q,数据所有者do生成密钥集sk={sk
leaf
,sk
non-leaf
,sk
data
},计算公式如下:
[0112][0113]
此外,数据所有者do计算n=pq,选择一个大基数a,生成一个安全的哈希函数h(
·
),两个置换函数π1(
·
)、π2(
·
),置换函数对应的密钥分别为
[0114]
所述的索引加密阶段包括:
[0115]
(1)首先,数据所有者do加密原始索引i={l1,

,ln,n1,

,n
t
,p},其中代表叶子结点,代表非叶子结点,p代表孩子结点的指针集合;
[0116][0117]
之后数据所有者do将加密索引i
*
={el1,

,eli,en1,

,enj,p}以及密文c外包给
云服务器cs,其中分别表示加密后的叶子结点和加密后的非叶子结点;
[0118]
(2)数据所有者do利用哈希函数h(
·
)计算加密数据点ci的哈希值,即xi←
h(ci),数据所有者do计算密文c的rsa累积值,即
[0119]
数据所有者do通过组合累积值a和当前时间戳t得到元组(a,t),并使用签名私钥sks对(a,t)进行签名;加密索引i
*
及签名sig(a,t)将通过数据所有者do一并上传cs,签名公钥sk
p
被分发至各授权用户ds。
[0120]
所述的陷门生成阶段包括:
[0121]
输入密钥sk以及多维范围查询mrq,陷门生成的过程如下所示:
[0122][0123]
之后数据所有者do将陷门分配给授权的查询用户qu。
[0124]
所述的查询阶段包括:
[0125]
输入查询陷门tr
mrq
、加密索引i
*
,云服务器cs逐级检索加密索引i
*

[0126]
(1)云服务器cs开始从加密索引i
*
的根结点检索,对于非叶子结点enj,当且仅当时,继续检索该结点下的子结点,否则它停止检索该结点;
[0127]
(2)对于叶子结点eli,当且仅当数据点ci∈mrq,即∈mrq,即时,将数据点di的标识符idi放入结果列表result
mrq

[0128]
(3)同时,云服务器cs在删除result
mrq
中的每个点后计算剩余数据点的累积值,即a

由云服务器cs使用私钥sks签名;
[0129]
最后,云服务器cs返回结果列表result
mrq
,使用验证辅助签名sig(a

),验证签名sig(a,t)发送给查询用户qu。
[0130]
所述的验证阶段包括:
[0131]
输入辅助签名sig(a

),验证签名sig(a,t),结果列表result
mrq
以及哈希函数h(
·
);
[0132]
(1)查询用户qu首先用sk
p
解密sig(a,t)来获得初始累积值a以及时间戳t,并且通过t来检查签名的有效性;
[0133]
(2)查询用户利用h(
·
)计算结果列表result
mrq
中每个数据点的相关值,计算公式如下:
[0134][0135]
之后,查询用户计算并检查累积值并且将其与a进行比较,当且仅当a
*
=a时,表示结果集是完整的;否则,结果集不完整;
[0136]
更新阶段包括:
[0137]
支持数据插入、删除或修改,通过删除以前的数据并插入更新后的数据来实现数据修改;
[0138]
插入:在g树中,插入操作由两个函数实现,“分配”和“搜索”;“分配”函数用于生成插入结点在树中的相应位置,“搜索”函数用于查找树中相应位置的特定分区;从g-树结构的角度来看,应该注意分区大小对结点插入的影响;如果插入不会导致分区溢出,则可以直接执行插入操作;否则,应先分割分区,然后插入;
[0139]
(1)直接插入:当数据所有者do插入一组新的数据d
new
时,首先需要判断d
new
的插入位置,这里数据所有者do使用“等价查询”操作进行评估;也就是说,数据所有者do将转换为范围向量转换为范围向量其中数据所有者do通过执行gentrap和encindex算法,获得相应的陷门tr
new
、密文_c
new
和基于mr
new
的更新签名a
new
;收到更新元组(tk
new
,c
new
,a

)后,从数据所有者do开始,查询用户qu运行查询算法以获取数据插入位置,并将c

存储在数据库中;值得注意的是,在直接插入中只需要更改叶结点,因此在加密d
new
时,只需要更新对应于fb-pipe的数字集d1;具体过程如算法1所示;
[0140]
算法1;输入:数集d1,随机参数
[0141]
输出:混淆向量(v
w 1
,

,vk),修改数集d1,
[0142]
forw 1≤j≤kdo
[0143]
随机从d1中选择一个元素ej:ej←rd1;
[0144]
随机从中选择一个数aj:
[0145]
生成混淆向量
[0146]
更新数集d1:d1=d
1-{ej};
[0147]
更新数集
[0148]
return混淆向量(v
w 1
,

,vk),修改数集d1,
[0149]
(2)调整插入:如果g-树中的某些分区在数据插入后溢出,则需要调整g-树;首先,与“直接插入”类似,数据所有者do首先通过查询算法评估插入位置,然后找出数据插入后哪些分区将溢出,并拆分和调整溢出的分区;这个过程从下到上迭代,直到不需要调整分区;与“直接插入”不同,叶结点和非叶结点分区需要同时调整;因此,加密d
new
时,fb-pipe和fb-ripe对应的数字集d1和d2都需要更新;具体过程见算法1和算法3所示;
[0150]
算法3;输入:数集d2,随机参数
[0151]
输出:混淆向量(v
w 1
,

,vk),修改数集d2,
[0152]
for w 1≤j≤k do
[0153]
随机从d2中选择一个元素e
′j:e
′j←rd2;
[0154]
随机从中选择一个数a
′j:
[0155]
生成混淆向量
[0156]
更新数集d2:d2=d
2-{e
′j};
[0157]
更新数集
[0158]
return混淆向量(v
w 1
,

,vk),修改数集d2,
[0159]
删除:与插入类似,数据所有者do首先查询要删除的数据记录在g-树中的相应位置,然后将其删除;如果数据所在的分区在删除后不包含数据,则需要将其与相邻分区合并;如果删除只涉及叶结点分区,则只应更新数字集d1;如果删除涉及叶结点和非叶结点,则需要同时更新数字集d1和d2;具体过程分别在算法5和算法6中进行了描述;
[0160]
算法5:输入:数集d1,随机参数ej[0161]
输出:修改数集d1,
[0162]
for w 1≤j≤k do
[0163]
更新数集
[0164]
将ej发送给数据用户;
[0165]
更新数集d1:d1=d1 {ej}
[0166]
return修改数集d1,
[0167]
算法6:输入:数集d2,随机参数e
′j[0168]
输出:修改数集d2,
[0169]
for w 1≤j≤k do
[0170]
更新数集
[0171]
将ej发送给数据用户;
[0172]
更新数集d2:d2=d2 {e
′j}
[0173]
return修改数集d2,
[0174]
修改:通过“删除”和“插入”协作完成修改操作;数据所有者do首先使用“删除”操作删除数据记录,然后使用“插入”操作将修改后的数据记录添加到索引和数据集;由于数据集中的数据量在修改期间不会改变,因此在修改期间不需要拆分或合并g-树索引中的分区。
[0175]
其中,do:数据所有者;qu:查询用户;cs:云服务器;mrq:多维范围查找;rsa:一种公钥加密算法;wdfb-pipe:w维前后向隐私保护的点相交谓词加密;wdfb-ripe:w维前后向隐私保护的范围相交谓词加密;sk:密钥集;sk
leaf
:叶子结点对应密钥;sk
non-leaf
:非叶子结点对应密钥;i:原始索引;i
*
:加密索引;c:密文;ci:数据点;tr:陷门;t:时间戳;a:累积初始值;sig(a):签名;mr
new
:范围向量;sig(a

):辅助签名;xi:哈希值;idi:用户标识;result
mrq

结果列表;tp:查询正确结果;fp:查询错误结果;fn:尚未检索到的正确结果;w:数据集d的维数;|d|:数据集d的大小;k:数据集的最大容量;叶子结点;非叶子结点;加密后的叶子结点;加密后的非叶子结点;p:孩子结点的指针集合;η:安全参数;p:大素数;q:大素数。
[0176]
下面结合仿真对本发明的技术效果作详细的描述。
[0177]
为了验证本发明的可用性,以下将展示并说明安全高效的动态加密云数据多维范围查询方法se-mrq在仿真下的测试结果,仿真环境:在cpu 3.20g hz的pc机上,windows环境。本次仿真符号标识如下:w表示数据集d的维数,|d|表示数据集d的大小,k表示数据集的最大容量。
[0178]
图3、图4所示分别是数据集维数和大小对安全高效的动态加密云数据多维范围查询方法的索引构造的计算、存储开销的影响(所用到的数据集是1999年美国人口普查局数据集)。在图3中绘制了索引构造的计算开销随w和|d|而变化,在这个实验中,设置了属性数w∈{2,4,6}和数据集大小|d|∈[10000,100000];在水平方向上,计算开销几乎随数据集大小|d|线性增加;然而,在垂直方向上,在数据集大小相同的情况下,计算开销随属性数w线性增加。在图4中绘制了加密索引的存储开销随w和|d|而变化,在这个实验中设置了w∈{2,4,6}和|d|∈[10000,100000],与计算开销不同,加密索引的存储开销随w和|d|的增加而线性增加。
[0179]
图5和图6所示分别是数据集维数和大小对安全高效的动态加密云数据多维范围查询方法的签名构造的计算和存储开销的影响(所用到的数据集是1999年美国人口普查局数据集)。在图5中绘制了签名构造的计算开销随w和|d|的变化,在这个实验中,设置了属性数w∈{2,4,6}和数据集大小|d|∈[10000,100000],从该图中可以看出,计算成本随着数据集大小的不同而近似线性变化;此外,计算成本也随维度设置的不同而线性变化;然而,当数据集大小增大时,三个不同维之间的计算成本差异较小,这也表明数据量是影响计算开销的决定性因素。在图6中,设置了w∈{2,4,6}和|d|∈[10000,100000],与计算开销类似,签名的存储开销随w和|d|的变化而线性变化。
[0180]
图7、图8所示是数据集维数、大小以及数据集最大容量对安全高效的动态加密云数据多维范围查询方法的陷门生成的计算开销的影响(所用到的数据集是1999年美国人口普查局数据集)。在图7中,设置k
sq
∈{100,200,300,400}和w∈[2,8],该图显示计算开销随w线性变化;固定w时,计算开销随k
sq
二次变化。在图8中,设置了|d|∈{20000,40000,60000,80000,100000}和w∈[2,8],该图显示计算成本随w线性变化,固定w时,计算成本也随|d|线性变化。
[0181]
图9、图10所示分别是数据集维数、数据集最大容量对安全高效的动态加密云数据多维范围查询方法的点相交查询、范围相交查询计算开销的影响(所用到的数据集是1999年美国人口普查局数据集)。如图9所示,绘制了点相交查询的计算开销随w∈{2,4,6,8,10}和k
sq
={100,200,300,400}变化,可以观察到,点相交查询的计算开销几乎随w呈线性变化,随k
sq
呈二次变化。如图10所示,绘制了范围相交查询的计算开销随w∈{2,4,6,8,10}和k
sq
={100,200,300,400}的变化,范围相交查询的计算开销近似随w而变化,随k
sq
而二次变化。
[0182]
图11、12所示是数据集维数、大小以及数据集最大容量对安全高效的动态加密云数据多维范围查询方法的多维范围查询计算开销的影响(所用到的数据集是1999年美国人口普查局数据集)。在图11中,得出了随k
sq
∈{100,200,300,400},|d|∈[10000,100000],w=8变化的多维范围查询的计算开销,可以观察到,当|d|≤60000时,查询的计算开销几乎与k
sq
和|d|呈线性变化,而k
sq
对计算成本的影响更大;而当|d|》60000时,计算开销几乎与两个因素呈对数变化,其中|d|对计算开销的影响占主导地位。在图12中,得出了多维范围查询的计算开销随w∈{2,4,6,8},|d|∈[10000,100000],k
sq
=400而变化,可以看到当w∈{2,4},查询的计算成本随w和|d|几乎呈线性变化,w对计算成本具有主导作用;而当w∈{6,8}时,查询的计算成本随w和|d|呈对数变化。
[0183]
图13所示是安全高效的动态加密云数据多维范围查询方法与其他经典的多维范围查询方法的查询时间、查询准确性和查询召回率的对比(所用到的数据集是1999年美国人口普查局数据集)。为了公平起见,将se-mrq、prq与treqd 方案进行了比较,两个云服务器之间没有额外的开销。如图13所示,绘制了prq、treqd 和se-mrq之间多维范围查询的计算开销,参数设置为w=2,|d|∈[10000,100000],k
sq
=400,从图中可以看出,se-mrq的查询效率几乎介于prq和treqd 之间,具体来说,se-mrq的查询开销平均比prq高5.6ms,平均比treqd 低4.9ms;此外,这三种方案的查询开销都随数据集大小|d|呈对数变化,虽然se-mrq的查询开销略高于treqd ,但在实际场景中,treqd 必须考虑额外的通信成本,因此本发明se-mrq可以高效、实用地执行多维范围查询。
[0184]
图14、图15分别是基于不同索引设计的安全高效的动态加密云数据多维范围查询方法的查询准确度、召回率的对比,prq和treqd 索引是基于r树设计的,而se-mrq索引是基于g-树设计的;为了客观地评估g-树和r-树的性能,在实验中分别基于两种结构实现了se-mrq索引,并获得了查询精度和召回率;se-mrq方案的精度,即正确结果在整个检索结果中的比例;tp表示正确结果,fp表示错误结果;精度计算公式如下:
[0185][0186]
此外,本发明的se-mrq方案的召回率,即检索正确结果在整个正确结果中的比例;fn表示尚未检索到的正确结果。召回率的计算公式如下:
[0187][0188]
在图14和图15中,绘制了se-mrq的查询精度和召回率,其中参数设置为w∈{2,4,6,8}和|d|∈[20000,100000],从图14可以看出,g-树和r-树的查询精度和召回率随着数据集大小和维数的增加而降低;然而,在不同条件下,g-树的精度和召回率都高于r-树,这也表明在se-mrq中基于g-树设计的索引的性能优于基于r-树的索引。
[0189]
应当注意,本发明的实施例可以通过硬件、软件或者软件和硬件的结合来实现,硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成
电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0190]
以上所述,仅为本发明的具体实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
再多了解一些

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

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

相关文献