一种隐私保护多维范围查询方法、装置及存储介质制造方法及图纸

技术编号:38902187 阅读:28 留言:0更新日期:2023-09-22 14:20
本发明专利技术属于数据加密领域,涉及一种隐私保护多维范围查询方法、装置及存储介质,其中方法包括以下步骤:数据拥有者生成整个密文范围查询所需要的密钥;数据拥有者利用分层Hilbert编码后的密文构建HHCB树;数据使用者将多维范围查询条件按照分层Hilbert编码方式对查询范围进行编码,并利用哈希函数对范围编码集进行哈希映射,生成查询门限;云数据库利用查询门限对HHCB树展开查询,将得到的查询结果返回给数据使用者。与现有技术相比,本发明专利技术引入分层Hilbert编码方式,减少了查询时繁琐的加解密计算过程,提高了查询效率;在索引构建方面引入近似编码划分方法提高了遍历效率,更适用于实际的云密态数据库场景。更适用于实际的云密态数据库场景。更适用于实际的云密态数据库场景。

【技术实现步骤摘要】
一种隐私保护多维范围查询方法、装置及存储介质


[0001]本专利技术涉及数据加密领域,尤其是涉及一种基于分层Hilbert编码的隐私保护多维范围查询方法、装置及存储介质。

技术介绍

[0002]在不完全可信的云服务环境中,数据拥有者通常将数据加密上传至云服务器,当前多维数据逐维加密方式可以支持隐私保护的多维查询,但数据维度的增高以及空间划分间隔的宽泛,导致云服务器查询结果中包含的冗余数据增多、查询效率降低。基于这种情况,已经存在关于数据密文的范围查询技术,但是这些技术在密文数据范围查询与验证中仍存在相应的问题。例如,Songyui Wu等人在发表的论文“ServeDB:Secure,Verifiable,and Eff icient Range Queries onOutsourced Data base”(2019IEEE 35th International Conference on Data Engineering(ICDE))中提出了一种支持多维密文数据的可验证范围查询方法。该方法首先将多维数据利用AES加密,其次为了隐藏多维度数据的数据信息,将多维数据转成一系列的cube codes,然后构建索引结构,索引以标准型布隆过滤器为节点存储,使得云数据库无需解密即可比较多维数据是否满足查询范围。但是这样的方案仍存在不足之处,在其索引树构建的过程中,左右孩子节点中的存储的数据是随意划分的,这使得在进行深度遍历时多维空间相邻的数据无法得到有效的查询,而需要多次遍历相同的节点,增加计算开销,降低了查询效率。

技术实现思路

[0003]本专利技术的目的在于针对上述现有技术中密文数据的验证查询方法计算开销大,查询效率不高的缺陷,提供一种基于分层Hilbert编码的隐私保护多维范围查询方法、装置及存储介质,通过分层Hilbert编码对多维空间进行细粒度划分并将多维数据分层编码以避免数据顺序特性泄露,同时在编码的数据上结合计数型布隆过滤器(Counting Bloom Filter,CBF)构建索引结构实现密文安全检索,能够用于在云存储背景下同时对云数据库接收的密态多维数据进行范围查询。
[0004]本专利技术的目的可以通过以下技术方案来实现:
[0005]一种基于分层Hilbert编码的隐私保护多维范围查询方法,包括以下步骤:
[0006]S1:数据拥有者生成整个密文范围查询所需要的密钥;
[0007]S2:数据拥有者利用分层Hilbert编码后的密文构建HHCB树(Hierarchical Hilbert Counting Bloom Filter Tree,HHCBtree);
[0008]S3:数据使用者将多维范围查询条件按照S2中的分层Hilbert编码方式对查询范围进行编码,并利用哈希函数对范围编码集进行哈希映射,生成多维数据查询需要的查询门限;
[0009]S4:云数据库利用查询门限对HHCB树展开查询,将得到的查询结果返回给数据使用者。
[0010]所述S1中,数据拥有者通过输入安全参数λ,输出对称密钥sk来加密多维数据,输出HMAC哈希函数密钥key,树节点所需随机数r={r1,...,r
2n+1
},其中,n为多维数据的维度。
[0011]所述S2包括以下步骤:
[0012]S21:数据拥有者利用分层Hilbert编码,在实现n维数据向k维数据的转化的同时隐藏数据信息,即将多维数据映射到k个细粒度划分的多维空间,每个多维数据在相应的第i层空间中都依据Hilbert编码方式生成相应的第i层Hilbert编码,最终每个多维数据由一个包含k个Hilbert编码的编码集组成;
[0013]S22:根据Hilbert编码构建HHCB索引树,其中,HHCB索引树的每个节点均为计数型布隆过滤器(Counting Bloom Filter,CBF),将编码后的数据映射进布隆过滤器中;
[0014]S23:HHCB索引树的根节点存储所有数据的编码,其左右孩子节点分别存储一半其父节点中的数据编码,根节点数据依据近似编码划分算法被分配到其左右孩子节点,以此类推直至生成仅包含一个多维数据编码的叶节点。
[0015]所述S21包括以下步骤:
[0016]S211:数据拥有者确认多维数据各个维度的最大值和最小值,设定最小间隔单元的边长,确定k值,对多维数据划分进k层空间;
[0017]S212:对每一层的多维数据采用Hilbert编码,并将每个Hilbert编码H
c
(o)作用于HMAC函数生成该层数据编码其中区别码diff_num=0.00001
×
L
i
用于避免不同层级出现相同编码,key为哈希密钥,L
i
表示层级数;每个多维数据拥有k个Hilbert编码,共同组成了多维数据o的分层Hilbert编码,并且编码过程中第k层的最小间隔单元中最多包含一个多维数据项。
[0018]所述k值满足:|上界

