CN113886085A - 多方安全计算中的任务执行方法及装置 - Google Patents

多方安全计算中的任务执行方法及装置 Download PDF

Info

Publication number
CN113886085A
CN113886085A CN202111165290.1A CN202111165290A CN113886085A CN 113886085 A CN113886085 A CN 113886085A CN 202111165290 A CN202111165290 A CN 202111165290A CN 113886085 A CN113886085 A CN 113886085A
Authority
CN
China
Prior art keywords
subtask
subtasks
processing object
output
parameter
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.)
Pending
Application number
CN202111165290.1A
Other languages
English (en)
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202111165290.1A priority Critical patent/CN113886085A/zh
Publication of CN113886085A publication Critical patent/CN113886085A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6236Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本说明书实施例提供一种多方安全计算中的任务执行方法及装置,在多个数据方安全计算过程的通信间隔,单个数据方首先获取当前通信周期内待处理的若干个子任务,然后针对这若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系,并根据检测结果对若干个子任务进行分层,其中,单个子任务的处理对象与其所在层的其他子任务的输出结果不具有关联关系,进一步地按照分层结果逐层执行若干个子任务得到执行结果。如此,单个层内的各个子任务被并行执行。从而,该实施方式可以提高多方安全计算中的任务执行效率。

Description

多方安全计算中的任务执行方法及装置
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及多方安全计算中的任务执行方法及装置。
背景技术
安全多方计算又称为多方安全计算(Multi-party Computation,MPC),即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果公开给其中的一方或多方。例如,安全多方计算一个典型的应用是隐私保护的多方数据的联合统计分析和机器学习。安全多方计算能够在参与的各方不暴露各自原始数据的情况下,计算出基于各方联合数据的统计结果和/或机器学习结果。这其中多方安全计算的函数是一个运算函数(如加法)、一个机器学习算法等等。实现某种MPC基本功能的模块也可以称为算子,算子可以提供编程调用接口,例如一个算子可以是乘法算子、加法算子、比较算子、选择算子等等,算子可以基于秘密分享、混淆电路、OT等MPC技术实现。一个安全计算过程可以通过多个数据方的本地计算、相互通信完成,两次相互通信间隔可以称为通信周期。可以理解的是,通信周期以通信操作的执行进行划分,因此不同的通信周期可以对应不同的时长。如果在一个通信周期内可以尽可能多地实现并行计算,则有助于提高多方安全计算的效率。
发明内容
本说明书一个或多个实施例描述了一种多方安全计算中的任务执行方法及装置,用以解决背景技术提到的一个或多个问题。
根据第一方面,提供一种多方安全计算中的任务执行方法,用于多个数据方之间的安全计算,所述方法适用于所述多个数据方中的第一数据方,包括:获取当前通信周期内待处理的若干个子任务,单个子任务对应有至少一个处理对象和至少一个输出结果;针对所述若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系;根据检测结果对所述若干个子任务进行分层,其中,单个子任务的处理对象与其所在层的其他子任务的输出结果不具有关联关系;按照分层结果逐层执行所述若干个子任务得到执行结果,其中,单个层内的各个子任务被并行执行。
在一个实施例中,所述若干个子任务中,相同的处理对象或输出结果通过相同的参数标识描述,各个子任务的处理对象与其他子任务的输出结果之间的关联关系通过参数标识的匹配确定。
在一个实施例中,所述针对所述若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系包括:针对所述若干个子任务中的单个子任务,将描述相应处理对象的参数标识与当前的输出参数集中的各个参数标识一一比对,从而在当前的输出参数集中匹配不到相应处理对象的参数标识的情况下,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系,将单个子任务的输出结果对应的参数标识加入当前的输出参数集;依次将各个子任务的输出结果对应的参数标识加入当前的输出参数集,直至出现关联子任务,其中,所述关联子任务是相应处理对象与当前的输出参数集中的至少一个输出结果相匹配的子任务。
在一个实施例中,所述根据检测结果对所述若干个子任务进行分层包括:将当前的输出参数集中的各个参数标识对应的各个子任务划分到同一个分层;在检测到当前的关联子任务的情况下,将当前的关联子任务加入新的分层,并将所述当前的关联子任务的输出结果对应的参数加入新的输出参数集。
在一个实施例中,所述针对所述若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系包括:针对所述若干个子任务中的单个子任务,将相应处理对象与其他各个子任务的输出结果对应的参数标识一一比对,若在其他子任务的输出结果对应的参数标识中匹配到相应处理对象的参数标识,则确定该单个子任务的处理对象与其他子任务的输出结果之间具有关联关系,否则,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系。
在一个实施例中,所述根据检测结果对所述若干个子任务进行分层包括:循环执行以下操作至所述若干个子任务分层完毕:遍历未分层的各个子任务,将处理对象不与其他子任务的输出结果具有关联关系的子任务划分到一个分层。
在一个实施例中,所述方法还包括:基于所述执行结果与所述多个数据方中的其他数据方通信,以进行安全计算。
根据第二方面,提供一种多方安全计算中的任务执行装置,用于多个数据方之间的安全计算,所述装置适用于所述多个数据方中的第一数据方,包括:
获取单元,配置为获取当前通信周期内待处理的若干个子任务,单个子任务对应有至少一个处理对象和至少一个输出结果;
检测单元,配置为针对所述若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系;
分层单元,配置为根据检测结果对所述若干个子任务进行分层,其中,单个子任务的处理对象与其所在层的其他子任务的输出结果不具有关联关系;
执行单元,配置为按照分层结果逐层执行所述若干个子任务得到执行结果,其中,单个层内的各个子任务被并行执行。
在一个实施例中,所述若干个子任务中,相同的处理对象或输出结果通过相同的参数标识描述,各个子任务的处理对象与其他子任务的输出结果之间的关联关系通过参数标识的匹配确定。
在一个实施例中,所述检测单元进一步配置为:
针对所述若干个子任务中的单个子任务,将描述相应处理对象的参数标识与当前的输出参数集中的各个参数标识一一比对,从而在当前的输出参数集中匹配不到相应处理对象的参数标识的情况下,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系,将单个子任务的输出结果对应的参数标识加入当前的输出参数集;
依次将各个子任务的输出结果对应的参数标识加入当前的输出参数集,直至出现关联子任务,其中,所述关联子任务是相应处理对象与当前的输出参数集中的至少一个输出结果相匹配的子任务。
在一个实施例中,所述分层单元进一步配置为:
将当前的输出参数集中的各个参数标识对应的各个子任务划分到同一个分层;
在检测到当前的关联子任务的情况下,将当前的关联子任务加入新的分层,并将所述当前的关联子任务的输出结果对应的参数加入新的输出参数集。
在一个实施例中,所述检测单元进一步配置为:
针对所述若干个子任务中的单个子任务,将相应处理对象与其他各个子任务的输出结果对应的参数标识一一比对,若在其他子任务的输出结果对应的参数标识中匹配到相应处理对象的参数标识,则确定该单个子任务的处理对象与其他子任务的输出结果之间具有关联关系,否则,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系。
在一个实施例中,所述分层单元进一步配置为:
循环执行以下操作至所述若干个子任务分层完毕:遍历未分层的各个子任务,将处理对象不与其他子任务的输出结果具有关联关系的子任务划分到一个分层。
在一个实施例中,所述装置还包括:
通信单元,配置为基于所述执行结果与所述多个数据方中的其他数据方通信,以进行安全计算。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,按照子任务之间的处理对象和输出结果之间的关联关系,对子任务进行分层,使得层内的子任务相互独立,从而可以并行执行,而不同层的子任务顺次执行,如此,由于层内子任务的并行执行,可以大大减少计算延迟,提高多方安全计算的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出一个多方安全计算的具体应用场景示意图;
图2示出根据一个实施例的多方安全计算中的任务执行方法流程图;
图3示出根据一个实施例的多方安全计算中的任务执行装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的技术方案进行描述。
首先,图1示出一个多方安全计算的具体实施场景。如图1所示,在该实施场景中,多个数据方分别拥有自己的数据,并可以联合进行某种业务处理。例如,隐私求交场景下,各个数据方分别持有自身的业务数据,各个数据方的数据中均包含用户的身份证号,则多个数据方可以通过多方安全计算,进行确定各个数据方的交集的业务处理。
业务处理过程中涉及数据交互,则这些数据方之间可以相互进行数据通信。为确保各个数据方之间的数据安全,在业务处理过程中,对所涉及的数据处理任务进行拆分,由各个数据方分别进行本地计算。从而,在各个数据方相互不获取其他方数据的情况下,进行联合业务处理。这里的数据处理任务例如可以是加和、乘法、逻辑运算(与、或、非)、比较、选择、按照预定规则生成数值等等。其中,基于隐私保护的需求,业务处理结果可以由其中一方或多方知晓,也可以分布存储在各个数据方,而任意一方无法单独获取。
在一次业务处理过程中,可能涉及多个数据方之间的多次通信。每次通信的数据可以是基于某些数据处理任务得到的数据处理结果。例如,在隐私求交过程中,数据方1向数据方2发送加密的用户身份证号,加密过程为一个数据处理任务,数据处理结果即加密结果。对用户身份证号加密并向数据方2发送,可以为数据方1的一个通信周期。数据方2使用本地密钥对加密结果二次加密并将二次密文发送至第一数据方,为数据方2的一个通信周期。数据方1和数据方2的通信间歇,可以称为通信间隔。在一个通信间隔内,数据方1和数据方2中至少一方可以进行数据处理。
针对一个通信间隔的数据处理任务,相应数据方可以将其拆分为多个子任务的处理过程。子任务可以理解为数据处理单元,对应有处理对象和输出结果。例如一个子任务可以包含一个算子。算子用于实现数据处理过程中的具体运算,如加法算子、乘法算子等。以数据方1和数据方2两个数据方进行安全计算为例,数据方1在当前通信周期的数据处理任务,可以拆分为4个子任务(如4个通过加法算子进行数据处理的子任务),例如为子任务序列f1、f2、f3、f4,其中:f1的处理对象为a、b,输出结果为c(如c=a+b等);f2的处理对象为e、b,输出结果为g;f3的处理对象为c、a,输出结果为h;f4的处理对象为g、j,输出结果为k。常规技术中,对于该子任务序列,可以按照序列中的顺序依次执行,总的执行耗时至少为4个子任务(如4个add算子)的数据处理耗时。
为了提高多方安全计算的业务处理效率,本说明书提出子任务并行执行的技术构思,从而减少任务执行耗时,节约业务处理时长。例如,可以将序列f1,f2,f3,f4分层。在一个具体例子中,可以将该序列分层为:第一层f1、f2;第二层f3、f4。从而,同一个分层内的子任务可以并行执行,例如子任务f1、f2并行执行,子任务f3、f4并行执行,业务处理耗时可以减少为2个子任务的业务处理耗时。
可见,在本说明书的技术构思下,可以将各个子任务按照相关性进行分层,并逐层执行各层子任务,针对单个层的子任务可以并行执行,从而减少任务执行延时,提高多方安全计算下的业务处理效率。
下面结合图2示出的一个实施例的多方安全计算中的任务执行流程,描述本说明书的技术构思。图2示出的流程的执行主体可以是具有一定计算能力的计算机、设备或服务器。具体而言,例如是图1中对应任一个数据方的设备,为了描述方便,以下称之为第一数据方。该流程用于通过多方安全计算进行业务处理过程中,单个数据方在单个通信周期内的业务处理。
如图2所示,该流程包括:步骤201,获取当前通信周期内待处理的若干个子任务,单个子任务对应有至少一个处理对象和至少一个输出结果;步骤202,针对若干个子任务,检测各个子任务的处理对象是否为其他子任务的输出结果;步骤203,根据检测结果对若干个子任务进行分层,其中,单个子任务的处理对象与其所在层的其他子任务的输出结果无关;步骤204,按照分层结果逐层执行若干个子任务得到执行结果,其中,单个层内的各个子任务被并行执行。
首先,通过步骤201,获取当前通信周期内待处理的若干个子任务。可以理解,当前通信周期或者包括当前通信周期在内的多个通信周期可以在多个数据方之间实现一个业务处理过程,即一个总的任务。这里的子任务可以是当前任务中的处理单元。在多方安全计算中,子任务例如可以包括但不限于两个数求和、一个数的平方、生成一个随机数、两个数相乘、比较2个数的大小,等等。可选地,该若干个子任务是同类子任务,例如都是均为两数相加的加法任务。
在业务处理过程中,子任务可以是对业务数据或者业务数据的中间结果进行处理,得到的业务处理结果或者中间结果。业务数据可以根据实际业务场景确定,其可以是图片、字符、动画、视频、音频等形式的数据。单个子任务可以对应有处理对象和输出结果。其中,处理对象即为相应子任务待处理的数据,输出结果为该子任务对数据进行处理后得到的业务处理结果或者中间结果。每个子任务可以对应至少一个处理对象和至少一个输出结果,例如对两个数求和,则求和的两个数为2个处理对象,和值为输出结果,一个数的平方,则该数为处理对象,平方值为输出结果,等等。
值得说明的是,这里的若干个子任务可以由执行主体对当前通信周期内的任务拆分确定,也可以从服务方或可信第三方获取,还可以通过与其他数据方协商确定,在此不做限定。这若干个子任务可以以任务列表、任务集合等各种形式描述。在可选的实施例中,这若干个子任务按照执行顺序排列,或者可以按照顺序执行。
接着,在步骤202,针对若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系。容易理解,该步骤202的目的在于检测各个子任务中的依赖关系(即关联关系)。更具体地,假设一个子任务如第一子任务的任一个处理对象(如f),包含在其他子任务如第二子任务的输出结果(如包括f、g)中,则该第一子任务的执行过程依赖于第二子任务的执行。换句话说,只有在第二子任务执行完毕得到相应输出结果(f)之后,第一子任务才能把相应输出结果(f)作为自己的处理对象进行业务处理。因此,第一子任务和第二子任务之间具有先后逻辑顺序,从而无法并行执行。为了描述方便,在一些实施例中,可以将类似的第一子任务称为关联子任务。
可以理解,在数据处理时,各种数据通常可以通过参数标识来标记,以此来区分数据。例如隐私求交任务处理过程中,用k1描述第一数据方的加密密钥,用x1、x2等分别描述各个待加密数据,用V1、V2等分别描述各个通过加密密钥加密后的数据,等等。因此,检测子任务的处理对象与其他子任务的输出结果之间的关联关系,实质上是相应参数标识之间的匹配。
在一个实施例中,可以设置输出参数集,用于存储子任务的输出结果。依次针对各个子任务,检测单个子任务是否与排列在其前面的子任务的输出结果产生关联关系,在产生关联关系的情况下,给出新的输出参数集。直至遍历各个子任务。具体地,针对各个子任务中的单个子任务,将描述相应处理对象的参数标识与当前的输出参数集中的各个参数标识一一比对,从而,在当前的输出参数集中匹配不到相应处理对象的参数标识的情况下,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系,将该单个子任务的输出结果对应的参数标识加入当前的输出参数集。这样,依次将各个子任务的输出结果对应的参数标识加入当前的输出参数集,直至出现关联子任务,即处理对象与当前的输出参数集,将关联子任务的输出结果对应的参数标识记录到新的输出参数集。新的输出参数集作为新的当前的输出参数集。直至遍历所有子任务。
更具体地,例如针对第一个子任务,对应一个新的参数集(初始时可以为空集),后续子任务的输出结果对应的参数可以被添加进来,直至出现关联子任务,设置新的输出参数集。在针对单个子任务进行检测时,仅检测当前的输出参数集,即对应当前输出参数集是否具有相关联的输出参数。针对单个子任务,将描述相应处理对象对应的参数标识与当前的输出参数集中的参数标识进行比对。由于当前的输出参数集中存储排列在前的子任务的输出结果对应的参数标识,在相应处理对象对应的参数标识中由至少一个与输出参数集中的参数标识一致(相匹配)的情况下,确定该单个子任务的处理对象是排列在前的至少一个子任务的输出结果,该单个子任务与排列在前的子任务具有关联关系。否则,确定该单个子任务与其他子任务不具有关联关系。
在另一个实施例中,针对单个子任务,可以将其处理对象与其他子任务的输出结果逐一匹配,例如仍是通过相应参数标识进行匹配,检测其是否与其他子任务相关联。具体地,该单个子任务对应的处理对象为其他子任务的输出结果的情况下,则该单个子任务的处理对象与其他子任务的输出结果之间具有关联关系,否则,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系。针对各个子任务,分别进行一个轮次的关联关系检测,以筛选与其他子任务的输出结果具有关联关系的子任务和不具有关联关系的子任务。在下个轮次,可以仅检测该轮次中与其他子任务的输出结果具有关联关系的子任务,直至所有子任务之间都不具有关联关系。
在其他实施例中,还可以通过其他方法对若干个子任务之间的关联关系进行检测,在此不做赘述。
然后,经由步骤203,根据检测结果对若干个子任务进行分层。其中,检测结果可以表示各个子任务的处理对象是否与其他子任务的输出结果具有关联关系的结果。本领域技术人员容易理解,不具有相互依赖关系的子任务,理论上来说可以并行执行。因此,分层的目标是:单个子任务的处理对象与其所在层的其他子任务的输出结果无关。换句话说,单个层中,各个子任务的处理对象与输出结果没有交集。
在一个实施例中,对若干个子任务依次检测相应的处理对象的参数标识是否与输出参数集中的输出结果的参数标识一致的情况下,可以按照输出参数集记录的输出结果对子任务进行分层。此时,一个输出参数集对应着一个层,即,一个输出参数及对应的各个子任务被分为一个分层。该实施例达到的效果是,对子任务序列按顺序截断分层。即子任务顺序不断,在出现相关联子任务时截断为新的层。如f1、f2、f3、f4的分层结果是f1、f2|f3|f4,共3个层,或者f1、f2|f3、f4,共2个层。
在另一个实施例中,针对单个子任务,遍历其他子任务的输出结果对应的参数,检测该单个子任务的处理对象是否与其他子任务的输出结果具有关联关系。此时,可以将处理对象不与其他子任务的输出结果对应的参数具有关联关系的子任务划分为一个分层。例如在一个例子中,先遍历检测各个子任务,得到不与其他子任务的输出结果对应的参数具有关联关系的子任务作为第一分层。然后按照相似的方式检测未划分到第一分层的各个子任务,得到不与其他子任务的输出结果对应的参数具有关联关系的子任务作为第二分层。依次类推,直至余下的各个子任务的处理对象均不与其他子任务的输出结果对应的参数具有关联关系,将这些子任务作为最后一层,分层完毕。该实施例达到的效果是,不考虑子任务的排列顺序,而考虑输出结果和处理对象之间的关联关系。如f1、f2、f3、f4的分层结果是f1、f3|f2、f4,或者f1、f2、f4|f3,等等。
在其他实施例中,还可以通过其他方法对若干个子任务进行分层,在此不再赘述。
分层的目的是单个层间的子任务可以并行执行,从而,进一步通过步骤204,按照分层结果逐层执行若干个算子得到执行结果。其中,单个层内的各个子任务被并行执行,执行结果用于与其他数据方进行通信。并行执行的方式可以通过并行线程、分布式执行等各种方式进行,在此不做限定。例如前文的例子中,先并行执行第一层的子任务f1、f2,在确定子任务f1、f2的输出结果后,利用相应输出结果,执行第二层的子任务f3、f4,依次类推,直至最后一层子任务执行完毕。
值得说明的是,以上针对图2所示流程描述的步骤仅为示例,实践中,步骤201-步骤204可以并行执行、调换顺序执行、交互执行,等等。例如步骤202的检测步骤和步骤203的分层步骤,由于检测的目的是为了分层,而分层可能不会一次性充分完成,因此,检测步骤可以作为分层步骤的一部分,或者和分层步骤交互执行。例如,在前文的实施例中,对子任务进行阶段分层的情况下,可以先检测子任务之间的关联性,得到各个输出参数集,然后根据输出参数集直接对子任务分层。还可以边检测边分层,在第一次检测到关联子任务的情况下,确定该关联子任务之前的子任务为第一分层,并将该关联子任务作为第二分层的子任务,同时,建立第二分层对应的输出参数集,将该关联子任务的输出结果对应的参数标识加入第二分层对应的输出参数集,并继续后续子任务的分层。
根据一个可能的设计,图2示出的流程还可以包括通信步骤(未示出)执行以下操作:将步骤204中最终的执行结果发送给多个数据方中的其他数据方,如第二数据方等,以进行安全计算。
回顾以上过程,本说明书实施例提供的方法,按照子任务之间的处理对象和输出结果之间的关联关系,对子任务进行分层,使得层内的子任务相互独立,从而可以并行执行,而不同层的子任务顺次执行,如此,由于层内子任务的并行执行,可以大大减少计算延迟,提高安全计算的任务执行效率。
根据另一方面的实施例,还提供一种多方安全计算中的任务执行装置。用于在多方安全计算过程中,在两次通信之间,单个数据方对本地的子任务进行分层,使得单个层内的子任务可以并行执行,从而提高基于多方安全计算的业务处理效率。
图3示出了一个实施例的多方安全计算中的任务执行装置300。如图3所示,装置300包括:
获取单元31,配置为获取当前通信周期内待处理的若干个子任务,单个子任务对应有至少一个处理对象和至少一个输出结果;
检测单元32,配置为针对若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系;
分层单元33,配置为根据检测结果对若干个子任务进行分层,其中,单个子任务的处理对象与其所在层的其他子任务的输出结果不具有关联关系;
执行单元34,配置为按照分层结果逐层执行若干个子任务得到执行结果,其中,单个层内的各个子任务被并行执行。
根据一个可能的设计,若干个子任务中,相同的处理对象或输出结果通过相同的参数标识描述,各个子任务的处理对象与其他子任务的输出结果之间的关联关系通过参数标识的匹配确定。
在一个可选的实现方式中,检测单元32进一步配置为:
针对若干个子任务中的单个子任务,将描述相应处理对象的参数标识与当前的输出参数集中的各个参数标识一一比对,从而在当前的输出参数集中匹配不到相应处理对象的参数标识的情况下,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系,将单个子任务的输出结果对应的参数标识加入当前的输出参数集;
依次将各个子任务的输出结果对应的参数标识加入当前的输出参数集,直至出现关联子任务,其中,关联子任务是相应处理对象与当前的输出参数集中的至少一个输出结果相匹配的子任务。
在一个实施例中,分层单元33进一步配置为:
将当前的输出参数集中的各个参数标识对应的各个子任务划分到同一个分层;
在检测到当前的关联子任务的情况下,将当前的关联子任务加入新的分层,并将当前的关联子任务的输出结果对应的参数加入新的输出参数集。
在另一个可选的实现方式中,检测单元32进一步配置为:
针对若干个子任务中的单个子任务,将相应处理对象与其他各个子任务的输出结果对应的参数标识一一比对,若在其他子任务的输出结果对应的参数标识中匹配到相应处理对象的参数标识,则确定该单个子任务的处理对象与其他子任务的输出结果之间具有关联关系,否则,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系。
在一个实施例中,分层单元33进一步配置为:
循环执行以下操作至若干个子任务分层完毕:遍历未分层的各个子任务,将处理对象不与其他子任务的输出结果具有关联关系的子任务划分到一个分层。
根据一个可能的设计,装置300还包括:
通信单元(未示出),配置为基于执行结果与多个数据方中的其他数据方,以进行安全计算。
值得说明的是,图3所示的装置300与图2描述的方法相对应,图2的方法实施例中的相应描述同样适用于装置300,在此不再赘述。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2等所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2等所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。

