一种针对MapReduce计算的数据保密方法及系统与流程

文档序号:20764526发布日期:2020-05-15 18:42阅读:来源:国知局

技术特征:

1.一种针对mapreduce计算的数据保密方法,其特征在于,所述针对mapreduce计算的数据保密方法包括以下步骤:

第一步,在标准mapreduce计算框架下提出两种新型数据混洗方案:fullshuffle和safeshuffle;在mapping阶段层定义三个新型子阶段:map阶段、combine阶段以及partition阶段,在reducing阶段层定义reduce子阶段;

第二步,在mapreduce的mapping阶段层的map子阶段中,系统将输入数据整理为key-value键值对的形式进行预处理;

第三步,通过combine阶段,将map子阶段每一个map任务中的键值对根据key值进行合并,并通过预先的数据集key值种类数目添加假键值对到该值,以使每一个map任务输出的数据量大小相等,或者,在前述基础上添加混淆键值对,以使隐藏真实数据集key值种类数目;

第四步,partition子阶段的partition函数会将合并后的键值对分别分发给reducing阶段层的每一个reduce任务,以使reduce子阶段的每一个reduce任务输入的数据大小相等;

第五步,对reduce子阶段的每个reduce任务接受到的数据进行处理,丢弃所有假键值对、混淆键值对以及不属于reduce子阶段各个reduce任务合并的键值对数据;

第六步,在reduce子阶段每个reduce任务的最后输出存储dfs阶段(cleanup函数),根据数据集key值种类数目再次添加混淆键值对,以使每个reduce任务输出的数据大小相等。

2.如权利要求1所述的针对mapreduce计算的数据保密方法,其特征在于,所述第二步具体包括:mapreduce的mapping阶段层的map子阶段中,map主函数将输入的数据整理为t=(t.key,t.value)键值对的格式进行预处理;其中输入的数据将会均匀地分配给每一个map任务,即每个map任务会有|d|/m大小的数据输入,对于输入的数据先解密,然后通过map_function按行读取成中间键值对<k,v>的形式;其中输入数据集用|d|表示,|.|表示对数据加密处理后的大小,m表示map任务数量,map_function为每个map任务中的map主函数。

3.如权利要求1所述的针对mapreduce计算的数据保密方法,其特征在于,所述第三步具体包括:在每个map任务中部署combiner_function,当map_function生成输出加密键值对|t|时,combiner_function会先进行解密,然后利用reduce_function合并拥有相同key值的键值对;其中reduce_function为每个reduce任务中的reduce主函数,combiner_function为combine子阶段的主函数;作为结果,每一个map任务中会生成合并的键值对组,其中每一个键值对的key值都是独一无二的,用键值对格式(kauthentic,vauthentic)称该键值对组为可信键值对组;

一个map任务mapi产生了可信键值对组tm={<k1,v1>,…,<k|tm|,v|tm|>},当|tm|<k,m将会生成dm=k-|tm|个假键值对<kd1,vd1>,…,<kddm,vddm>;其中mapi∈{map1,…,mapm},任务下标mu(1,m),k为原始数据集中key的种类数量,|tm|为可信键值对组中键值对的数量;生成的假键值对的格式为(kdummy,vdummy),其中kdummy和vdummy是预先设定好的带有标记的虚拟假值;最后在partition子阶段,每个map任务中将会有|tm|个可信键值对以及dm个假键值对,<k1,v1>,…,<kk,vk>,被加密分发给reduce子阶段的每个reduce任务;添加一定数量的混淆键值对<kf1,vf1>,…,<kfk’,vfk’>,以使隐藏真实数据集key值种类数目k;其中混淆键值对的数量用k’表示,键值对格式同样使用带有特殊标记的虚拟值(kfake,vfake)表示;最后在partition子阶段,每个map任务中将会有|tm|个可信键值对、dm个假键值对以及k’个混淆键值对,<k1,v1>,…,<kk+k’,vk+k’>,被加密分发给reduce子阶段的每个reduce任务。

4.如权利要求1所述的针对mapreduce计算的数据保密方法,其特征在于,所述第四步具体包括:partition子阶段的partition函数会将合并后的键值对分别分发给reduce子阶段的每一个reduce任务,以使reduce子阶段的每一个reduce任务输入的数据大小相等;在partition子阶段的partition函数中,先对每一个加密键值对|t|=<t.key,t.value>解密,之后通过全分配函数full_partition_function来进行完全分配键值对t;其中对于每个键值对t来说都会执行r次full_partition_function,从而依次生成full_partition_function(t.key)=r(1,2,...,r)的分配规则;令reduce子阶段中的reduce任务为reducej∈{reduce1,…,reducer},对于fullshuffle方案,每个任务reducej都会接收到k=dm+|tm|个加密键值对,其中包括可信键值对组(kauthentic,vauthentic)和假键值对(kdummy,vdummy),或者对于safeshuffle方案将接收到k+k’个加密键值对,包括可信键值对组(kauthentic,vauthentic)、假键值对(kdummy,vdummy)以及混淆键值对(kfake,vfake)。