下界|<2
k
*Step,其中,Step为最小间隔单元的边长,其小于多维数据每一维的数轴上数据间的最小间距。
[0019]所述S3包括以下步骤:
[0020]S31:数据使用者发送多维数据范围查询的查询请求,并将其查询范围标记为Q,利用分层Hilbert编码对查询范围Q进行转化得到范围编码集{Q};
[0021]S32:利用HMAC函数对范围编码集{Q}中的每个数据进行r次运算,得到k*r个HMAC地址,基于地址组成查询门限矩阵T
{Q}

[0022]所述S4包括以下步骤:
[0023]S41:云数据查询过程中,判断查询门限矩阵T
{Q}
与HHCB索引树中的布隆过滤器是否匹配,若匹配,则继续查询左右孩子节点,直至叶子节点停止检索;若不匹配,则当前节点下的所有子节点不再参与查询遍历;
[0024]S42:云数据库将符合查询条件的查询结果存入查询结果集R;
[0025]S43:云数据库将查询结果集R返回给数据使用者,数据使用者对查询结果集R进行解密获取最终结果。
[0026]所述S41中,判断查询门限矩阵T
{Q}
与HHCB索引树中的布隆过滤器是否匹配具体为:
[0027]检查T
{Q}
中任意第i行的HMAC地址在每个节点中的布隆过滤器相应地址处存储的数值是否均大于等于1,
[0028]若T
{Q}
中任意第i行的HMAC地址在每个节点中的布隆过滤器相应地址处存储的数
值是否均大于等于1,表明第i行HMAC地址对应的多维数据与编码的查询范围存在交集,则当前节点中有数据符合查询范围的数据,即查询门限矩阵T
{Q}
与HHCB索引树中的布隆过滤器相匹配;
[0029]若T
{Q}
中任意第i行的HMA本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分层Hilbert编码的隐私保护多维范围查询方法,其特征在于,包括以下步骤:S1:数据拥有者生成整个密文范围查询所需要的密钥;S2:数据拥有者利用分层Hilbert编码后的密文构建HHCB树;S3:数据使用者将多维范围查询条件按照S2中的分层Hilbert编码方式对查询范围进行编码,并利用哈希函数对范围编码集进行哈希映射,生成多维数据查询需要的查询门限;S4:云数据库利用查询门限对HHCB树展开查询,将得到的查询结果返回给数据使用者。2.根据权利要求1所述的一种基于分层Hilbert编码的隐私保护多维范围查询方法,其特征在于,所述S1中,数据拥有者通过输入安全参数,输出对称密钥来加密多维数据,输出HMAC哈希函数密钥,树节点所需随机数。3.根据权利要求1所述的一种基于分层Hilbert编码的隐私保护多维范围查询方法,其特征在于,所述S2包括以下步骤:S21:数据拥有者利用分层Hilbert编码,在实现n维数据向k维数据的转化的同时隐藏数据信息,即将多维数据映射到k个细粒度划分的多维空间,每个多维数据在相应的第i层空间中都依据Hilbert编码方式生成相应的第i层Hilbert编码,最终每个多维数据由一个包含k个Hilbert编码的编码集组成;S22:根据Hilbert编码构建HHCB索引树,其中,HHCB索引树的每个节点均为计数型布隆过滤器,将编码后的数据映射进布隆过滤器中;S23:HHCB索引树的根节点存储所有数据的编码,其左右孩子节点分别存储一半其父节点中的数据编码,根节点数据依据近似编码划分算法被分配到其左右孩子节点,以此类推直至生成仅包含一个多维数据编码的叶节点。4.根据权利要求3所述的一种基于分层Hilbert编码的隐私保护多维范围查询方法,其特征在于,所述S21包括以下步骤:S211:数据拥有者确认多维数据各个维度的最大值和最小值,设定最小间隔单元的边长,确定k值,对多维数据划分进k层空间;S212:对每一层的多维数据采用Hilbert编码,并将每个Hilbert编码H
c
(o)作用于HMAC函数生成该层数据编码C
i
=HMAC(key,[H
c
(o)]
Li
+diff_num),其中区别码diff_num=0.00001
×
L
i
用于避免不同层级出现相同编码,key为哈希密钥,L
i
表示层级数;每个多维数据拥有k个Hilbert编码,共同组成了多维数据o的分层Hilbert编码,并且编码过程中第k层的最小间隔单元中最多包含一个多维数据项。5.根据权利要求4所述的一种基于分层Hilbert编码的隐私保护多维范围查询方法,其特征在于,所述k值满足:|上界

下界|<...

【专利技术属性】
技术研发人员:田秀霞卢映如牛晓宇张思成陈强陈思远
申请(专利权)人:上海电力大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1