CN113541923B - 一种多方安全计算的计算任务调整方法、装置及电子设备 - Google Patents
一种多方安全计算的计算任务调整方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113541923B CN113541923B CN202111053970.4A CN202111053970A CN113541923B CN 113541923 B CN113541923 B CN 113541923B CN 202111053970 A CN202111053970 A CN 202111053970A CN 113541923 B CN113541923 B CN 113541923B
- Authority
- CN
- China
- Prior art keywords
- calculation
- rdd
- calculator
- attribution
- type
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种多方安全计算的计算任务调整方法、装置及电子设备,包括:获取多方安全计算的待调整的计算任务;针对计算任务中的指定计算符,获取参与指定计算符计算的RDD的归属类型和归属方信息;按照预设的明密文分离规则,基于获取的RDD的归属类型和归属方信息,以及指定计算符的特性,确定针对指定计算符的计算是否采用明文计算;当确定采用明文计算时,将指定计算符的计算调整为明文计算,得到调整后的计算任务。采用本申请实施例提供的上述方案,提高了多方安全计算的效率。
Description
技术领域
本申请涉及多方安全计算技术领域,尤其涉及一种多方安全计算的计算任务调整方法、装置及电子设备。
背景技术
多方安全计算(MPC,Multi-Party Secure Computation)理论是为解决一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下协同计算问题而提出的理论框架。多方安全计算能够同时确保输入的隐私性和计算的正确性,在无可信第三方的前提下通过数学理论保证参与计算的各方成员输入信息不暴露,且同时能够获得准确的运算结果。
目前,在多方安全计算的实际应用中,参与计算的数据量往往很大,一些情况下所需要执行的计算操作也比较复杂,所以需要大规模的计算。
然而,针对大量的数据进行大规模的计算,使得多方安全计算的效率较低,性能较差,如何提高多方安全计算的效率,一直为行业内亟待解决的问题。
发明内容
本申请实施例提供一种多方安全计算的计算任务调整方法、装置及电子设备,用以解决现有技术中存在的多方安全计算效率较低的问题。
本申请实施例提供一种多方安全计算的计算任务调整方法,包括:
获取多方安全计算的待调整的计算任务;
针对所述计算任务中的指定计算符,获取参与所述指定计算符计算的RDD的归属类型和归属方信息;
按照预设的明密文分离规则,基于获取的所述RDD的归属类型和归属方信息,以及所述指定计算符的特性,确定针对所述指定计算符的计算是否采用明文计算;
当确定采用明文计算时,将所述指定计算符的计算调整为明文计算,得到调整后的计算任务。
进一步的,所述归属类型包括:单一拥有者类型、多拥有者类型、无法确定拥有者类型,其中,所述单一拥有者类型表示RDD来自一个参与方,所述多拥有者类型表示RDD来自多个参与方,所述无法确定拥有者类型表示无法区分RDD所来自的参与方,RDD为所有参与方共有;
所述按照预设的明密文分离规则,基于获取的所述RDD的归属类型和归属方信息,以及所述指定计算符的特性,确定针对所述指定计算符的计算是否采用明文计算,包括:
当基于所述RDD的归属类型和归属方信息,确定所述RDD包含的数据均来自同一个参与方时,确定针对所述指定计算符的计算采用明文计算;
当基于所述RDD的归属类型和归属方信息,确定所述RDD包含的数据来自多个参与方时,基于所述指定计算符的特性,确定按照所述指定计算符进行计算后,是否产生多方数据的聚合;
如果未产生多方数据的聚合,确定针对所述指定计算符的计算采用明文计算。
进一步的,所述当确定采用明文计算时,将所述指定计算符的计算调整为明文计算,得到调整后的计算任务,包括:
当确定采用明文计算,且所述RDD包含的数据均来自同一个参与方时,将所述指定计算符的计算,调整为由所述RDD包含的数据所属的参与方进行明文计算;
当确定采用明文计算,且所述RDD包含的数据来自多个参与方时,将所述指定计算符的计算,调整为由所述RDD包含的数据所属的各参与方,针对属于自身的数据进行明文计算。
进一步的,所述针对所述计算任务中的指定计算符,获取参与所述指定计算符计算的RDD的归属类型和归属方信息,包括:
当参与所述指定计算符计算的RDD为参与方的原始数据时,直接获取参与所述指定计算符计算的RDD的归属类型和归属方信息;
当参与所述指定计算符计算的RDD为所述计算任务中其他计算符的计算结果时,基于该其他计算符的特性,以及参与该其他计算符计算的RDD的归属方信息,确定所述计算结果的归属类型和归属方信息。
进一步的,所述基于该其他计算符的特性,以及参与该其他计算符计算的RDD的归属方信息,确定所述计算结果的归属类型和归属方信息,包括:
当参与该其他计算符计算的RDD包含的数据均来自同一个参与方时,确定所述计算结果的归属类型为单一拥有者类型,以及将参与该其他计算符计算的RDD的归属方信息,确定为所述计算结果的归属方信息;
当参与该其他计算符计算的RDD包含的数据来自多个参与方,且该其他计算符的特性表示所述计算结果中的数据能够区分所属参与方时,确定所述计算结果的归属类型为多拥有者类型,以及将参与该其他计算符计算的RDD的归属方信息,确定为所述计算结果的归属方信息;
当参与该其他计算符计算的RDD包含的数据来自多个参与方,且该其他计算符的特性表示所述计算结果中的数据无法区分所属参与方时,确定所述计算结果的归属类型为无法确定拥有者类型;
当参与该其他计算符计算的RDD的归属类型为无法确定拥有者类型时,确定所述计算结果的归属类型为无法确定拥有者类型。
进一步的,还包括:
当接收到针对所述计算任务中的指定RDD的第一操作符时,将所述指定RDD的归属类型,从多拥有者类型或无法确定拥有者类型,变更为单一拥有者类型;
当接收到针对所述计算任务中的指定RDD的第二操作符时,将归属类型为多拥有者类型的所述指定RDD,拆分为归属类型为单一拥有者类型的多个RDD;
当接收到针对所述计算任务中的指定RDD的第三操作符时,表示针对归属类型为多拥有者类型的所述指定RDD,允许所述指定RDD包含的数据所属的各参与方,对所述指定RDD中属于自身的数据进行操作。
进一步的,还包括:
针对确定采用密文计算的计算符,当该计算符将产生shuffle操作时,将该计算符之前的计算切分为一个stage,将该计算符以及之后的计算切分为另一个stage。
进一步的,在所述将该计算符之前的计算切分为一个stage,将该计算符以及之后的计算切分为另一个stage之后,还包括:
对参与该计算符计算的RDD进行partition的切分。
进一步的,所述对参与该计算符计算的RDD进行partition的切分,包括:
基于该计算符的特性,按照与该计算符的特性对应的partition切分规则,对参与该计算符计算的RDD进行partition的切分。
本申请实施例还提供一种多方安全计算的计算任务调整装置,包括:
任务获取模块,用于获取多方安全计算的待调整的计算任务;
类型获取模块,用于针对所述计算任务中的指定计算符,获取参与所述指定计算符计算的RDD的归属类型和归属方信息;
分离判断模块,用于按照预设的明密文分离规则,基于获取的所述RDD的归属类型和归属方信息,以及所述指定计算符的特性,确定针对所述指定计算符的计算是否采用明文计算;
任务调整模块,用于当确定采用明文计算时,将所述指定计算符的计算调整为明文计算,得到调整后的计算任务。
进一步的,所述归属类型包括:单一拥有者类型、多拥有者类型、无法确定拥有者类型,其中,所述单一拥有者类型表示RDD来自一个参与方,所述多拥有者类型表示RDD来自多个参与方,所述无法确定拥有者类型表示无法区分RDD所来自的参与方,RDD为所有参与方共有;
所述分离判断模块,具体用于当基于所述RDD的归属类型和归属方信息,确定所述RDD包含的数据均来自同一个参与方时,确定针对所述指定计算符的计算采用明文计算;当基于所述RDD的归属类型和归属方信息,确定所述RDD包含的数据来自多个参与方时,基于所述指定计算符的特性,确定按照所述指定计算符进行计算后,是否产生多方数据的聚合;如果未产生多方数据的聚合,确定针对所述指定计算符的计算采用明文计算。
进一步的,所述任务调整模块,具体用于当确定采用明文计算,且所述RDD包含的数据均来自同一个参与方时,将所述指定计算符的计算,调整为由所述RDD包含的数据所属的参与方进行明文计算;当确定采用明文计算,且所述RDD包含的数据来自多个参与方时,将所述指定计算符的计算,调整为由所述RDD包含的数据所属的各参与方,针对属于自身的数据进行明文计算。
进一步的,所述类型获取模块,具体用于当参与所述指定计算符计算的RDD为参与方的原始数据时,直接获取参与所述指定计算符计算的RDD的归属类型和归属方信息;当参与所述指定计算符计算的RDD为所述计算任务中其他计算符的计算结果时,基于该其他计算符的特性,以及参与该其他计算符计算的RDD的归属方信息,确定所述计算结果的归属类型和归属方信息。
进一步的,所述类型获取模块,具体用于当参与该其他计算符计算的RDD包含的数据均来自同一个参与方时,确定所述计算结果的归属类型为单一拥有者类型,以及将参与该其他计算符计算的RDD的归属方信息,确定为所述计算结果的归属方信息;
当参与该其他计算符计算的RDD包含的数据来自多个参与方,且该其他计算符的特性表示所述计算结果中的数据能够区分所属参与方时,确定所述计算结果的归属类型为多拥有者类型,以及将参与该其他计算符计算的RDD的归属方信息,确定为所述计算结果的归属方信息;
当参与该其他计算符计算的RDD包含的数据来自多个参与方,且该其他计算符的特性表示所述计算结果中的数据无法区分所属参与方时,确定所述计算结果的归属类型为无法确定拥有者类型;
当参与该其他计算符计算的RDD的归属类型为无法确定拥有者类型时,确定所述计算结果的归属类型为无法确定拥有者类型。
进一步的,还包括:
RDD操作模块,用于当接收到针对所述计算任务中的指定RDD的第一操作符时,将所述指定RDD的归属类型,从多拥有者类型或无法确定拥有者类型,变更为单一拥有者类型;
当接收到针对所述计算任务中的指定RDD的第二操作符时,将归属类型为多拥有者类型的所述指定RDD,拆分为归属类型为单一拥有者类型的多个RDD;
当接收到针对所述计算任务中的指定RDD的第三操作符时,表示针对归属类型为多拥有者类型的所述指定RDD,允许所述指定RDD包含的数据所属的各参与方,对所述指定RDD中属于自身的数据进行操作。
进一步的,还包括:
stage切分模块,用于针对确定采用密文计算的计算符,当该计算符将产生shuffle操作时,将该计算符之前的计算切分为一个stage,将该计算符以及之后的计算切分为另一个stage。
进一步的,还包括:
partition切分模块,用于对参与该计算符计算的RDD进行partition的切分。
进一步的,所述partition切分模块,具体用于基于该计算符的特性,按照与该计算符的特性对应的partition切分规则,对参与该计算符计算的RDD进行partition的切分。
本申请实施例还提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一多方安全计算的计算任务调整方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一多方安全计算的计算任务调整方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一多方安全计算的计算任务调整方法。
本申请有益效果包括:
本申请实施例提供的方法中,针对待调整的计算任务中的指定计算符,可以按照预设的明密文分离规则,基于参与指定计算符计算的RDD的归属类型和归属方信息,以及指定计算符的特性,确定针对指定计算符的计算是否采用明文计算,当确定采用明文计算时,将指定计算符的计算调整为明文计算,得到调整后的计算任务。相比调整前的计算任务,由于明文计算相比密文计算的效率更高,因此能够提高多方安全计算的效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中:
图1为本申请实施例提供的多方安全计算的计算任务调整方法的流程图;
图2为本申请另一实施例提供的多方安全计算的计算任务调整方法的流程图;
图3为本申请实施例中RDD的归属类型之间的转换的示意图;
图4为本申请实施例中对计算任务进行调整的示意图;
图5为本申请实施例中进行stage和partition切分的流程图;
图6为本申请实施例中进行stage和partition切分的示意图;
图7-1为本申请实施例提供的多方安全计算的计算任务调整装置的结构示意图;
图7-2为本申请另一实施例提供的多方安全计算的计算任务调整装置的结构示意图;
图7-3为本申请另一实施例提供的多方安全计算的计算任务调整装置的结构示意图;
图7-4为本申请另一实施例提供的多方安全计算的计算任务调整装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了给出提高多方安全计算效率的实现方案,本申请实施例提供了一种多方安全计算的计算任务调整方法、装置及电子设备,以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请实施例提供一种多方安全计算的计算任务调整方法,如图1所示,包括:
步骤11、获取多方安全计算的待调整的计算任务。
步骤12、针对计算任务中的指定计算符,获取参与指定计算符计算的RDD的归属类型和归属方信息。
步骤13、按照预设的明密文分离规则,基于获取的RDD的归属类型和归属方信息,以及指定计算符的特性,确定针对指定计算符的计算是否采用明文计算。
步骤14、当确定采用明文计算时,将指定计算符的计算调整为明文计算,得到调整后的计算任务。
采用本申请实施例提供的上述多方安全计算的计算任务调整方法,针对待调整的计算任务中的指定计算符,可以按照预设的明密文分离规则,基于参与指定计算符计算的RDD的归属类型和归属方信息,以及指定计算符的特性,确定针对指定计算符的计算是否采用明文计算,当确定采用明文计算时,将指定计算符的计算调整为明文计算,得到调整后的计算任务。相比调整前的计算任务,由于明文计算相比密文计算的效率更高,因此能够提高多方安全计算的效率。
下面结合附图,用具体实施例对本申请提供的方法及装置进行详细描述。
本申请实施例提供的方法,可以应用于开发人员对多方安全计算的计算任务开发的过程中,方法可以应用于开发工具,开发工具向开发人员提供接口,用于开发人员上传表示计算任务的代码、数据以及指令,所提供的接口可以称作PRDD(Private ResilientDistributed Dataset,隐私弹性分布式数据集)接口。
基于上述PRDD接口,本申请实施例提供一种多方安全计算的计算任务调整方法,如图2所示,可以包括如下步骤:
步骤21、接收上传的多方安全计算的待调整的计算任务。
本申请实施例中,可以通过向开发人员所提供的PRDD接口,接收开发人员上传的计算任务,计算任务可以基于代码、数据和指令表示。
进一步的,可以向开发人员展示表示PRDD接口的人机交互界面,界面中可以包括各种输入框,用于输入代码和数据,也可以包括各种选项,用于输入数据或指令,具体的上传方式,可以采用可行的各种方式,在此不再举例进行更加详细的描述。
本申请实施例中,计算任务中包括各计算符,将要参与该计算任务计算的各参与方,所需要的原始数据的数据信息,例如,数据信息可以表示需要哪些参与方提供原始数据,计算任务中还可以包括各计算符的执行流程等。
步骤22、针对计算任务中的指定计算符,获取参与指定计算符计算的RDD(Resilient Distributed Dataset,弹性分布式数据集)的归属类型和归属方信息。
本步骤中,指定计算符可以理解为是本次调整所针对的计算符,具体的,可以针对所包含的各种指定类型的计算符,依次作为指定计算符进行调整。
也可以当首次进行调整时,将所包含的计算符中按照指定顺序的第一个计算符,确定为指定计算符,当非首次进行调整时,将按照指定顺序的下一个计算符,确定为指定计算符,其中,指定顺序可以是按照各计算符的执行流程的顺序。
本申请实施例中,针对RDD的归属类型,定义了三种类型,包括:单一拥有者类型(SoleOwnerRDD)、多拥有者类型(MultiOwnerRDD)、无法确定拥有者类型(FusedOwnerRDD),其中,单一拥有者类型表示RDD来自一个参与方,多拥有者类型表示RDD来自多个参与方,无法确定拥有者类型表示无法区分RDD所来自的参与方,RDD为所有参与方共有,也就是说RDD中的数据不能被单一方完全拥有。
本申请实施例中,针对RDD的归属方信息,可以是URL(Uniform ResourceLocator,统一资源定位系统),该URL包含RDD中数据所属参与方的信息。
本申请实施例中,针对不同的情况,获取参与指定计算符计算的RDD的归属类型和归属方信息,可以采用如下二种方式:
第一种方式:当参与指定计算符计算的RDD为参与方的原始数据时,直接获取参与指定计算符计算的RDD的归属类型和归属方信息。
第二种方式:当参与指定计算符计算的RDD为计算任务中其他计算符的计算结果时,基于该其他计算符的特性,以及参与该其他计算符计算的RDD的归属方信息,确定计算结果的归属类型和归属方信息,具体可以如下:
当参与该其他计算符计算的RDD包含的数据均来自同一个参与方时,确定计算结果的归属类型为单一拥有者类型,以及将参与该其他计算符计算的RDD的归属方信息,确定为所述计算结果的归属方信息;
例如,针对计算符join(联结),如果输入的两个RDD来自同一个参与方,则确定执行join计算之后得到的计算结果的归属类型为单一拥有者类型,且计算结果也属于该参与方,即归属方信息与这两个RDD的归属方信息相同。
当参与该其他计算符计算的RDD包含的数据来自多个参与方,且该其他计算符的特性表示计算结果中的数据能够区分所属参与方时,确定计算结果的归属类型为多拥有者类型,以及将参与该其他计算符计算的RDD的归属方信息,确定为计算结果的归属方信息;
例如,针对计算符union(联合),如果输入的各RDD来自多个参与方,由于执行union计算后,所得到的计算结果中的数据仍然能够区分所属的参与方,所以,确定执行union计算之后得到的计算结果的归属类型为多拥有者类型,且计算结果包含的数据仍然属于各自原来所属的参与方。
当参与该其他计算符计算的RDD包含的数据来自多个参与方,且该其他计算符的特性表示计算结果中的数据无法区分所属参与方时,确定计算结果的归属类型为无法确定拥有者类型;
例如,针对计算符join,如果输入的两个RDD来自多个参与方,由于执行join计算后,所得到的计算结果中的数据为产生的具有新的含义的数据,已经无法再区分所属的参与方,所以,确定执行join计算之后得到的计算结果的归属类型为无法确定拥有者类型,对于无法确定拥有者类型的RDD,其也就不具有归属方信息,或者,也可以理解为其归属方信息为所有参与方共有。
当参与该其他计算符计算的RDD的归属类型为无法确定拥有者类型时,确定计算结果的归属类型为无法确定拥有者类型。
针对RDD的归属类型之间的转换,如图3所示,其中包括了针对各种归属类型的RDD,在经过各种计算符的计算后,所得到的计算结果的归属类型,其中:
针对单一拥有者类型的RDD,在经过计算符map(映射)、filter(过滤)、reduceByKey(根据键值进行规约)、mapPartitions(对分块进行映射)、repartition(重新分块)的计算后,所得到的计算结果(作为RDD)的归属类型,仍然为单一拥有者类型;
针对单一拥有者类型的RDD,在经过计算符join、union、zip(压缩)的计算后,所得到的计算结果的归属类型为多拥有者类型;
针对多拥有者类型的RDD,在经过计算符union、zip、map、filter、mapPartition、repartition的计算后,所得到的计算结果的归属类型,仍然为多拥有者类型;
针对多拥有者类型的RDD,在经过计算符join、reduceByKey的计算后,所得到的计算结果的归属类型为无法确定拥有者类型;
针对无法确定拥有者类型的RDD,在经过join、union、zip、map、filter、reduceByKey、mapPartition、repartition的计算后,所得到的计算结果的归属类型,仍然为无法确定拥有者类型。
步骤23、基于RDD的归属类型和归属方信息,确定RDD包含的数据是否均来自同一个参与方,如果均来自同一个参与方,确定针对指定计算符的计算采用明文计算,并执行步骤24,如果来自多个参与方,执行步骤25。
步骤24、将指定计算符的计算,调整为由RDD包含的数据所属的参与方进行明文计算。
步骤25、基于指定计算符的特性,确定按照指定计算符进行计算后,是否产生多方数据的聚合,如果未产生多方数据的聚合,确定针对指定计算符的计算采用明文计算,并执行步骤26,例如,map、filter等未产生多方数据聚合的计算符。
如果产生了多方数据的聚合,则为了确保计算的隐私性、保密性和安全性,确定采用默认的密文计算。
步骤26、将指定计算符的计算,调整为由RDD包含的数据所属的各参与方,针对属于自身的数据进行明文计算。
如图4所示,图中的p1和p2分别表示来自参与方p1和参与方p2的RDD,作为原始数据,p1和p2的归属类型均为单一拥有者类型,图中的union、map和reduce均表示计算符,图4中左侧附图为调整之前的附图。
针对其中输入为两个p1的计算符union,由于其两个p1均来自同一个参与方,因此针对该计算符union的计算可以采用明文,且得到的计算结果的归属类型为单一拥有者类型,且数据均来自参与方p1;
针对其中一个输入为p2的计算符union,由于其输入的两个RDD来自不同的参与方,且执行union操作后,产生数据聚合,所以,针对该计算符union的计算,为了确定隐私性、保密性和安全性,采用默认的密文计算,且得到的计算结果的归属类型为多拥有者类型,且数据来自参与方p1和参与方p2;
针对其中的指定计算符map,针对两个p1执行union操作,以及再与p2执行union操作之后,所得到的作为计算符map的输入的RDD的类型为多拥有者类型,由于执行map操作后未产生数据聚合,所以针对计算符map的计算可以采用明文计算,此时,可以执行上述步骤26,调整为由RDD包含的数据所属的各参与方,针对属于自身的数据进行明文计算,如图4中右侧附图所示,调整为针对两个p1和一个p2,分别由各自所属的参与方执行map的明文计算,针对得到的计算结果,再执行union的密文计算,即相当于将map的计算下推到各参与方执行,相比调整之前,计算符map的输入为密文计算结果,那么map的计算也是密文,调整后采用明文计算,从而提高了多方安全计算的计算效率。
本申请实施例中,基于提供的PRDD接口,进一步的,还可以接收开发人员上传的针对指定RDD的操作符,该操作符可以用于改变指定RDD的归属类型,也可以用于对指定RDD的其他属性进行设置,具体如下:
在多方安全计算的计算任务调整方法中,还可以包括如下处理步骤:
当接收到针对计算任务中的指定RDD的第一操作符时,将指定RDD的归属类型,从多拥有者类型或无法确定拥有者类型,变更为单一拥有者类型;其中,该第一操作符可以称作to_owner(转换拥有者);
当接收到针对计算任务中的指定RDD的第二操作符时,将归属类型为多拥有者类型的指定RDD,拆分为归属类型为单一拥有者类型的多个RDD;其中,该第二操作符可以称作scatter(散射);
当接收到针对计算任务中的指定RDD的第三操作符时,表示针对归属类型为多拥有者类型的指定RDD,允许指定RDD包含的数据所属的各参与方,对指定RDD中属于自身的数据进行操作;其中,该第三操作符可以称作parallizeWithParty(按照拥有者进行并行处理)。
本申请实施例中,基于提供的PRDD接口,进一步的,还可以针对采用密文计算的计算符,进行stage(阶段)和partition(分区)的切分,具体如下:
在多方安全计算的计算任务调整方法中,如图5所示,还可以包括如下处理步骤:
步骤51、针对确定采用密文计算的计算符,当该计算符将产生shuffle(洗牌)操作时,将该计算符之前的计算切分为一个stage,将该计算符以及之后的计算切分为另一个stage。
例如,如图6所示,针对左侧附图中的计算符reduce,在执行reduce计算时,其将产生shuffle操作,所以,如图6中中间附图所示,将计算符reduce之前的计算且分为一个stage,即将union切分为一个stage,将该计算符reduce以及之后的计算且分为另一个stage。
步骤52、对参与该计算符计算的RDD进行partition的切分。
基于该计算符的特性,按照与该计算符的特性对应的partition切分规则,对参与该计算符计算的RDD进行partition的切分。
对RDD进行partion的切分,涉及到两个问题:一个问题是partition数量的传递,另一个问题是切分规则。
partiiton数量的传递对于每个计算符来说都是不一样的,例如计算符union,其partition数量为其输入的RDD的partition数量之和,而对于计算符join,其partition的数量为其第一个输入RDD的partition数量;
对于Partition的切分规则,每个RDD也有不同的约定,例如对于计算符map,partition的切分只是改变该RDD的属性,不会改变逻辑执行计划的结构,而对于计算符union,partition的切分将会改变逻辑执行计划的结构,其将逻辑执行计划拆分为结构不同的多个子计划。
如图6所示,在进行stage切分后,针对计算符union的输入p1,可以对其进行partition的切分,切分为p1_0和p1_1,针对计算符union的输入p2,可以对其进行partition的切分,切分为p2_0和p2_1,然后可以针对p1_0和p2_0执行union计算,结果为p_0,针对p1_1和p2_1执行union计算,结果为p_1,两个union的计算可以并行执行,提高计算效率,相应的,分别针对p_0和p_1执行reduce计算,也可以并行执行,提高计算效率。
本申请实施例中,在对计算任务进行调整之后,可以生成可执行的代码,用于针对该计算任务执行多方安全计算,进一步的,其中关于明文计算的部分,可以生成spark代码,由spark引擎执行,关于密文计算的部分可以生成密文代码,由密文引擎执行。
采用本申请实施例提供的上述方法,通过对明密文计算的分离,在确保隐私性、保密性和安全性的前提下,降低了多方安全计算的复杂度,提高了多方安全计算的效率。
基于同一发明构思,根据本申请上述实施例提供的多方安全计算的计算任务调整方法,相应地,本申请另一实施例还提供了一种多方安全计算的计算任务调整装置,其结构示意图如图7-1所示,具体包括:
任务获取模块71,用于获取多方安全计算的待调整的计算任务;
类型获取模块72,用于针对计算任务中的指定计算符,获取参与指定计算符计算的RDD的归属类型和归属方信息;
分离判断模块73,用于按照预设的明密文分离规则,基于获取的RDD的归属类型和归属方信息,以及指定计算符的特性,确定针对指定计算符的计算是否采用明文计算;
任务调整模块74,用于当确定采用明文计算时,将指定计算符的计算调整为明文计算,得到调整后的计算任务。
进一步的,归属类型包括:单一拥有者类型、多拥有者类型、无法确定拥有者类型,其中,单一拥有者类型表示RDD来自一个参与方,多拥有者类型表示RDD来自多个参与方,无法确定拥有者类型表示无法区分RDD所来自的参与方,RDD为所有参与方共有;
分离判断模块73,具体用于当基于RDD的归属类型和归属方信息,确定RDD包含的数据均来自同一个参与方时,确定针对指定计算符的计算采用明文计算;当基于RDD的归属类型和归属方信息,确定RDD包含的数据来自多个参与方时,基于指定计算符的特性,确定按照指定计算符进行计算后,是否产生多方数据的聚合;如果未产生多方数据的聚合,确定针对指定计算符的计算采用明文计算。
进一步的,任务调整模块74,具体用于当确定采用明文计算,且RDD包含的数据均来自同一个参与方时,将指定计算符的计算,调整为由RDD包含的数据所属的参与方进行明文计算;当确定采用明文计算,且RDD包含的数据来自多个参与方时,将指定计算符的计算,调整为由RDD包含的数据所属的各参与方,针对属于自身的数据进行明文计算。
进一步的,类型获取模块72,具体用于当参与指定计算符计算的RDD为参与方的原始数据时,直接获取参与指定计算符计算的RDD的归属类型和归属方信息;当参与指定计算符计算的RDD为计算任务中其他计算符的计算结果时,基于该其他计算符的特性,以及参与该其他计算符计算的RDD的归属方信息,确定计算结果的归属类型和归属方信息。
进一步的,类型获取模块72,具体用于当参与该其他计算符计算的RDD包含的数据均来自同一个参与方时,确定计算结果的归属类型为单一拥有者类型,以及将参与该其他计算符计算的RDD的归属方信息,确定为计算结果的归属方信息;
当参与该其他计算符计算的RDD包含的数据来自多个参与方,且该其他计算符的特性表示计算结果中的数据能够区分所属参与方时,确定计算结果的归属类型为多拥有者类型,以及将参与该其他计算符计算的RDD的归属方信息,确定为计算结果的归属方信息;
当参与该其他计算符计算的RDD包含的数据来自多个参与方,且该其他计算符的特性表示计算结果中的数据无法区分所属参与方时,确定计算结果的归属类型为无法确定拥有者类型;
当参与该其他计算符计算的RDD的归属类型为无法确定拥有者类型时,确定计算结果的归属类型为无法确定拥有者类型。
进一步的,如图7-2所示,还包括:
RDD操作模块75,用于当接收到针对计算任务中的指定RDD的第一操作符时,将指定RDD的归属类型,从多拥有者类型或无法确定拥有者类型,变更为单一拥有者类型;
当接收到针对计算任务中的指定RDD的第二操作符时,将归属类型为多拥有者类型的指定RDD,拆分为归属类型为单一拥有者类型的多个RDD;
当接收到针对计算任务中的指定RDD的第三操作符时,表示针对归属类型为多拥有者类型的指定RDD,允许指定RDD包含的数据所属的各参与方,对指定RDD中属于自身的数据进行操作。
进一步的,如图7-3所示,还包括:
stage切分模块76,用于针对确定采用密文计算的计算符,当该计算符将产生shuffle操作时,将该计算符之前的计算切分为一个stage,将该计算符以及之后的计算切分为另一个stage。
进一步的,如图7-4所示,还包括:
partition切分模块77,用于对参与该计算符计算的RDD进行partition的切分。
进一步的,partition切分模块77,具体用于基于该计算符的特性,按照与该计算符的特性对应的partition切分规则,对参与该计算符计算的RDD进行partition的切分。
上述各模块的功能可对应于图1至图6所示流程中的相应处理步骤,在此不再赘述。
本申请的实施例所提供的多方安全计算的计算任务调整装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要墙体彩绘打印装置具有上述功能,都应该在本申请的保护范围之内。
本申请实施例还提供一种电子设备,如图8所示,包括处理器81和机器可读存储介质82,机器可读存储介质82存储有能够被处理器81执行的机器可执行指令,处理器81被机器可执行指令促使:实现上述任一多方安全计算的计算任务调整方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一多方安全计算的计算任务调整方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一多方安全计算的计算任务调整方法。
上述电子设备中的机器可读存储介质可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质,计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种多方安全计算的计算任务调整方法,其特征在于,包括:
获取多方安全计算的待调整的计算任务;
针对所述计算任务中的指定计算符,获取参与所述指定计算符计算的弹性分布式数据集RDD的归属类型和归属方信息;
当基于所述RDD的归属类型和归属方信息,确定所述RDD包含的数据均来自同一个参与方时,确定针对所述指定计算符的计算采用明文计算;
当基于所述RDD的归属类型和归属方信息,确定所述RDD包含的数据来自多个参与方时,基于所述指定计算符的特性,确定按照所述指定计算符进行计算后,是否产生多方数据的聚合;
如果未产生多方数据的聚合,确定针对所述指定计算符的计算采用明文计算;
当确定采用明文计算时,将所述指定计算符的计算调整为明文计算,得到调整后的计算任务。
2.如权利要求1所述的方法,其特征在于,所述归属类型包括:单一拥有者类型、多拥有者类型、无法确定拥有者类型,其中,所述单一拥有者类型表示RDD来自一个参与方,所述多拥有者类型表示RDD来自多个参与方,所述无法确定拥有者类型表示无法区分RDD所来自的参与方,RDD为所有参与方共有。
3.如权利要求2所述的方法,其特征在于,所述当确定采用明文计算时,将所述指定计算符的计算调整为明文计算,得到调整后的计算任务,包括:
当确定采用明文计算,且所述RDD包含的数据均来自同一个参与方时,将所述指定计算符的计算,调整为由所述RDD包含的数据所属的参与方进行明文计算;
当确定采用明文计算,且所述RDD包含的数据来自多个参与方时,将所述指定计算符的计算,调整为由所述RDD包含的数据所属的各参与方,针对属于自身的数据进行明文计算。
4.如权利要求2所述的方法,其特征在于,所述针对所述计算任务中的指定计算符,获取参与所述指定计算符计算的RDD的归属类型和归属方信息,包括:
当参与所述指定计算符计算的RDD为参与方的原始数据时,直接获取参与所述指定计算符计算的RDD的归属类型和归属方信息;
当参与所述指定计算符计算的RDD为所述计算任务中其他计算符的计算结果时,基于该其他计算符的特性,以及参与该其他计算符计算的RDD的归属方信息,确定所述计算结果的归属类型和归属方信息。
5.如权利要求4所述的方法,其特征在于,所述基于该其他计算符的特性,以及参与该其他计算符计算的RDD的归属方信息,确定所述计算结果的归属类型和归属方信息,包括:
当参与该其他计算符计算的RDD包含的数据均来自同一个参与方时,确定所述计算结果的归属类型为单一拥有者类型,以及将参与该其他计算符计算的RDD的归属方信息,确定为所述计算结果的归属方信息;
当参与该其他计算符计算的RDD包含的数据来自多个参与方,且该其他计算符的特性表示所述计算结果中的数据能够区分所属参与方时,确定所述计算结果的归属类型为多拥有者类型,以及将参与该其他计算符计算的RDD的归属方信息,确定为所述计算结果的归属方信息;
当参与该其他计算符计算的RDD包含的数据来自多个参与方,且该其他计算符的特性表示所述计算结果中的数据无法区分所属参与方时,确定所述计算结果的归属类型为无法确定拥有者类型;
当参与该其他计算符计算的RDD的归属类型为无法确定拥有者类型时,确定所述计算结果的归属类型为无法确定拥有者类型。
6.如权利要求2所述的方法,其特征在于,还包括:
当接收到针对所述计算任务中的指定RDD的第一操作符时,将所述指定RDD的归属类型,从多拥有者类型或无法确定拥有者类型,变更为单一拥有者类型;
当接收到针对所述计算任务中的指定RDD的第二操作符时,将归属类型为多拥有者类型的所述指定RDD,拆分为归属类型为单一拥有者类型的多个RDD;
当接收到针对所述计算任务中的指定RDD的第三操作符时,表示针对归属类型为多拥有者类型的所述指定RDD,允许所述指定RDD包含的数据所属的各参与方,对所述指定RDD中属于自身的数据进行操作。
7.如权利要求1所述的方法,其特征在于,还包括:
针对确定采用密文计算的计算符,当该计算符将产生shuffle操作时,将该计算符之前的计算切分为一个stage,将该计算符以及之后的计算切分为另一个stage。
8.如权利要求7所述的方法,其特征在于,在所述将该计算符之前的计算切分为一个stage,将该计算符以及之后的计算切分为另一个stage之后,还包括:
对参与该计算符计算的RDD进行partition的切分。
9.如权利要求8所述的方法,其特征在于,所述对参与该计算符计算的RDD进行partition的切分,包括:
基于该计算符的特性,按照与该计算符的特性对应的partition切分规则,对参与该计算符计算的RDD进行partition的切分。
10.一种多方安全计算的计算任务调整装置,其特征在于,包括:
任务获取模块,用于获取多方安全计算的待调整的计算任务;
类型获取模块,用于针对所述计算任务中的指定计算符,获取参与所述指定计算符计算的弹性分布式数据集RDD的归属类型和归属方信息;
分离判断模块,用于当基于所述RDD的归属类型和归属方信息,确定所述RDD包含的数据均来自同一个参与方时,确定针对所述指定计算符的计算采用明文计算;当基于所述RDD的归属类型和归属方信息,确定所述RDD包含的数据来自多个参与方时,基于所述指定计算符的特性,确定按照所述指定计算符进行计算后,是否产生多方数据的聚合;如果未产生多方数据的聚合,确定针对所述指定计算符的计算采用明文计算;
任务调整模块,用于当确定采用明文计算时,将所述指定计算符的计算调整为明文计算,得到调整后的计算任务。
11.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-9任一所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111053970.4A CN113541923B (zh) | 2021-09-09 | 2021-09-09 | 一种多方安全计算的计算任务调整方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111053970.4A CN113541923B (zh) | 2021-09-09 | 2021-09-09 | 一种多方安全计算的计算任务调整方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113541923A CN113541923A (zh) | 2021-10-22 |
CN113541923B true CN113541923B (zh) | 2021-12-10 |
Family
ID=78093104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111053970.4A Active CN113541923B (zh) | 2021-09-09 | 2021-09-09 | 一种多方安全计算的计算任务调整方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113541923B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114692207B (zh) * | 2022-05-31 | 2022-09-20 | 蓝象智联(杭州)科技有限公司 | 一种隐私保护的数据处理方法、装置及存储介质 |
CN115658279B (zh) * | 2022-12-20 | 2023-04-07 | 华控清交信息科技(北京)有限公司 | 一种密文计算任务调度方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020214480A1 (en) * | 2019-04-16 | 2020-10-22 | Facebook, Inc. | Secure multi-party computation attribution |
CN112182644A (zh) * | 2020-09-11 | 2021-01-05 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和电子设备 |
CN113206830A (zh) * | 2021-03-30 | 2021-08-03 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968895B (zh) * | 2019-11-29 | 2022-04-05 | 北京百度网讯科技有限公司 | 一种数据的处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-09-09 CN CN202111053970.4A patent/CN113541923B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020214480A1 (en) * | 2019-04-16 | 2020-10-22 | Facebook, Inc. | Secure multi-party computation attribution |
CN112182644A (zh) * | 2020-09-11 | 2021-01-05 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和电子设备 |
CN113206830A (zh) * | 2021-03-30 | 2021-08-03 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和电子设备 |
Non-Patent Citations (2)
Title |
---|
Helen: Maliciously Secure Coopetitive Learning for Linear Models;Wenting Zheng等;《2019 IEEE Symposium on Security and Privacy》;20191231;全文 * |
物联网感知数据传输的安全多方计算关键技术研究;李海霞;《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》;20180115;第三章 * |
Also Published As
Publication number | Publication date |
---|---|
CN113541923A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113541923B (zh) | 一种多方安全计算的计算任务调整方法、装置及电子设备 | |
CN107729138B (zh) | 一种高性能分布式矢量空间数据的分析方法和装置 | |
CN110716966A (zh) | 数据可视化处理方法及系统、电子设备及存储介质 | |
CN110290166B (zh) | 跨集群数据交互方法、系统、装置及可读存储介质 | |
CN113206830B (zh) | 一种数据处理方法、装置和电子设备 | |
CN114282076A (zh) | 一种基于秘密分享的排序方法和系统 | |
CN112949973A (zh) | 一种结合ai的机器人流程自动化rpa流程的生成方法 | |
CN110442582B (zh) | 场景检测方法、装置、设备和介质 | |
CN114153808A (zh) | 一种基于秘密分享的排序方法和系统 | |
CN114462582A (zh) | 基于卷积神经网络模型的数据处理方法及装置、设备 | |
CN104050291A (zh) | 一种账户余额数据的并行处理方法和系统 | |
CN111640012A (zh) | 一种区块链交易追溯的方法及装置 | |
CN115361131B (zh) | 一种密文数据计算方法、装置和电子设备 | |
CN115062299B (zh) | 一种针对数据泄露的安全性检测方法、装置及电子设备 | |
CN109726581B (zh) | 一种数据统计方法和装置 | |
CN106599244B (zh) | 通用的原始日志清洗装置及方法 | |
CN109901931B (zh) | 一种归约函数数量确定方法、装置及系统 | |
CN114338017A (zh) | 一种基于秘密分享的排序方法和系统 | |
CN111080081B (zh) | 电力在线客服接待分配方法、系统及电力在线客服系统 | |
CN111143456B (zh) | 基于Spark的Cassandra数据导入方法、装置、设备及介质 | |
CN112732925A (zh) | 基于图谱的确定投资数据的方法、存储介质及相关设备 | |
CN105761119A (zh) | 在线人数分布计算方法及装置 | |
CN107766442B (zh) | 一种海量数据关联规则挖掘方法及系统 | |
CN111966734A (zh) | 结合rpa和ai的电子表格的数据处理方法与电子设备 | |
CN113806071B (zh) | 一种边缘计算应用的数据同步方法与系统 |
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 |