CN111163056B - 一种针对MapReduce计算的数据保密方法及*** - Google Patents

一种针对MapReduce计算的数据保密方法及*** Download PDF

Info

Publication number
CN111163056B
CN111163056B CN201911244325.3A CN201911244325A CN111163056B CN 111163056 B CN111163056 B CN 111163056B CN 201911244325 A CN201911244325 A CN 201911244325A CN 111163056 B CN111163056 B CN 111163056B
Authority
CN
China
Prior art keywords
key
reduce
key value
task
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911244325.3A
Other languages
English (en)
Other versions
CN111163056A (zh
Inventor
王永智
张小宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201911244325.3A priority Critical patent/CN111163056B/zh
Publication of CN111163056A publication Critical patent/CN111163056A/zh
Application granted granted Critical
Publication of CN111163056B publication Critical patent/CN111163056B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种针对MapReduce计算的数据保密方法及***
技术领域
本发明属于云计算数据保密技术领域,尤其涉及一种针对MapReduce计算的数据保密方法及***。
背景技术
目前,最接近的现有技术:MapReduce是一种并行编程模型,用于大规模数据集的并行计算,具有函数式编程语言和矢量编程语言的特性,具有数据划分和计算任务调度、***优化、出错检测和恢复的功能,因此,使得MapReduce适用于日志分析、机器学习、分布排序等应用程序。一个MapReduce作业是一个用户希望被执行的工作单元:它包括输入数据,MapReduce程序和配置信息。MapReduce通过把作业分成tasks(任务)的形式来运行该作业。任务分为map任务(map task)和reduce任务(reduce task)两种。多reduce任务的标准MapReduce的数据流是由分片、Map、Reduce等阶段构成。MapReduce中的每个map任务可以细分为4个阶段:recordread(用于数据分割)、map、combine(用于数据聚合,该阶段可省去)、partition(用于数据拆分)。Hadoop中的每个reduce任务可以细分为4个阶段:shuffle(混排)、sort(排序)、reduce和outputformat(输出格式)。
Hadoop是MapReduce框架的一种实现。它是开发和运行处理大规模数据的软件平台,是Apache用java语言实现的开源软件框架,实现由大量计算机组成的集群对海量数据进行分布式计算。Hadoop具有高效率、成本低、扩容能力强和可靠性的优点。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
SGX技术全称Intel Software Guard Extensions,是一组x86-64ISA扩展,可以设置受保护的执行环境(称为Enclave),除了处理器和用户放置在其包围区内的代码之外,不需要任何信任。一旦软件和数据位于Enclave中,即便操作***或者VMM(Hypervisor)也无法影响Enclave里面的代码和数据。Enclave的安全边界只包含CPU和它自身。Enclave受到处理器的保护:处理器控制对Enclave内存的访问。试图从Enclave外部读取或写入正在运行的Enclave的存储器的指令都将失败。Enclave缓存行在写入内存(RAM)之前经过加密和完整性保护。可以通过类似于Intel x86架构中的一种callgate调用机制从不受信任的代码调用Enclave代码,该机制将控制转移到Enclave内的用户定义的入口点。SGX支持远程认证,它使远程***能够以加密方式验证特定软件是否已在安全区Enclave内加载,并建立端到端的加密通道共享机密。
云计算是网格计算、分布式处理、并行处理的发展,可看作是这些计算机科学概念上的商业服务模式的实现,是一片用于计算的、能提供超大规模计算资源的服务器集群。作为基于网络计算的商业服务模式,云计算的用户可以按自己需求获取存储空间、计算能力、软件服务等,将计算任务分布在由大量计算机构成的资源池,使得用户的计算能力不再受自身的资源限制,而将负载较大的计算任务外包给云以完成高代价的计算。
虽然云计算具有虚拟化、按需服务、高可扩展性等较多优点,但用户将应用、数据等放于云端服务器,必然会面临一定的风险,可以预料到依赖云计算提供商来处理敏感数据将带来隐私泄露的风险。云服务提供商的可信性问题将严重影响用户对云服务的有效使用。
使用公共云基础设施来存储和处理大型数据集引发了新的安全问题。当前的解决方案建议加密所有数据,并且仅在安全硬件内以明文访问它。例如微软公司研究的VC3***,该***依靠SGX保护本地map任务和reduce任务的运行,可以调整流行的Hadoop框架保证完整性和保密性。所有数据都经过***AES-GCM加密。
即使是在用安全环境保护的VC3***中,大量数据的分布式处理仍然涉及不同处理和网络存储单元之间密集的加密通信,并且这些通信模式可能泄漏敏感信息。仅保护分布式计算的各个单元(例如,map和reduce单元),不可避免的暴露给攻击者了几个重要信息的泄漏通道。map和reduce作业的数据量对云提供者是可见的,并且在较小程度上对其他用户可见,观察和关联每个map和每个reduce之间交换的一系列中间键值对,由数据量大小可以学习到敏感信息。
对于以上问题,在微软的研究论文Olga等人的Observing and preventingleakage in MapReduce中提出了两种方案,SHUFFLE-IN-THE-MIDDLE方案,通过安全的将所有map生成交给所有Reduce使用的所有键值对进行改组操作来阻止对作业的中间流量分析。但是,攻击者仍然会观察每个map任务生成的记录数、reduce任务接收的记录数以及他们之间关联分布情况,效率低下。SHUFFLE&BALANCE方案,将此预处理拆分为离线和在线阶段,离线阶段随机化输入记录的顺序,保证所有map任务产生相同的键值对分布。在线阶段对输入数据采样,收集map生成的键值对的统计信息,用于在reduce之间平衡,并概率估计每个mapper发送给每个reduce的键值对数量的上限,从而实现将每个map任务发送的中间流量均匀分配到每个reduce任务,以来满足更高的安全定义。但实际上该方案离线阶段随机化输入记录的顺序,使得大小相同的两组输入数据集在运行过程中最大key值分布值相等。这个随机化记录的过程耗时会导致线下效率低下,且安全性仍然有不足,比如该方案会泄露相关数据集信息(最大key值)。
综上所述,现有技术存在的问题是:
1.现有方案对实验数据集运行记录要求相比很苛刻,这也导致了现有技术解决问题的适用性不高。
2.现有方案相比标准MapReduce框架而言具有较高的性能开销,例如SHUFFLE-IN-THE-MIDDLE方案会造成191%到205%的性能开销,SHUFFLE&BALANCE方案在线上阶段会造成95%到101%的性能开销。
3.现有方案只支持默认Partition函数,而不支持用户自定义的混洗函数。
4.现有方案成功的前提是对于输入数据的准确概率估计,一旦估计不准确,那么将会导致方案的失败以及不必要的高性能开销。
解决上述技术问题的难度:在保证MapReduce运行安全可靠的前提下,最大限度的避免数据集敏感信息的泄露以及提高方案的适用性,同时达到很好的性能提升。必须均衡安全性和性能之间的最佳关系,达到方案的最优化效果,这同时也是设计的难点与挑战。
解决上述技术问题的意义:通过解决上诉技术问题,可以在原有MapReduce框架下更好的保护中间数据流隐私,抵制不可信公共云中MapReduce框架中基于中间数据流的边信道攻击,在这一前提下最优化性能开销,以不影响云环境中分布式计算的高效率的特征,提出的一种新型***方法。
发明内容
针对现有技术存在的问题,本发明提供了一种针对MapReduce计算的数据保密方法及***。
本发明是这样实现的,一种针对MapReduce计算的数据保密方法,所述针对MapReduce计算的数据保密方法包括以下步骤:
第一步,在标准MapReduce计算框架下提出两种新型数据混洗方案:Full Shuffle和Safe Shuffle;在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任务输出的数据大小相等。
进一步,所述第二步具体包括:MapReduce的Mapping阶段层的Map子阶段中,map主函数将输入的数据整理为t=(t.key,t.value)键值对的格式进行预处理;其中输入的数据将会均匀地分配给每一个map任务,即每个map任务会有|D|/M大小的数据输入,对于输入的数据先解密,然后通过Map_function按行读取成中间键值对<K,V>的形式;其中输入数据集用|D|表示,|.|表示对数据加密处理后的大小,M表示map任务数量,Map_function为每个map任务中的map主函数。
进一步,所述第三步具体包括:在每个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任务。
进一步,所述第四步具体包括: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},对于Full Shuffle方案,每个任务reducej都会接收到K=Dm+|Tm|个加密键值对,其中包括可信键值对组(Kauthentic,Vauthentic)和假键值对(Kdummy,Vdummy),或者对于Safe Shuffle方案将接收到K+K’个加密键值对,包括可信键值对组(Kauthentic,Vauthentic)、假键值对(Kdummy,Vdummy)以及混淆键值对(Kfake,Vfake)。
进一步,所述第五步具体包括:通过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)。
进一步,所述第六步具体包括:对于Full Shuffle方案而言,每个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中;
对于Safe Shuffle方案而言,每个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中。
本发明的另一目的在于提供一种实施所述针对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任务输出的数据大小相等。
本发明的另一目的在于提供一种实现所述针对MapReduce计算的数据保密方法的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的针对MapReduce计算的数据保密方法。
本发明的另一目的在于提供一种应用所述针对MapReduce计算的数据保密方法的云计算数据保密***。
综上所述,本发明的优点及积极效果为:本发明在标准MapReduce计算框架下提出两种新型数据混洗方案:Full Shuffle和Safe Shuffle;在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任务输出的数据大小相等。本发明能够对在云计算平台中的用户作业运行中的数据进行数据保密。
与现有技术相比,本发明具有如下有益效果:
(1)本发明一种针对MapReduce计算的数据保密方法及***,在partition函数中写入特定的全分配函数,该分配将map任务中数据全分给reduce任务,所有map任务输出数据的量和大小相等,并且里面包含着假数据来混淆数量,使得数据量大小与输入数据统计学分布关系不明确,使攻击方不能通过跟踪每个map任务到reduce任务的流量来推测数据,即攻击者通过观察输入无法分辨相同数据大小的输入的输出对应关系,从而实现map输出的不可分辨性。
(2)本发明一种针对MapReduce计算的数据保密方法及***,每个reduce任务接收以及输出存储的数据量大小相等,不具有统计后推测意义,防止攻击者多次使用不同数据跟踪map任务到reduce任务的对应关系,从而实现reduce输入的不可分辨性。
本发明保护了远程执行环境场景下基于MapReduce框架的数据和隐私,避免了应用程序的数据隐私被恶意观察者通过边信道攻击获取。
附图说明
图1是本发明实施例提供的针对MapReduce计算的数据保密方法流程图。
图2是本发明实施例提供的针对MapReduce计算的数据保密***的结构示意图;
图中:1、Map子阶段处理模块;2、Combine子阶段处理模块;3、Partition子阶段处理模块;4、Reduce子阶段处理模块;5、Reduce子阶段末处理模块。
图3是本发明实施例提供的原始MapReduce框架图。
图4是本发明实施例提供的方案一Full Shuffle方案图。
图5是本发明实施例提供的方案二Safe Shuffle方案图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种针对MapReduce计算的数据保密方法及***,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的针对MapReduce计算的数据保密方法包括以下步骤:
S101,子阶段添加步骤,在标准MapReduce计算框架下提出两种新型数据混洗方案:Full Shuffle和Safe Shuffle;在Mapping阶段层定义三个新型子阶段:Map阶段、Combine阶段以及Partition阶段,在Reducing阶段层定义Reduce子阶段;
S102,Map子阶段处理步骤,在所述MapReduce的Mapping阶段层的Map子阶段中,***将输入数据整理为key-value键值对的形式进行预处理;
S103,Combine子阶段处理步骤,通过Combine阶段,将Map子阶段每一个map任务中的键值对根据key值进行合并,并通过预先的数据集key值种类数目添加假键值对到该值,以使每一个map任务输出的数据量大小相等,或者,在前述基础上添加混淆键值对,以使隐藏真实数据集key值种类数目;
S104,Partition子阶段处理步骤,Partition子阶段的partition函数会将合并后的键值对分别分发给Reducing阶段层的每一个reduce任务,以使Reduce子阶段的每一个reduce任务输入的数据大小相等;
S105,Reduce子阶段处理步骤,对Reduce子阶段的每个reduce任务接受到的数据进行处理,丢弃所有假键值对、混淆键值对以及不属于Reduce子阶段各个reduce任务合并的键值对数据;
S106,Reduce子阶段末处理步骤,在Reduce子阶段每个reduce任务的最后输出存储DFS阶段(cleanUp函数),根据数据集key值种类数目再次添加混淆键值对,以使每个reduce任务输出的数据大小相等。
如图2所示,本发明实施例提供的针对MapReduce计算的数据保密***包括:
Map子阶段处理模块1,用于在所述MapReduce的Mapping阶段层的Map子阶段中,***将输入数据整理为key-value键值对的形式进行预处理;
Combine子阶段处理模块2,用于将Map子阶段每一个map任务中的键值对根据key值进行合并,并通过预先的数据集key值种类数目添加假键值对到该值,以使每一个map任务输出的数据量大小相等,或者,在前述基础上添加混淆键值对,以使隐藏真实数据集key值种类数目;
Partition子阶段处理模块3,用于Partition子阶段的partition函数将合并后的键值对分别分发给Reducing阶段层的每一个reduce任务,以使Reduce子阶段的每一个reduce任务输入的数据大小相等;
Reduce子阶段处理模块4,用于对Reduce子阶段的每个reduce任务接受到的数据进行处理,丢弃所有假键值对、混淆键值对以及不属于Reduce子阶段各个reduce任务合并的键值对数据;
Reduce子阶段末处理模块5,用于在Reduce子阶段每个reduce任务的最后输出存储DFS阶段(cleanUp函数),根据数据集key值种类数目再次添加混淆键值对,以使每个reduce任务输出的数据大小相等。
下面结合附图对本发明的技术方案作进一步的描述。
本发明具体实施时,使用本发明方法进行MapReduce计算的数据保密之前,需要对MapReduce的数据进行加密操作。具体的,数据加密建立在MapReduce框架运行在安全的执行环境的基础上。所述安全的执行环境具体实施中可采用可信执行环境(TrustedExecution Environment(TEE))技术,如Intel SGX。MapReduce通常把job(作业)分解成tasks(任务,分为map任务(map task)和reduce任务(reduce task)两种),由集群中的节点分别运行。本发明将每个任务部署在可信执行环境中进行执行,因此实现任务运行时保密,但数据在不同任务之间进行传输时仍需保护。本发明对任务间数据进行加密传输。
由于安全执行环境中仅包含MapReduce中每个task处理数据的代码,例如标准MapReduce的map任务和reduce任务,而其余的Hadoop分布式基础架构则不需要信任,加密处理后数据的明文不会在运行阶段被攻击方直接获取。
尽管对数据进行加密操作后能够保证数据明文不会在运行阶段被攻击方直接获取和修改。但上述处理后,恶意观察者仍然可以记录加密数据的交换,例如MapReduce***中每个节点之间的数据交换(网络流量分析)或每个节点和存储之间的数据交换(存储流量分析),交换的数据量包括字节、页、分组或记录等。观察者在先验统计学知识上得到输入数据的统计学分布,从而通过观察map任务与reduce任务之间的流量进行分析,得到数据中的敏感信息,导致隐私泄露。
本发明的数据保密方法将从map任务输入输出的不可分辨性和reduce任务输入输出的不可分辨性四方面对数据进行保密:map任务输入的不可分辨性:在job任务的预处理阶段,原始数据集大小会被平均分割M份大小相等的样本数据集,这些数据集样本会分别发送到M个不同的map任务中进行处理,是的每一个map任务的输入数据的量和大小相同,防止攻击者观察到存储单元DFS到每一个map任务的对应关系。
map任务输出的不可分辨性:在partition函数中写入特定的全分配函数,该分配将map任务中数据平均分给reduce任务,所有map任务输出数据的量和大小相等,使得数据量大小与输入数据统计学分布关系不明确,使攻击方不能通过跟踪每个map任务到reduce任务的流量来推测数据,即攻击者通过观察输入无法分辨相同数据大小的输入的输出对应关系。
reduce任务输入的不可分辨性:每个reduce任务接收的数据量大小相等,不具有统计后推测意义,防止攻击者多次使用不同数据跟踪map任务到reduce任务的对应关系。
reduce任务输出的不可分辨性:在每一个reduce任务的CleanUp函数中写入特定规则的存储函数,该规则将每一个reduce任务的输出量和大小与每一个map任务的输出量和大小统一,使攻击方不能通过跟踪每个reduce任务到DFS的流量来推测数据的固有特征。
具体的,为实现从map任务输入输出的不可分辨性和reduce任务输入输出的不可分辨性四方面对数据进行保密,本发明将通过如下两种实施方式实现。
实施例1
如图4所示,对比标准MapReduce过程(如图3,标准MapReduce框架),本实施方式主要在在Mapping阶段层定义三个新型子阶段:Map阶段、Combine阶段以及Partition阶段,在Reducing阶段层定义Reduce子阶段。该方案符合map任务输入输出的不可分辨性,符合reduce端输入输出不可分辨的每个reduce任务接收以及存储的数据量大小相等。
设用户提交作业所使用的数据集输入为D,|D|表示输入数据大小,|.|表示对数据加密处理后的大小,M表示map任务的数量,R表示reduce任务的数量,Map_function为每个map任务中的map主函数,Reduce_function为每个reduce任务中的reduce主函数,用户自定义的分配函数User_Partition_function以及全分配函数Full_Partition_function,Combiner_function为Combine子阶段的主函数。如下分别对Map子阶段的处理、Combine子阶段的处理、Partition自己段的处理和Reduce子阶段的处理方法进行说明。
Map子阶段:map主函数Map_function将输入的数据整理为t=(t.key,t.value)键值对的格式进行预处理,其中输入的数据将会均匀地分配给每一个map任务,即每个map任务会有|D|/M大小的数据输入,对于输入的数据先解密,然后通过Map_function按行读取成中间键值对<K,V>的形式
Combine子阶段:在每个map任务中部署Combiner_function,当Map_function生成输出加密键值对|t|时,Combiner_function会先进行解密,然后利用Reduce_function来合并拥有相同key值的键值对,作为结果,每一个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任务,本发明称以上方案为Full Shuffle。
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},对于该方案,每个任务reducej都会接收到K=Dm+|Tm|个加密键值对,其中包括可信键值对组(Kauthentic,Vauthentic)和假键值对(Kdummy,Vdummy)。
Reduce子阶段:通过Partition子阶段的partition函数,Reduce子阶段的每个reducej任务将会接收到各个mapi任务传来的加密键值对组{|t|i},先解密键值对|t|,对于得到的每一个键值对t=(t.key,t.value)进行判断;如果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)。
Reduce子阶段末:对于该方案而言,每个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中。
具体的,本实施方式在实际中可以以一个标准的job(一个mapreduce任务称为job)实现。本实施方式利用均匀传输的方式来保密了数据,。在两个已知K种类数、大小相同的不同数据集运行该方案上时,map任务的输入输出、reduce任务的输入输出这几个会被观察者监视的过程中流量均相等。
实施例2
本实施方式利用加入假数据的方式来实现数据保密,同时对key值的种类数K进行保护。本实施方式对MapReduce改写后符合map任务输入输出的不可分辨性,符合Reduce端输入输出不可分辨的每个reduce任务接收的数据量大小相等。
如图5所示,对比标准MapReduce过程(如图3,标准MapReduce框架),本实施方式主要在在Mapping阶段层定义三个新型子阶段:Map阶段、Combine阶段以及Partition阶段,在Reducing阶段层定义Reduce子阶段。该方案符合map任务输入输出的不可分辨性,符合reduce端输入输出不可分辨的每个reduce任务接收以及存储的数据量大小相等。
设用户提交作业所使用的数据集输入为D,|D|表示输入数据大小,|.|表示对数据加密处理后的大小,M表示map任务的数量,R表示reduce任务的数量,Map_function为每个map任务中的map主函数,Reduce_function为每个reduce任务中的reduce主函数,用户自定义的分配函数User_Partition_function以及全分配函数Full_Partition_function,Combiner_function为Combine子阶段的主函数。如下分别对Map子阶段的处理、Combine子阶段的处理、Partition自己段的处理和Reduce子阶段的处理方法进行说明。
Map子阶段:map主函数Map_function将输入的数据整理为t=(t.key,t.value)键值对的格式进行预处理,其中输入的数据将会均匀地分配给每一个map任务,即每个map任务会有|D|/M大小的数据输入,对于输入的数据先解密,然后通过Map_function按行读取成中间键值对<K,V>的形式
Combine子阶段:在每个map任务中部署Combiner_function,当Map_function生成输出加密键值对|t|时,Combiner_function会先进行解密,然后利用Reduce_function来合并拥有相同key值的键值对,作为结果,每一个map任务中会生成合并的键值对组,其中每一个键值对的key值都是独一无二的,本发明用键值对格式(Kauthentic,Vauthentic)称该键值对组为可信键值对组。特别地,为了安全性考虑,该方案可以在Full Shuffle方案基础上再添加一定数量的混淆键值对<Kf1,Vf1>,…,<KfK’,VfK’>,以使隐藏真实数据集key值种类数目K;其中混淆键值对的数量用K’表示,键值对格式同样使用带有特殊标记的虚拟值(Kfake,Vfake)表示;最后在Partition子阶段,每个map任务中将会有|Tm|个可信键值对、Dm个假键值对以及K’个混淆键值对,即<K1,V1>,…,<KK+K’,VK+K’>,被加密分发给Reduce子阶段的每个reduce任务,本发明称以上方案为Safe Shuffle。
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},对于该方案,每个任务reducej都会接收到K+K’(K=Dm+|Tm|)个加密键值对,包括可信键值对组(Kauthentic,Vauthentic)、假键值对(Kdummy,Vdummy)以及混淆键值对(Kfake,Vfake)。
Reduce子阶段:通过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)。
Reduce子阶段末:对于该方案而言,当其数量|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中。
本实施方式也是以一个标准的job实现。job保留完整的mapreduce过程,job2的map只是简单的复制过程,该方案利用在map任务与reduce任务传输过程中加入假数据来实现数据保密,保护了不同key数量不被泄露。在两个大小相同的不同数据集运行该方案上时,map任务的输入输出,reduce任务的输入输出依旧是完全相等的。在本实施方式中,加入混淆假数据为常量K′,其与原始真实数据在自定义的Partition函数中可以得到很好的分配,使得map任务到reduce任务的每一条路径上的流量都相等。
下面结合实验对本发明的技术效果作详细的描述。
实验结果表明,本发明的方案产生了有限的性能开销,有时甚至比标准的MapReduce运行还要快:对于所有试验任务,Full Shuffle方案比标准MapReduce方案快2.5%,当混淆键值对添加数目为8,16,32时,Safe Shuffle方案分别比标准MapReduce方案快0.8%,慢4.9%以及慢11.6%。相比于SHUFFLE-IN-THE-MIDDLE方案和SHUFFLE&BALANCE方案,性能分别提升了212.7%、107.5%。
Figure BDA0002307108810000181
Figure BDA0002307108810000191
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行***,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种针对MapReduce计算的数据保密方法,其特征在于,所述针对MapReduce计算的数据保密方法包括以下步骤:
第一步,在标准MapReduce计算框架下提出两种新型数据混洗方案:Full Shuffle和Safe Shuffle;在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},对于Full Shuffle方案,每个任务reducej都会接收到K=Dm+|Tm|个加密键值对,其中包括可信键值对组(Kauthentic,Vauthentic)和假键值对(Kdummy,Vdummy),或者对于Safe Shuffle方案将接收到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计算的数据保密方法,其特征在于,所述第六步具体包括:对于Full Shuffle方案而言,每个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中;
对于Safe Shuffle方案而言,每个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计算的数据保密方法的云计算数据保密***。
CN201911244325.3A 2019-12-06 2019-12-06 一种针对MapReduce计算的数据保密方法及*** Active CN111163056B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911244325.3A CN111163056B (zh) 2019-12-06 2019-12-06 一种针对MapReduce计算的数据保密方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911244325.3A CN111163056B (zh) 2019-12-06 2019-12-06 一种针对MapReduce计算的数据保密方法及***