5.如权利要求1所述的针对mapreduce计算的数据保密方法,其特征在于,所述第五步具体包括:通过partition子阶段的partition函数,reduce子阶段的每个reducej任务将会接收到各个mapi任务传来的加密键值对组{|t|i},先解密键值对|t|,对于得到的每一个键值对t=(t.key,t.value)进行判断;如果t.key=kdummy或者t.key=kfake,那么任务reducej将会丢弃这些键值对,在每一个任务reducej的主函数reduce_function中,通过引用用户自定义的分配函数user_partition_function来处理可信键值对;如果user_partition_function(t.key)=j,则保留该键值对,否则丢弃该键值对;其中对于reducej任务下标r,函数user_partition_function(t.key)=ru(1,r),通过判断r与当前reduce任务j的值来确定键值对的取舍;之后保留的键值对会依次通过reduce任务主函数reduce_function的处理,将拥有相同key值的键值对进行分组合并,作为结果,每个reducej任务中将会生成一组key值唯一的键值对集合,称为可信键值对组tm,标记为(kauthentic,vauthentic)。

6.如权利要求1所述的针对mapreduce计算的数据保密方法,其特征在于,所述第六步具体包括:对于fullshuffle方案而言,每个reducej任务生成的可信键值对组tm,当其数量|tm|<k时,r将会生成dr=k-|tm|个假键值对<kd1,vd1>,…,<kddr,vddr>;其中任务下标ru(1,r),k为原始数据集中key的种类数量,|tm|为可信键值对组中键值对的数量;生成的假键值对的格式为(kdummy,vdummy),其中kdummy和vdummy是预先设定好的带有标记的虚拟假值;最后在存储dfs阶段,每个reduce任务中将会有|tm|个可信键值对以及dr个假键值对,即<k1,v1>,…,<kk,vk>,被加密存储到dfs中;

对于safeshuffle方案而言,每个reducej任务生成的可信键值对组tm,当其数量|tm|<k时,r将会生成dr=k+k’-|tm|个假键值对<kd1,vd1>,…,<kddr,vddr>;其中任务下标ru(1,r),k为原始数据集中key的种类数量,|tm|为可信键值对组中键值对的数量;生成的假键值对的格式为(kdummy,vdummy),其中kdummy和vdummy是预先设定好的带有标记的虚拟假值;最后在存储dfs阶段,每个reduce任务中将会有|tm|个可信键值对以及dr个假键值对,<k1,v1>,…,<kk+k’,vk+k’>,被加密存储到dfs中。

7.一种实施权利要求1~6任意一项所述针对mapreduce计算的数据保密方法的针对mapreduce计算的数据保密系统,其特征在于,所述针对mapreduce计算的数据保密系统包括:

map子阶段处理模块,用于在mapreduce的mapping阶段层的map子阶段中,系统将输入数据整理为key-value键值对的形式进行预处理;

combine子阶段处理模块,用于将map子阶段每一个map任务中的键值对根据key值进行合并,并通过预先的数据集key值种类数目添加假键值对到该值,以使每一个map任务输出的数据量大小相等,或者,在前述基础上添加混淆键值对,以使隐藏真实数据集key值种类数目;

partition子阶段处理模块,用于partition子阶段的partition函数将合并后的键值对分别分发给reducing阶段层的每一个reduce任务,以使reduce子阶段的每一个reduce任务输入的数据大小相等;

reduce子阶段处理模块4,用于对reduce子阶段的每个reduce任务接受到的数据进行处理,丢弃所有假键值对、混淆键值对以及不属于reduce子阶段各个reduce任务合并的键值对数据;

reduce子阶段末处理模块,用于在reduce子阶段每个reduce任务的最后输出存储dfs阶段(cleanup函数),根据数据集key值种类数目再次添加混淆键值对,以使每个reduce任务输出的数据大小相等。

8.一种实现权利要求1~6任意一项所述针对mapreduce计算的数据保密方法的信息数据处理终端。

9.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1~6任意一项所述的针对mapreduce计算的数据保密方法。

10.一种应用权利要求1~6任意一项所述针对mapreduce计算的数据保密方法的云计算数据保密系统。


技术总结
本发明属于云计算数据保密技术领域,公开了一种针对MapReduce计算的数据保密方法及系统,在标准MapReduce计算框架下提出Full Shuffle和Safe Shuffle;输入数据整理为key‑value键值对的形式进行预处理;将Map子阶段每一个map任务中键值对根据key值进行合并;将合并后键值对分别分发给Reducing阶段层的每一个reduce任务;对Reduce子阶段每个reduce任务接受到的数据进行处理;使每个reduce任务输出数据大小相等。本发明保护了远程执行环境场景下基于MapReduce框架数据和隐私,避免了应用程序的数据隐私被恶意观察者通过边信道攻击获取。

技术研发人员:王永智;张小宇
受保护的技术使用者:西安电子科技大学
技术研发日:2019.12.06
技术公布日:2020.05.15
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1