Claims (16)

1.一种多方安全计算中的任务执行方法,用于多个数据方安全计算过程的通信间隔的任务处理,所述方法适用于所述多个数据方中的第一数据方,包括:
获取当前通信周期内待处理的若干个子任务,单个子任务对应有至少一个处理对象和至少一个输出结果;
针对所述若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系;
根据检测结果对所述若干个子任务进行分层,其中,单个子任务的处理对象与其所在层的其他子任务的输出结果不具有关联关系;
按照分层结果逐层执行所述若干个子任务得到执行结果,其中,单个层内的各个子任务被并行执行。
2.根据权利要求1所述的方法,其中,所述若干个子任务中,相同的处理对象或输出结果通过相同的参数标识描述,各个子任务的处理对象与其他子任务的输出结果之间的关联关系通过参数标识的匹配确定。
3.根据权利要求2所述的方法,其中,所述针对所述若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系包括:
针对所述若干个子任务中的单个子任务,将描述相应处理对象的参数标识与当前的输出参数集中的各个参数标识一一比对,从而在当前的输出参数集中匹配不到相应处理对象的参数标识的情况下,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系,将该单个子任务的输出结果对应的参数标识加入当前的输出参数集;
依次将各个子任务的输出结果对应的参数标识加入当前的输出参数集,直至出现关联子任务,其中,所述关联子任务是相应处理对象与当前的输出参数集中的至少一个输出结果相匹配的子任务。
4.根据权利要求3所述的方法,其中,所述根据检测结果对所述若干个子任务进行分层包括:
将当前的输出参数集中的各个参数标识对应的各个子任务划分到同一个分层;
在检测到当前的关联子任务的情况下,将当前的关联子任务加入新的分层,并将所述当前的关联子任务的输出结果对应的参数加入新的输出参数集。
5.根据权利要求2所述的方法,其中,所述针对所述若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系包括:
针对所述若干个子任务中的单个子任务,将相应处理对象与其他各个子任务的输出结果对应的参数标识一一比对,若在其他子任务的输出结果对应的参数标识中匹配到相应处理对象的参数标识,则确定该单个子任务的处理对象与其他子任务的输出结果之间具有关联关系,否则,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系。
6.根据权利要求5所述的方法,其中,所述根据检测结果对所述若干个子任务进行分层包括:
循环执行以下操作至所述若干个子任务分层完毕:遍历未分层的各个子任务,将处理对象不与其他子任务的输出结果具有关联关系的子任务划分到一个分层。
7.根据权利要求1所述的方法,其中,所述方法还包括:
基于所述执行结果与所述多个数据方中的其他数据方通信,以进行安全计算。
8.一种多方安全计算中的任务执行装置,用于多个数据方之间的安全计算,所述装置适用于所述多个数据方中的第一数据方,包括:
获取单元,配置为获取当前通信周期内待处理的若干个子任务,单个子任务对应有至少一个处理对象和至少一个输出结果;
检测单元,配置为针对所述若干个子任务,检测各个子任务的处理对象与其他子任务的输出结果之间的关联关系;
分层单元,配置为根据检测结果对所述若干个子任务进行分层,其中,单个子任务的处理对象与其所在层的其他子任务的输出结果不具有关联关系;
执行单元,配置为按照分层结果逐层执行所述若干个子任务得到执行结果,其中,单个层内的各个子任务被并行执行。
9.根据权利要求8所述的装置,其中,所述若干个子任务中,相同的处理对象或输出结果通过相同的参数标识描述,各个子任务的处理对象与其他子任务的输出结果之间的关联关系通过参数标识的匹配确定。
10.根据权利要求9所述的装置,其中,所述检测单元进一步配置为:
针对所述若干个子任务中的单个子任务,将描述相应处理对象的参数标识与当前的输出参数集中的各个参数标识一一比对,从而在当前的输出参数集中匹配不到相应处理对象的参数标识的情况下,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系,将单个子任务的输出结果对应的参数标识加入当前的输出参数集;
依次将各个子任务的输出结果对应的参数标识加入当前的输出参数集,直至出现关联子任务,其中,所述关联子任务是相应处理对象与当前的输出参数集中的至少一个输出结果相匹配的子任务。
11.根据权利要求10所述的装置,其中,所述分层单元进一步配置为:
将当前的输出参数集中的各个参数标识对应的各个子任务划分到同一个分层;
在检测到当前的关联子任务的情况下,将当前的关联子任务加入新的分层,并将所述当前的关联子任务的输出结果对应的参数加入新的输出参数集。
12.根据权利要求9所述的装置,其中,所述检测单元进一步配置为:
针对所述若干个子任务中的单个子任务,将相应处理对象与其他各个子任务的输出结果对应的参数标识一一比对,若在其他子任务的输出结果对应的参数标识中匹配到相应处理对象的参数标识,则确定该单个子任务的处理对象与其他子任务的输出结果之间具有关联关系,否则,确定该单个子任务的处理对象与其他子任务的输出结果之间不具有关联关系。
13.根据权利要求12所述的装置,其中,所述分层单元进一步配置为:
循环执行以下操作至所述若干个子任务分层完毕:遍历未分层的各个子任务,将处理对象不与其他子任务的输出结果具有关联关系的子任务划分到一个分层。
14.根据权利要求8所述的装置,其中,所述装置还包括:
通信单元,配置为基于所述执行结果与所述多个数据方中的其他数据方通信,以进行安全计算。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项的所述的方法。
16.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-7中任一项所述的方法。
CN202111165290.1A 2021-09-30 2021-09-30 多方安全计算中的任务执行方法及装置 Pending CN113886085A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111165290.1A CN113886085A (zh) 2021-09-30 2021-09-30 多方安全计算中的任务执行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111165290.1A CN113886085A (zh) 2021-09-30 2021-09-30 多方安全计算中的任务执行方法及装置

