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

基于均匀访问频率的数据访问模式保护的范围查询方法

2023-02-06 11:37:29 来源:中国专利 TAG:


1.本发明属于数据安全性技术领域,具体涉及一种基于均匀访问频率的数据访问模式保护的范围查询方法。


背景技术:

2.随着云计算以及计算机安全的发展,人们对隐私保护的意识越来越强烈。数据库加密算法是非常常见的隐私保护的算法,目前在数据安全性和查询高效性两方面都有长足发展。但是,人们越来越发现,仅仅对数据库执行加密算法,并不能保护访问请求的整个过程,不能抵挡所有类型的数据攻击。例如,通过观察用户对数据库中数据访问的模式,就可以推断出很多隐私信息,这其中就包括加密数据的内容。所以,我们应该提高保护数据访问模式的意识。
3.现有的研究中,面向数据访问模式保护的点查询算法不在少数,但是对范围查询提供数据访问模式保护的算法较少。目前提供数据访问模式保护的方法包括不经意随机访问机(oram)和其他保护数据访问模式。其中,不经意随机访问机(oram)可以对数据存储提供数据访问模式保护,并支持数据读写等点查询,例如,“path oram:an extremely simple oblivious ram protocol”,path oram将每次读写请求的时间复杂度降到了对数级别,是目前使用较为广泛的oram设计,“efficient oblivious query processing for range and knn queries”,该算法通过在不经意随机访问机中集成树型索引,支持面向数据访问模式保护的范围查询。但是,不经意随机访问机的性能存在理论下界,与不提供数据访问模式保护的数据查询相比,网络通信开销的比率为对数级别,造成数据查询处理的巨大时间开销
4.其他保护数据访问模式的技术方案,例如“pancake:frequency smoothing for encrypted data stores.”,该算法主要是通过选择性复制、虚假访问和查询批处理这三种技术的组合来实现查询请求的数据访问模式不可区分性,支持对数据库中的键值对的点查询。但是,该方法在保护数据访问模式的情况下,支持针对键值型数据的点查询,但是其依赖的查询独立性假设导致其难以安全地扩展支持范围查询。


技术实现要素:

5.为了解决现有技术中存在的上述问题,本发明提供了一种基于均匀访问频率的数据访问模式保护的范围查询方法。本发明要解决的技术问题通过以下技术方案实现:
6.本发明提供了一种基于均匀访问频率的数据访问模式保护的范围查询方法,包括:
7.步骤1:按照范围查询的最大长度对数据库中的多个键值对进行分组存储,得到若干个原始存储模块;
8.步骤2:对每个所述原始存储模块进行副本添加处理和虚拟关键字添加处理,得到最终存储模块,其中,每个所述最终存储模中的所有键值对副本个数总和与虚拟关键字个
数之和等于2n,其中,n表示最终存储模块对应的原始存储模块中的键值对的个数总和;
9.步骤3:计算得到每个所述最终存储模块中每个键值对副本的副本虚假访问频率;
10.步骤4:根据接收的查询访问请求的范围查询长度,选取查询的最终存储模块,将所述查询访问请求分解为两个子查询访问请求,根据选取的最终存储模块对两个子查询访问请求分别进行查询得到对应的子查询结果,将两个子查询结果对应的关键字与所述查询访问请求对应的关键字进行对比,得到所述查询访问请求的查询结果;
11.其中,在对所述子查询访问请求进行查询过程中,根据所述副本虚假访问频率随机生成虚假访问请求,将所述虚假访问请求与所述子查询访问请求混合进行查询批处理,得到对应的子查询结果。
12.在本发明的一个实施例中,所述步骤1包括:
13.步骤1.1:根据范围查询的最大长度a,设置l,使得范围查询的最大长度a满足2
l-1
<a<2
l
,l为大于0的整数;
14.步骤1.2:根据l取值对数据库中的多个键值对进行分组存储,得到l 1个原始存储模块;
15.其中,在第i个原始存储模块中,将所述数据库中的多个键值对以2
i-1
个键值对为一组进行分组存储,i=1,2,