Publications (2)

Publication Number Publication Date
CN111163056A CN111163056A (zh) 2020-05-15
CN111163056B true CN111163056B (zh) 2021-08-31

Family

ID=70555723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911244325.3A Active CN111163056B (zh) 2019-12-06 2019-12-06 一种针对MapReduce计算的数据保密方法及***

Country Status (1)

Country Link
CN (1) CN111163056B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111865909B (zh) * 2020-06-08 2021-05-28 西安电子科技大学 Sgx侧信道攻击防御方法、***、介质、程序及应用

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025409A (zh) * 2017-06-27 2017-08-08 中经汇通电子商务有限公司 一种数据安全存储平台
CN109145624A (zh) * 2018-08-29 2019-01-04 广东工业大学 一种基于Hadoop平台的多混沌文本加密算法
CN109684856A (zh) * 2018-12-18 2019-04-26 西安电子科技大学 一种针对MapReduce计算的数据保密方法及***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311105B2 (en) * 2010-12-28 2019-06-04 Microsoft Technology Licensing, Llc Filtering queried data on data stores
CN105117286B (zh) * 2015-09-22 2018-06-12 北京大学 MapReduce中任务的调度方法和流水化执行方法
CN108595268B (zh) * 2018-04-24 2021-03-09 咪咕文化科技有限公司 一种基于MapReduce的数据分配方法、装置及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025409A (zh) * 2017-06-27 2017-08-08 中经汇通电子商务有限公司 一种数据安全存储平台
CN109145624A (zh) * 2018-08-29 2019-01-04 广东工业大学 一种基于Hadoop平台的多混沌文本加密算法
CN109684856A (zh) * 2018-12-18 2019-04-26 西安电子科技大学 一种针对MapReduce计算的数据保密方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"MtMR: Ensuring MapReduce Computation Integrity with Merkle Tree-Based Verifications";Yongzhi Wang等;《IEEE TRANSACTIONS ON BIG DATA》;20180831;全文 *