Publications (1)

Publication Number Publication Date
CN113886085A true CN113886085A (zh) 2022-01-04

Family

ID=79005021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111165290.1A Pending CN113886085A (zh) 2021-09-30 2021-09-30 多方安全计算中的任务执行方法及装置

Country Status (1)

Country Link
CN (1) CN113886085A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150339033A1 (en) * 2014-05-21 2015-11-26 Facebook, Inc. Asynchronous Execution of Tasks for a GUI
US20160299791A1 (en) * 2014-01-14 2016-10-13 Tencent Technology (Shenzhen) Company Limited Method And Apparatus For Processing Computational Task
US20200073736A1 (en) * 2018-08-30 2020-03-05 Baidu Online Network Technology (Beijing) Co., Ltd. Message transmission method and apparatus, device and medium
CN110908986A (zh) * 2019-11-08 2020-03-24 欧冶云商股份有限公司 计算任务的分层方法、分布式调度方法、装置及电子设备
CN111680322A (zh) * 2020-05-26 2020-09-18 矩阵元技术(深圳)有限公司 基于安全多方计算的数据处理方法、装置及电子设备
CN113342500A (zh) * 2021-06-29 2021-09-03 北京三快在线科技有限公司 任务执行方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160299791A1 (en) * 2014-01-14 2016-10-13 Tencent Technology (Shenzhen) Company Limited Method And Apparatus For Processing Computational Task
US20150339033A1 (en) * 2014-05-21 2015-11-26 Facebook, Inc. Asynchronous Execution of Tasks for a GUI
US20200073736A1 (en) * 2018-08-30 2020-03-05 Baidu Online Network Technology (Beijing) Co., Ltd. Message transmission method and apparatus, device and medium
CN110908986A (zh) * 2019-11-08 2020-03-24 欧冶云商股份有限公司 计算任务的分层方法、分布式调度方法、装置及电子设备
CN111680322A (zh) * 2020-05-26 2020-09-18 矩阵元技术(深圳)有限公司 基于安全多方计算的数据处理方法、装置及电子设备
CN113342500A (zh) * 2021-06-29 2021-09-03 北京三快在线科技有限公司 任务执行方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN112182644B (zh) 一种数据处理方法、装置和电子设备
CN112580821A (zh) 一种联邦学习方法、装置、设备及存储介质
CN113541946B (zh) 一种多方安全计算方法、装置及电子设备
CN114282257B (zh) 联邦学习代码生成方法、装置、电子设备及存储介质
Chen et al. ARMOR: A secure combinatorial auction for heterogeneous spectrum
CN114584294A (zh) 不经意分散排列方法及装置
US20220417003A1 (en) Multiparty computation method
CN113536379A (zh) 一种隐私数据的查询方法、装置及电子设备
CN114296922A (zh) 多方数据处理方法、系统、电子装置和存储介质
CN111049847B (zh) 基于隐私数据的区间判定进行业务处理的方法及装置
EP3256949B1 (en) Multi-party encryption cube processing apparatuses, methods and systems
CN112052954A (zh) 梯度提升树建模方法、装置以及终端
CN113849806B (zh) 多方安全计算中的任务执行方法及装置
CN113886085A (zh) 多方安全计算中的任务执行方法及装置
CN114595483B (zh) 一种安全多方计算方法、装置、电子设备及存储介质
CN115022012B (zh) 一种数据传输方法、装置、系统、设备及存储介质
CN113901500B (zh) 图拓扑嵌入方法、装置、系统、设备及介质
CN110570309A (zh) 用于更换区块链网络的领导者的方法和系统
JP2024033698A (ja) 秘匿計算システム、サーバー、情報処理装置、コンピュータプログラムおよび秘匿計算方法
CN115659346A (zh) 一种多方安全计算平台的功能测试方法及装置
CN113761513A (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN114553407A (zh) 基于秘密分享的数据处理方法及设备
CN110008732B (zh) 数据的关联方法、装置及设备
Tillem et al. Mining encrypted software logs using alpha algorithm
RU2774815C2 (ru) Способ безопасной передачи частей данных, описывающих единый объект и хранящихся в разных базах данных

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