l 1。
16.在本发明的一个实施例中,若所述范围查询的最大长度a未知,则l取值为满足2
l
≤n的最大正整数,并根据l取值对数据库中的多个键值对进行分组存储,得到l 1个原始存储模块。
17.在本发明的一个实施例中,所述步骤2包括:
18.步骤2.1:根据所述数据库中每个键值对的访问频率,对每个所述原始存储模块中的键值对增加相应的副本;
19.步骤2.2:利用随机函数对增加副本后的原始存储模块添加虚拟关键字,得到最终存储模块。
20.在本发明的一个实施例中,在步骤2.1中,对每个原始存储模块中的键值对增加相应的副本后,键值对的副本个数为r(k)=[π(k)*n],其中,π(k)表示键值对k的访问频率。
[0021]
在本发明的一个实施例中,所述步骤3包括:
[0022]
按照下式对每个最终存储模块中每个键值对的副本虚假访问频率进行计算:
[0023][0024]
其中,π(k)表示键值对k的访问频率,r(k)表示在最终存储模块中键值对k的副本个数,πf(k,j)表示在最终存储模块中键值对k的副本j的副本虚假访问频率,δ表示概率常数,0<δ≤1。
[0025]
在本发明的一个实施例中,所述步骤4包括:
[0026]
步骤4.1:计算得到接收的查询访问请求的范围查询长度b,确认满足2
l-1
<b<2
l
的l值,根据l取值选取第l 1个原始存储模块对应的最终存储模块进行查询;
[0027]
步骤4.2:根据所述查询访问请求的范围,将所述查询访问请求分解为范围端点对应的点查询访问请求,作为两个子查询访问请求;
[0028]
步骤4.3:根据选取的最终存储模块对两个子查询访问请求分别进行查询得到对应的子查询结果;
[0029]
步骤4.4:将两个子查询结果中的每个value值对应的关键字与所述查询访问请求的范围进行对比,若该value值对应的关键字在所述查询访问请求的范围内,则保留该value值;若该value值对应的关键字不在所述查询访问请求的范围内,则删除该value值,将所有保留的value值作为所述查询访问请求的查询结果。
[0030]
在本发明的一个实施例中,在对所述子查询访问请求进行查询过程中,根据所述副本虚假访问频率随机生成虚假访问请求,将所述虚假访问请求与所述子查询访问请求混合进行查询批处理,得到对应的子查询结果,包括:
[0031]
步骤a:根据所述副本虚假访问频率随机生成虚假访问请求,将所述虚假访问请求与所述子查询访问请求混合,形成预设大小的一批访问请求组;
[0032]
步骤b:对所述访问请求组中的访问请求进行查询,保留子查询访问请求的查询结果。
[0033]
与现有技术相比,本发明的有益效果在于:
[0034]
1、本发明的基于均匀访问频率的数据访问模式保护的范围查询方法,利用了均匀访问分布频率的方法,实现数据库中数据块访问频率的均一分布,具有较强的安全隐私保护功能。
[0035]
2、本发明的基于均匀访问频率的数据访问模式保护的范围查询方法,能够快速的实现范围查询,可以根据范围查询的起点和终点,在存储的数据中进行查找,提高查询效率。
[0036]
3.本发明的基于均匀访问频率的数据访问模式保护的范围查询方法,与不提供数据访问模式保护的范围查询相比,其网络通信开销比率为常数级别,具有较高的查询性能。
[0037]
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
[0038]
图1是本发明实施例提供的一种基于均匀访问频率的数据访问模式保护的范围查询方法的示意图;
[0039]
图2是本发明实施例提供的数据分组存储流程图;
[0040]
图3是本发明实施例提供的子查询访问请求的查询流程图;
[0041]
图4是本发明实施例提供的查询访问请求的查询流程图;
具体实施方式
[0042]
为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对依据本发明提出的一种基于均匀访问频率的数据访问模式保护的范围查询方法进行详细说明。
[0043]
有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。通过具体实施方式的说明,可对本发明为达成预定目的所
采取的技术手段及功效进行更加深入且具体地了解,然而所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
[0044]
实施例一
[0045]
请参见图1,图1是本发明实施例提供的一种基于均匀访问频率的数据访问模式保护的范围查询方法的示意图,如图所示,本实施例的基于均匀访问频率的数据访问模式保护的范围查询方法,包括:
[0046]
步骤1:按照范围查询的最大长度对数据库中的多个键值对进行分组存储,得到若干个原始存储模块;
[0047]
其中,在本实施例中,数据库中包括具有n个键值对的明文数据,该明文数据可以表示为,kv={(km,vm)},m∈{1,2,...,n},k表示关键字,v表示value值。
[0048]
具体对数据库中的多个键值对进行分组存储的流程如图2所示的数据分组存储流程图。
[0049]
在一个可选地实施方式中,步骤1包括:
[0050]
步骤1.1:根据范围查询的最大长度a,设置l,使得范围查询的最大长度a满足2
l-1
<a<2
l
,l为大于0的整数;
[0051]
步骤1.2:根据l取值对数据库中的多个键值对进行分组存储,得到l 1个原始存储模块。
[0052]
其中,在第i个原始存储模块中,将数据库中的多个键值对以2
i-1
个键值对为一组进行分组存储,i=1,2,