Also Published As

Publication number Publication date
CN111163056A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
US10171432B2 (en) Systems to implement security in computer systems
US10686605B2 (en) Technologies for implementing mutually distrusting domains
US10148442B2 (en) End-to-end security for hardware running verified software
US20210034788A1 (en) Secure Collaboration Between Processors And Processing Accelerators In Enclaves
Park et al. Secure hadoop with encrypted HDFS
CN106105146A (zh) 在密码证明资源处保护客户端指定凭证
US11755753B2 (en) Mechanism to enable secure memory sharing between enclaves and I/O adapters
Wang et al. Toward scalable fully homomorphic encryption through light trusted computing assistance
Wang et al. A shared memory based cross-VM side channel attacks in IaaS cloud
Ashalatha et al. Network virtualization system for security in cloud computing
Wu et al. Exploring dynamic task loading in SGX-based distributed computing
CN109684856B (zh) 一种针对MapReduce计算的数据保密方法及***
CN111163056B (zh) 一种针对MapReduce计算的数据保密方法及***
CN104639313B (zh) 一种密码算法的检测方法
Alam et al. Sgx-mr: Regulating dataflows for protecting access patterns of data-intensive sgx applications
CN111859383B (zh) 软件自动分割方法、***、存储介质、计算机设备、终端
Yao et al. CryptVMI: A flexible and encrypted virtual machine introspection system in the cloud
Wu et al. Differentially oblivious data analysis with Intel SGX: Design, optimization, and evaluation
CN114528545A (zh) 一种数据保护方法、装置、设备和存储介质
CN111475844A (zh) 一种数据共享方法、装置、设备及计算机可读存储介质
Fan et al. SECCEG: A secure and efficient cryptographic co-processor based on embedded GPU system
Cheng et al. Building your private cloud storage on public cloud service using embedded GPUs
Rashid et al. Randomly encrypted key generation algorithm against side channel attack in cloud computing
Wang et al. Enhancing Leakage Prevention for MapReduce
US20220116403A1 (en) Telemetry restriction mechanism

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant