基于Spark与Huffman编码的CPIR‑V最近邻隐私保护查询方法与流程

文档序号:12034824阅读:336来源:国知局
本发明涉及通信网络
技术领域
:,尤其涉及一种基于spark与huffman编码的cpir-v最近邻隐私保护查询方法。
背景技术
::伴随着移动设备的不断发展与生产,多样的定位手段以及多种通讯方式的出现,由于多样的定位技术的产生,移动终端的普及以及通信设备的广泛使用,以基于位置服务(lbs)为代表的移动应用已经步入移动大数据时代。而处理日益增长的数据量仅依靠现有的pc和服务器的组织架构的计算能力是无法满足的,但是如果通过升级硬件设备来提升计算能力则会浪费大量的财力和物力,也无法获取到有效地水平扩展性和可维护性。因此在节省成本,提高水平扩展性和可维护性方面做了很大的研究,google公司在搜索引擎大会(sessanjose2006)首次提出“云计算”(cloudcomputing)的概念。云计算是一种并行计算,它通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变。云平台为移动大数据的处理提供了良好的平台,将传统的lbs应用和lbs隐私保护技术移到云平台上已经是lbs应用技术和隐私保护技术发展趋势并且目前已经成为了研究热点之一。在大数据时代,通过对大数据进行分析、归纳、挖掘进而从中获取潜在的信息,这些潜在信息可以帮组企业和商家获得巨大收益,比如调整市场政策、减少和规避风险、理性面对市场变化做决策等等。然而,随着对大数据进行挖掘的技术不断出现和完善,在挖掘潜在信息的同时也有可能存在着泄露个人隐私的危险,以至于严重威胁到个人信息安全以及企业的商业机密,国家的安全机密等等。随着大数据应用的发展和普及,个人的隐私保护显得尤为重要并且将成为一大严峻挑战。目前隐私保护研究方向主要分为三类:基于泛化的隐私保护技术、基于加密的隐私保护技术和基于干扰的隐私保护技术,其中基于加密的隐私保护技术主要代表有基于计算的私有信息检索(computionalprivateinformationretrieval,cpir)。cpir是基于二次剩余的难解问题,表明在一个大复合模量(通常是1024bit)的模运算中,区分二次剩余是难计算的问题。cpir算法大大降低了通信复杂度,但也提高了计算的复杂度,保证了最强的隐私保护程度。但是,lbs隐私保护会涉及到大量的计算操作和复杂的变换操作,cpir算法计算时需要扫描全部的数据空间使得计算量大且计算时间长,这使得传统计算平台的计算能力已经无法满足现有的需求。技术实现要素:针对上述问题,本发明的目的在于提供一种基于spark与huffman编码的cpir-v最近邻隐私保护查询方法,减少cpir计算代价,进一步提高性能。为了解决
背景技术
:中所存在的问题,本发明的技术方案为:一种基于spark与huffman编码的cpir-v最近邻隐私保护查询方法,包括:1)、将文件处理,得到网格,读取文件中网格的最近邻矩阵数据;2)、对最近邻矩阵数据中的元素使用huffman编码进行压缩,减少所述元素的bit位数;3)、将编码后的最近邻矩阵数据存储到空间数据库hbase中;4)、接收客户端数据查询信息后,服务器端根据数据查询信息以及从数据库hbase中读取对应的查询信息存储到spark并行框架的rdd中,并根据并行策略对rdd中的cpir最近邻矩阵进行分组,spark根据查询信息进行cpir并行计算,将每个分组的计算结果聚合然后将查询结果和字符码长发送给客户端;5)、客户端将查询结果解析获得查询位的值,将查询位的值解压,得到查询信息。所述步骤1)将文件处理,得到网格,读取文件中网格的最近邻矩阵数据包括:根据文件中空间数据的兴趣点划分voronoi图,然后通过voronoi图对空间数据进行划分得到voronoi格,然后对voronoi格进行网格划分,统计网格潜在最近邻数目,最后得到网格的最近邻矩阵。所述步骤2)具体包括:2.1、创建一个一维整数数组,将最近邻矩阵按字符读取,统计字符出现的频数并且字符的频数存储数组中,并且结束字符的频数为矩阵元素的总和;2.2、计算每个字符的频率,按照字符频率从小到大的顺序构造优先队列;2.3、利用优先队列构造哈夫曼树,并对哈夫曼树中的字符编码并将码长存入数组;2.4、将最近邻矩阵中每个元素重新编码并在元素编码后额外加入结束字符编码存入编码链表,统计每个元素编码完后bit位数存入数组;2.5、根据每个元素编码后的bit位数求出最大bit位数;2.6、将编码链表中的每个元素按照最大bit位数补全不足的bit位数。所述步骤2.6包括先在待补位元素中,补上结束字符并,再全补零。所述步骤3)具体包括:3.1、将最近邻矩阵压缩后的数据存入二维字节数组中,其中一维表示最近邻矩阵元素的总数,二维表示元素的最大字节值;3.2、对hbase数据库的rowkey进行设计,将最近邻矩阵每一行的行号逆序作为hbase的rowkey,使得编码后的最近邻矩阵数据在hbase的hregionserver上均匀分布;3.3、列按照列号对其存储,其值为每一行对应列号的网格中的元素,并将字符压缩后的码长存储到数据库中。所述客户端数据查询信息包括:根据查询点所在的位置计算查询点所在的网格,然后根据查询点所在的网格生成对应的二次剩余查询,最后将查询和网格划分大小以及选择的并行策略发送给服务端。所述步骤4)包括:接收从客户端发送的查询,网格划分数目和并行策略,根据网格划分数据从数据库hbase中读取对应的cpir最近邻矩阵、字符码长和最大值存储到spark的rdd中,接着根据客户端发送的并行策略对rdd中的cpir最近邻矩阵进行分组,分完组以后spark根据查询q进行cpir并行计算,最后获得计算结果,spark将每个分组的计算结果聚合然后将查询结果和字符码长发送给客户端。所述根据客户端发送的并行策略对rdd中的cpir最近邻矩阵进行分组包括基于row级分组和基于bit级分组:所述基于row级分组则对cpir矩阵按照行进行分组;所述基于bit级分组则先获取集群目前分配的cpu的数量k,根据cpu的数据对cpir矩阵每一行的数据进行分组。所述步骤5)包括:接收服务端返回结果和字符码长,对结果进行二次剩余的计算,并获得查询位的值,将查询位的值进行解压计算,获得正确的查询结果。与现有技术相比较,本发明的有益效果为:本发明提供了一种基于spark与huffman编码的cpir-v最近邻隐私保护查询方法,通过利用huffman编码对数据进行压缩减少数据量从而减少cpir的计算量,服务端进行cpir计算时,采用spark框架进行并行计算从而降低计算时间,解决计算时间长的问题。本发明基于spark并行化和huffman编码的隐私保护查询算法,保证在大数据应用场景下,保护用户的查询隐私并在原有的查询效果下提高查询效率。附图说明图1是本发明基于spark与huffman编码的cpir-v最近邻隐私保护查询方法流程图;图2是本发明voronoi图的网格划分示意图;图3是本发明不同网格划分的服务端计算平均时间图,其中,(a)为均匀分布网格划分的服务端计算平均时间图,(b)为高斯分布网格划分的服务端计算平均时间图,(c)为真实数据网格划分的服务端计算平均时间图。具体实施方式下面结合附图对本发明做详细描述。如图1所示,本发明提供了一种基于spark与huffman编码的cpir-v最近邻隐私保护查询方法,包括:1)、将文件处理,得到网格,读取文件中网格的最近邻矩阵数据;根据文件中空间数据的兴趣点划分voronoi图,然后通过voronoi图对空间数据进行划分得到voronoi格,然后对voronoi格进行网格划分,统计网格潜在最近邻数目,最后得到网格的最近邻矩阵。所述voronoi图是通过对空间的划分体现了空间对象之间的近邻的拓扑关系,图中每个多边形被称为voronoi格,而voronoi格的边则是相邻空间对象的垂直平分线。在对voronoi格进行网格划分时需要注意网格划分的大小,网格划分太小,最近邻矩阵中数据过多,客户端对查询结果进行解析计算时计算开销大;网格划分太大,最近邻矩阵中数据过少,压缩后效果不佳,因此需要根据兴趣点的密度合理划分网格。示例性的,整个空间被划分为g*g的网格,每个网格都会与其中的一个voronoi格相交或被包含。如图2所示,其中p代表兴趣点而q代表查询点,将整个空间划分为5*5的网格,其中网格标号为1,1与兴趣点p1,p2所在的voronoi格相交,网格标号为2,1被兴趣点p1所在的vorono格包含。图2中,查询点q所在的网格与兴趣点q所在的voronoi格相交,因此查询点q的最近邻可能是p1,p2,故由p1,p2形成的集合{p1,p2}称为网格2,1的潜在最近邻集合。由此可知网格所拥有的最近邻点数量不一定,这与点的分布以及网格的大小有关。cpir-v算法是将图2中每个网格的最近邻关系转换为最近邻存储矩阵,其中矩阵中存储的是每个网格的潜在最近邻点,要注意的是,存储矩阵中每个元素的大小都是相同的。cpir-v算法首先找到网格潜在最近邻的最大值p_max,然后对数量小于最大值的网格进行默认值补全。网格潜在最近邻最大值为3,因此对其他数量不足的网格进行补全。每个网格潜在最近邻关系保存在矩阵中,该矩阵是进行cpir-v最近邻查询算法的基础和核心。2)、对最近邻矩阵数据中的元素使用huffman编码进行压缩,减少所述元素的bit位数;huffman编码是一种无损压缩的可变长编码(vlc:variablelengthcoding)方式,是依据字符在需要编码文件中出现的概率来构造对字符的唯一编码,并且保证了可变编码的平均编码最短,被称为最优二叉树,有时又称为最佳编码。由于huffman编码是可变长编码,故对于出现概率较高的字符,编码的长度较短,而对于出现概率较低的字符,编码长度较长,这样保证了处理全部字符的总码长一定小于实际的编码长度。具体包括:2.1、创建一个一维整数数组,将最近邻矩阵按字符读取,统计字符出现的频数并且字符的频数存储数组中,并且结束字符的频数为矩阵元素的总和;2.2、计算每个字符的频率,按照字符频率从小到大的顺序构造优先队列;2.3、利用优先队列构造哈夫曼树,并对哈夫曼树中的字符编码并将码长存入数组;2.4、将最近邻矩阵中每个元素重新编码并在元素编码后额外加入结束字符编码存入编码链表,统计每个元素编码完后bit位数存入数组;2.5、根据每个元素编码后的bit位数求出最大bit位数;2.6、将编码链表中的每个元素按照最大bit位数补全不足的bit位数。具体包括先在待补位元素中,补上结束字符并,再全补零。3)、将编码后的最近邻矩阵数据存储到空间数据库hbase中;hbase是一个分布式的、面向列存储的key-value开源数据库,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。它利用hadoophdfs作为其文件存储系统,模仿并提供了基于google文件系统的bigtable数据库的所有功能。利用hbase技术可以在廉价的pcserver上搭建起大规模结构化存储集群。由于hbase是一个键值数据库,因此hbase适合于非结构化数据存储的数据库。最近邻矩阵存储在空间数据库hbase中,因此最近邻矩阵压缩后存储到hbase数据库的过程如下:通过对hbase数据库的rowkey进行设计从而达到数据在hbase的hregionserver上均匀分布,rowkey的主要设计思路是将最近邻矩阵每一行的行号逆序作为hbase的rowkey,这样使得hbase的hregionserver中存储的数据量不会过大而且每个hregionserver都有数据存储。列按照列号对其存储,其值为每一行对应列号的网格中的元素,最后将字符压缩后的码长存储到数据库中。具体包括:3.1、将最近邻矩阵压缩后的数据存入二维字节数组中,其中一维表示最近邻矩阵元素的总数,二维表示元素的最大字节值;3.2、对hbase数据库的rowkey进行设计,将最近邻矩阵每一行的行号逆序作为hbase的rowkey,使得编码后的最近邻矩阵数据在hbase的hregionserver上均匀分布;3.3、列按照列号对其存储,其值为每一行对应列号的网格中的元素,并将字符压缩后的码长存储到数据库中。具体存储格式如表1所示。表1h-pcir-v信息表结构4)、接收客户端数据查询信息后,服务器端根据数据查询信息以及从数据库hbase中读取对应的查询信息存储到spark并行框架的rdd中,并根据并行策略对rdd中的cpir最近邻矩阵进行分组,spark根据查询信息进行cpir并行计算,将每个分组的计算结果聚合然后将查询结果和字符码长发送给客户端;所述客户端数据查询信息包括:根据查询点所在的位置计算查询点所在的网格,然后根据查询点所在的网格生成对应的二次剩余查询,最后将查询和网格划分大小以及选择的并行策略发送给服务端。具体步骤为:1:根据查询点的位置计算查询点所在的网格ga,b;2:生成查询q(y1,y2,…,yg_x),其中下标为b对应yi=qnr,其余的下标值对应为yi=qr;3:将查询q,网格划分数目g_x,g_y,并行策略strategy发送至服务端;4:等待服务端返回查询结果;接收从客户端发送的查询,网格划分数目和并行策略,根据网格划分数据从数据库hbase中读取对应的cpir最近邻矩阵、字符码长和最大值存储到spark的rdd中,接着根据客户端发送的并行策略对rdd中的cpir最近邻矩阵进行分组,分完组以后spark根据查询q进行cpir并行计算,最后获得计算结果,spark将每个分组的计算结果聚合然后将查询结果和字符码长发送给客户端。所述根据客户端发送的并行策略对rdd中的cpir最近邻矩阵进行分组包括基于row级分组和基于bit级分组:所述基于row级分组则对cpir矩阵按照行进行分组;所述基于bit级分组则先获取集群目前分配的cpu的数量k,根据cpu的数据对cpir矩阵每一行的数据进行分组。具体为:1:服务端根据网格划分g_x,g_y获取cpir矩阵数据、字符码长和最大值缓存到rdd;2:如果并行策略strategy是row则对rdd中的cpir矩阵数据按照行进行分组;3:如果并行策略strategy是bit则获得当前集群分配的cpu数量k,将每一行数据分为k组;4:如果并行策略strategy不匹配则默认是row,rdd中的cpir矩阵数据按照行进行分组;5:spark根据查询q对每个分组进行cpir计算获得查询结果z;6:spark将结果z聚合,然后将查询结果和字符码长发送到客户端;5)、客户端将查询结果解析获得查询位的值,将查询位的值解压,得到查询信息。包括:接收服务端返回结果和字符码长,对结果进行二次剩余的计算,并获得查询位的值,将查询位的值进行解压计算,获得正确的查询结果。实验结果对比:采用的云计算服务平台是ibmxseriessystem3650m4,其中集群节点为5个,每个节点的详细配置如下所示:cpu:2*xeone5-2620cpu(每个有6核心*2线程);内存:32gbytes;硬盘:5tbytes,10000rpm,raid5;操作系统:centos6.4;开发工具:gnutoolkits(g++、gdb)、make、vim,jdk等。实验所用开发语言为标准c++,java,scala语言。主要使用三种数据集,两种为合成的数据集和真实数据集,对实验结果进行分析,通过实验结果进一步分析算法的查询性能。真实数据集是选自加利福尼亚的sequoia。合成数据集是采用服从均匀分布和高斯分布的数据集,其中高斯分布的数据集服从(x,y)~n(1,1,0,0,1)。数据取值范围为1046435*1929615,请注意横坐标x和纵坐标y的类型是int型。c++所使用的大数计算库为gmp,大整数计算工具使用javajdk自带的biginteger大数计算类,请注意二次剩余中所涉及到的阈值的取值规则为:满足θ个大整数相乘的时间大于一次内存查表时间条件的最小取值,通过实验室得出,当θ=3时,大整数相乘的耗时超过了内存查表的时间,因此将θ的值取为3。实验使用的参数如表2所示。表2实验数据参数参数名称变化范围默认值数据类型真实数据(62k),高斯分布(100k),均匀分布(100k)均匀分布(100k)网格划分10*10,20*20,50*50,100*100,200*200,400*400100*100模量k128,256,512,1024512范围查询覆盖率1,5,10,151查询结果计算方法公式2.10,公式2.11公式2.10cpu核心数量1,10,20,40,6060数据压缩实验结果:表3范围查询算法数据压缩对比在数据预处理阶段的算法使用huffman编码将网格中的数据进行压缩,范围查询数据压缩前和压缩后的对比如表3所示。从表3中可看出范围查询的数据经过huffman编码压缩后数据量减少了将近一半,其压缩比接近55%。数据量减少了一般意味着服务端进行cpir计算量也相应的减少了一半,这使得服务端的计算时间有所下降。表4cpir-v算法数据压缩对比表4显示了cpir-v算法在数据预处理阶段将最近邻矩阵中的数据使用huffman编码压缩得到矩阵中最大值压缩后大小,将其与压缩之前的矩阵最大值和压缩之后的最大值进行对比。由表4可以看出,cpir-v算法通过huffman编码压缩后,矩阵中最大值的大小将近减少了1/3。由于cpir-v算法是先查找最近邻矩阵中元素最大值然后将其余的补全,假设最近邻为n*n,其中最大值为m,那么服务端的大数计算量为m*n*n;经过huffman编码压缩后矩阵中最大值为(2/3)m,那么服务端的大叔计算量为(2/3)m*n*n,整体上服务端的计算量计算了(1/3)m*n*n。如图3所示,是基于spark的并行cpir-v算法(pcpir-v)与基于spark和huffman编码的并行cpir-v算法(h-pcpir-v)row并行策略和bit并行策略在不同网格划分下服务端计算时间的对比图。其中图中h-pcpir-v-r是指基于row并行策略,而h-pcpir-v-b是指基于bit并行策略。从图中可以看出,三种算法随着网格的增大服务端的计算时间总体上也随着变大,这是因为网格划分越大,cpir-v的计算矩阵越多,需要的大整数计算也越多从而导致计算时间增大。图中显示了三种数据集在不同网格下服务端的计算时间,从图中可以看出在h-pcpir-v-r算法和h-pcpir-v-b算法在服务端的计算时间总体上比pcpir-v算法少,并且在高斯分布数据集和真实数据集中比较明显,这是因为h-pcpir-v-r和h-pcpir-v-b在数据预处理阶段对矩阵中共的数据进行了压缩从而导致矩阵中进行大整数计算的位数减少进一步减少了服务端计算时间。高斯分布数据集和真实数据集的服务端计算时间差距比均匀分布数据集的服务端计算时间差距明显的原因是均匀分布数据集中矩阵数据比较均匀,压缩后没有产生较大影响而另外两种数据集矩阵中数据分布大小不一,最大值与最小值差距较大从而导致压缩后计算位数产生了较大差距,这就导致了计算结果有影响。通过对比实验及实验结果分析发现h-pcpir-v算法比pcpir-v算法在服务端的计算代价下降30%左右,客户端的计算代价下降10%左右,通信代价下降40%左右。对于本领域技术人员而言,显然能了解到上述具体实施例只是本发明的优选方案,因此本领域的技术人员对本发明中的某些部分所可能作出的改进、变动,体现的仍是本发明的原理,实现的仍是本发明的目的,均属于本发明所保护的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1