l 1。
[0053]
也就是,在第一个原始存储模块中,将数据库中的多个键值对以20个键值对为一组进行分组存储,即,将所有键值对按照一个键值对为一组分组,共分为n组存储;
[0054]
在第二个原始存储模块中,将数据库中的多个键值对以21个键值对为一组进行分组存储,即,将所有键值对按照2个键值对为一组分组,共分为组存储,其中,为向上取整。
[0055]
以此类推,在第l 1个原始存储模块中,将数据库中的多个键值对以2
l
个键值对为一组进行分组存储,即,将所有键值对按照2
l
个键值对为一组分组,共分为组存储。
[0056]
在一个可选地实施方式中,第一个原始存储模块记为sub-id:0,第二个原始存储模块记为sub-id:1,第l 1个原始存储模块记为sub-id:l。
[0057]
在一个可选地实施方式中,若范围查询的最大长度a未知,则l取值为满足2
l
≤n的最大正整数,并根据l取值对数据库中的多个键值对进行分组存储,得到l 1个原始存储模块。
[0058]
步骤2:对每个原始存储模块进行副本添加处理和虚拟关键字添加处理,得到最终存储模块;
[0059]
在一个可选地实施方式中,步骤2包括:
[0060]
步骤2.1:根据数据库中每个键值对的访问频率,对每个原始存储模块中的键值对增加相应的副本;
[0061]
其中,对每个原始存储模块中的键值对增加相应的副本后,键值对的副本个数为r(k)=[π(k)*n],其中,π(k)表示键值对k的访问频率,π(k)为根据数据库访问历史获取的已知参数。
[0062]
在本实施例中,按照数据库中键值对访问频率的高低对相应键值对增加副本,即,访问频率越高,增加的副本越多,通过上述操作可以分散这些键值对的访问频率,在访问请求到达时,会随机的选择一个副本进行访问,使得最终的访问分布达到均一分布。
[0063]
需要说明的是,在对原始存储模块中的键值对增加相应的副本后,该存储模块中的所有键值对副本个数总和n’小于或等于2n。
[0064]
步骤2.2:利用随机函数对增加副本后的原始存储模块添加虚拟关键字,得到最终存储模块。
[0065]
其中,每个最终存储模中的所有键值对副本个数总和与虚拟关键字个数之和等于2n,其中,n表示最终存储模块对应的原始存储模块中的键值对的个数总和。
[0066]
在通过副本添加处理后,对于不同的原始存储模块,其中的所有键值对副本个数总和n’是不同的,由于攻击者可能从n’处了解到一些分布信息,所以这泄露了有关分布的信息。为了避免这种泄漏,通过虚拟关键字添加处理以使得每一个最终存储模块的所有副本总数(即,所有键值对副本个数总和与虚拟关键字个数之和)始终为2n,因此,无论访问频率如何,所有副本总数始终恰好是2n,当访问请求来临时,将使用相同比例的假查询和真查询混合在一起,就可以确保访问的均匀分布。
[0067]
步骤3:计算得到每个最终存储模块中每个键值对副本的副本虚假访问频率;
[0068]
在一个可选地实施方式中,按照下式对每个最终存储模块中每个键值对的副本虚假访问频率进行计算:
[0069][0070]
其中,π(k)表示键值对k的访问频率,r(k)表示在最终存储模块中键值对k的副本个数,πf(k,j)表示在最终存储模块中键值对k的副本j的副本虚假访问频率,δ表示概率常数,0<δ≤1。
[0071]
需要说明的是,利用公式(1)在最终存储模块中的副本上计算得到一个互补的虚假访问分布,使得任何给定副本的虚假访问的概率和真实访问的概率之和等于其中,2n表示最终存储模块的所有副本总数,通过这种方式添加虚假访问可以始终确保访问任何关键字的概率相等。
[0072]
具体地,通过选定一个概率常数δ,0<δ≤1,在本实施例中,δ取值为0.5,然后制作πf以便访问最终存储模块中任何副本(k,j)的概率等于且该概率是真正访问副本的概率和执行假访问的概率的凸组合。
[0073]
步骤4:根据接收的查询访问请求的范围查询长度,选取查询的最终存储模块,将查询访问请求分解为两个子查询访问请求,根据选取的最终存储模块对两个子查询访问请求分别进行查询得到对应的子查询结果,将两个子查询结果对应的关键字与查询访问请求
对应的关键字进行对比,得到查询访问请求的查询结果;
[0074]
具体对接受的查询访问请求进行查询的流程如图4所示的查询访问请求的查询流程图。在一个可选地实施方式中,步骤4包括:
[0075]
步骤4.1:计算得到接收的查询访问请求的范围查询长度b,确认满足2
l-1
<b<2
l
的l值,根据l取值选取第l 1个原始存储模块对应的最终存储模块进行查询;
[0076]
步骤4.2:根据查询访问请求的范围,将查询访问请求分解为范围端点对应的点查询访问请求,作为两个子查询访问请求;
[0077]
可选地,将已知的范围查询分解为左起点left-key和右终点right-key对应的点查询访问请求,作为两个子查询访问请求。
[0078]
步骤4.3:根据选取的最终存储模块对两个子查询访问请求分别进行查询得到对应的子查询结果;
[0079]
其中,在对子查询访问请求进行查询过程中,根据副本虚假访问频率随机生成虚假访问请求,将虚假访问请求与子查询访问请求混合进行查询批处理,得到对应的子查询结果。
[0080]
具体对子查询访问请求进行查询的流程如图3所示的子查询访问请求的查询流程图。在一个可选地实施方式中,包括以下步骤:
[0081]
步骤a:根据副本虚假访问频率随机生成虚假访问请求,将虚假访问请求与子查询访问请求混合,形成预设大小的一批访问请求组;
[0082]
在一个可选地实施方式中,将虚假访问请求与子查询访问请求混合,形成批次大小b=3的一批访问请求组,也就是,在形成的一批访问请求组中包括一个真实访问请求(子查询访问请求)和两个虚假访问请求。
[0083]
步骤b:对访问请求组中的访问请求进行查询,保留子查询访问请求的查询结果。
[0084]
示例性地,当子查询访问请求为对关键字k的访问请求时,抛掷一枚正反面概率为δ和1-δ的硬币,如果出现正面,则根据最终存储模块中副本的真实访问分布π出列一个真实访问请求,如果出现反面,则根据最终存储模块中副本的虚假访问分布πf出列一个虚假访问请求,直至形成批次大小b=3的一批访问请求组,然后对访问请求组中的访问请求进行查询,保留真实访问请求的查询结果。
[0085]
步骤4.4:将两个子查询结果中的每个value值对应的关键字与查询访问请求的范围进行对比,若该value值对应的关键字在查询访问请求的范围内,则保留该value值;若该value值对应的关键字不在查询访问请求的范围内,则删除该value值,将所有保留的value值作为查询访问请求的查询结果。
[0086]
本实施例的基于均匀访问频率的数据访问模式保护的范围查询方法,利用了均匀访问分布频率的方法,实现数据库中数据块访问频率的均一分布,具有较强的安全隐私保护功能。而且能够快速的实现范围查询,可以根据范围查询的起点和终点,在存储的数据中进行查找,提高查询效率。与不提供数据访问模式保护的范围查询相比,其网络通信开销比率为常数级别,具有较高的查询性能。
[0087]
实施例二
[0088]
本实施例通过仿真实验对实施例一的基于均匀访问频率的数据访问模式保护的范围查询方法的流程进行具体说明。
[0089]
在仿真中,设置数据库中包括具有n=16个键值对的明文数据,对应地,kv={(km,vm)}为:
[0090]
{(0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10),(11,11),(12,12),(13,13),(14,14),(15,15)}。
[0091]
其中,每个键值对对应的访问频率分配为0.125,0.0625,0.03125,0.03125,0.1,0.05,0.05,0.2,0.0625,0.03125,0.03125,0.025,0.05,0.05,0.05,0.05。
[0092]
首先,按照步骤1对这16个键值对进行分组存储,共需要存储5份,得到4个原始存储模块,记为sub-id:0;sub-id:1;sub-id:2;sub-id:3;sub-id:4。
[0093]
其中,在sub-id:0中,以20个kv对(键值对)为一组,也就是1个一组的形式进行分组存储,即,所有数据均需存储一份,存储关键字key为0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15的数据。
[0094]
在sub-id:1中,以21个kv对(键值对)为一组,也就是2个一组的形式进行分组存储,存储关键字key为0,2,4,6,8,10,12,14的数据。
[0095]
在sub-id:2中,以22个kv对(键值对)为一组,也就是4个一组的形式进行分组存储,存储关键字key为0,4,8,12的数据。
[0096]
在sub-id:3中,以23个kv对(键值对)为一组,也就是8个一组的形式进行分组存储,存储关键字key为0,8的数据。
[0097]
在sub-id:4中,以24个kv对(键值对)为一组,也就是16个一组的形式进行分组存储,存储关键字key为0的数据。
[0098]
其次,按照步骤2对每一个sub-id下存储的数据进行副本添加处理,具体地,按照访问频率π(k)为每一个sub-id下存储的数据,计算得到增加相应的副本后键值对的副本个数,然后复制相应的副本。
[0099]
其中,在sub-id:0下,16个关键字key对应副本个数分别为2,1,1,1,2,1,1,4,1,1,1,1,1,1,1,1;在sub-id:1下,8个关键字key对应副本个数分别为2,1,2,2,1,1,1,1;在sub-id:2下,4个关键字key对应副本个数分别为1,2,1,1;在sub-id:3下,2个关键字key对应副本个数分别为2,1;在sub-id:4下,1个关键字key对应副本个数为1。
[0100]
然后,按照步骤2对增加副本后的每一个sub-id下存储的数据进行虚拟关键字添加处理,具体地,利用随机函数为增加副本后的每一个sub-id下存储的数据都生成一个虚拟关键字。
[0101]
其中,在sub-id:0下,虚拟关键字key为3112378623742493,复制个数为11个;在sub-id:1下,虚拟关键字key为3112378623742493,复制个数为5个;在sub-id:2下,虚拟关键字key为3112378623742493,复制个数为3个;在sub-id:3下,虚拟关键字key为3112378623742493,复制个数为1个;在sub-id:4下,虚拟关键字key为3112378623742493,复制个数为1个。
[0102]
接下来,根据步骤4的副本虚假访问频率计算公式计算每个sub-id中每个键值对的副本虚假访问频率,其中,δ取值为0.5。
[0103]
通过上述操作,最终存储模块中的存储的信息汇总后如表1-表5所示。
[0104]
表1.sub-id:0存储信息
[0105][0106][0107]
表2.sub-id:1存储信息
[0108][0109]
表3.sub-id:2存储信息
[0110][0111][0112]
表4.sub-id:3存储信息
[0113][0114]
表5.sub-id:4存储信息
[0115][0116]
最后按照步骤4进行11-14的一个范围查询。在实际代码运行中,会先计算11-14的范围跨度为4,满足21《4≤22,因此需要查找sub-id:2下面的数据,在sub-id:2中,关键字key包括0,4,8,12以及虚拟关键字。很明显11-14范围在以8开头和以12开头的数据后面。所以,会产生两个真实的请求(两个子查询访问请求),一个是key为8,一个是key为12。在此以一次实际运行为例,根据概率,还产生了4个虚拟访问请求,分别是key为3112378623742493两次,key为4一次,key为12一次。此时对虚假访问请求返回不做处理,对真实访问请求返回8,9,10,11,12,13,14,15与真实的请求的11-14作对比,返回真实请求需要的关键字对应的value值11,12,13,14,返回数据成功。
[0117]
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0118]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

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

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

相关文献