CN112131135B - 一种密文运算调试方法、系统和用于密文运算调试的装置 - Google Patents
一种密文运算调试方法、系统和用于密文运算调试的装置 Download PDFInfo
- Publication number
- CN112131135B CN112131135B CN202011300487.7A CN202011300487A CN112131135B CN 112131135 B CN112131135 B CN 112131135B CN 202011300487 A CN202011300487 A CN 202011300487A CN 112131135 B CN112131135 B CN 112131135B
- Authority
- CN
- China
- Prior art keywords
- task
- task configuration
- current task
- node
- configuration
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种密文运算调试方法、系统和用于密文运算调试的装置。其中的方法包括:任务控制节点接收包含预设指令的第一密文运算代码,并根据原输入参数、原输出参数、以及第一密文运算代码生成当前任务配置,下发给任务参与方;计算节点执行到预设指令时,更新当前任务配置,并将更新后的当前任务配置发送给任务控制节点;任务控制节点若判断接收到的更新后的当前任务配置满足更新条件,则更新本地的当前任务配置,并将更新后的当前任务配置下发给相关的任务参与方,以使相关的任务参与方根据更新后的当前任务配置执行第一密文运算代码。本发明实施例可以在当前调试任务中动态增加新输入参数和/或新输出参数,提高密文运算调试的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种密文运算调试方法、系统和用于密文运算调试的装置。
背景技术
程序代码在开发过程以及使用过程中可能会出现各种漏洞或者缺陷,这些漏洞或者缺陷可能是由逻辑错误引起的,也可能是由编程错误引起的。另外根据程序测试需求或者真实用户需求,程序代码中也可能存在各种需要进行更改或者优化的细节。这些漏洞、缺陷或者可更改、可优化的细节一般可以通过对程序代码的调试来进行修复或者优化。
密文运算调试是指对密文运算的程序代码进行调试,进而对密文运算的程序代码进行修复或优化的过程,所述密文运算可以是基于多方安全计算的运算。
在进行密文运算调试之前,通常需要设置输入参数和输出参数,其中,输入参数用于指定参与密文运算的数据源,输出参数用于指定需要获取的计算结果。然而,如果在调试过程中需要临时添加输入参数或输出参数,则需要重新启动密文调试任务,并重新设置输入参数和输出参数,导致需要频繁执行重复的操作,进而影响密文运算调试的效率。
发明内容
本发明实施例提供一种密文运算调试方法、装置和用于密文运算调试的装置,可以在密文运算调试的过程中动态增加新输入参数和/或新输出参数,减少重复操作,进而可以提高密文运算调试的效率。
为了解决上述问题,本发明实施例公开了一种密文运算调试方法,所述方法应用于密文运算系统,所述密文运算系统包括:任务控制节点、计算节点、数据节点、以及结果接收方,所述方法包括:
任务控制节点接收包含预设指令的第一密文运算代码,所述预设指令用于在当前调试任务中增加新输入参数和/或增加新输出参数;
任务控制节点根据所述当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方,所述任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数的结果接收方;
计算节点执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点;
任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码。
另一方面,本发明实施例公开了一种密文运算系统,所述系统包括:任务控制节点、计算节点、数据节点、以及结果接收方,其中,
所述任务控制节点,用于接收包含预设指令的第一密文运算代码,所述预设指令用于在当前调试任务中增加新输入参数和/或增加新输出参数;
所述任务控制节点,还用于根据所述当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方,所述任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数的结果接收方;
所述计算节点,用于在执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点;
所述任务控制节点,还用于判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码。
再一方面,本发明实施例公开了一种用于密文运算调试的装置,所述装置应用于密文运算系统,所述密文运算系统包括:任务控制节点、计算节点、数据节点、以及结果接收方,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
任务控制节点接收包含预设指令的第一密文运算代码,所述预设指令用于在当前调试任务中增加新输入参数和/或增加新输出参数;
任务控制节点根据所述当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方,所述任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数的结果接收方;
计算节点执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点;
任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码。
又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的密文运算调试方法。
本发明实施例包括以下优点:
本发明实施例通过增加预设指令,以及通过当前调试任务中的各任务参与方与任务控制节点之间进行的任务配置更新交互,实现在不改变当前密文运算调试任务的初始设置的前提下,在当前调试任务中动态增加新输入参数和/或新输出参数。本发明实施例不用改变当前调试任务的初始设置,也不用返回重新配置输入参数和/或输出参数,可以减少频繁的重复操作,进而可以提高密文运算调试的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是一种密文运算系统的结构以及该密文运算系统中数据流向的示意图;
图2是本发明的一种密文运算调试方法实施例的步骤流程图;
图3是本发明的一种密文运算系统实施例的结构框图;
图4是本发明的一种用于密文运算调试的装置800的框图;
图5是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
本发明提供的密文运算调试方法可应用于密文运算系统,参照图1,示出了一种密文运算系统的结构以及该密文运算系统中数据流向的示意图。如图1所示,所述密文运算系统包括:任务控制节点101、计算节点102、数据节点103、以及结果接收方104。在实际应用中,所述密文运算系统可以与用户侧的客户端105相连,通过客户端可以接收用户输入的用于进行密文运算调试的输入参数、输出参数、以及调试任务开始指令/调试任务结束指令等,并且可以将密文运算调试的输出结果返回至客户端以供用户查看。
在密文运算系统中,参与计算的数据、中间结果、以及最终结果可以为密文。所述密文运算系统中可以包括至少一个数据节点和至少一个计算节点。数据节点可以提供数据存储、数据提供、计算结果存储等服务。计算节点用于根据数据节点提供的数据执行特定的密文计算任务。任务控制节点用于生成密文计算任务,并且调度计算节点执行密文计算任务。
进一步地,所述密文运算系统中可以包括至少两个计算节点,所述至少两个计算节点基于多方安全计算协议进行协同计算,以完成所述任务控制节点生成的密文计算任务。
其中,数据节点、客户端、结果接收方可以位于用户侧,任务控制节点、计算节点可以位于服务侧。数据节点、客户端、结果接收方可以位于同一台设备或者位于不同设备。结果接收方可以是指定的某一个或某几个数据节点。
如图1所示,①对应的数据流为客户端和任务控制节点之间交互的数据流,例如可以包括客户端下发的调试任务开始指令/调试任务结束指令、以及客户端接收任务控制节点返回的任务状态信息等。②对应的数据流为任务控制节点和各任务参与方之间进行任务配置交互的数据流,例如可以包括任务配置的更新信息等。③对应的数据流表示密文运算系统中参与密文计算任务的运算数据、中间结果、最终结果的流向。
一个示例中,密文运算调试过程通常可以包括如下步骤:
A1、客户端接收用户输入的当前调试任务对应的输入参数、输出参数,并且向任务控制节点发送任务请求,所述任务请求中携带有输入参数和输出参数,客户端接收任务控制节点返回的状态信息。
当前调试任务指的是对当前的密文运算的程序代码进行调试的任务。密文运算的程序代码通常由多段代码组成,对密文运算的程序代码进行调试可以采用分步执行进行调试的方式,例如,每次执行其中的一段代码或几段代码。
需要说明的是,在本发明实施例中,当前调试任务指的是对某个密文运算的程序代码进行调试的整个过程,在接收到用户通过客户端输入的调试任务结束指令后,可以认为当前调试任务已完成或已结束。
其中,输入参数用于指定参与当前调试任务的数据节点,如输入参数可以指定数据节点的地址信息。输出参数用于指定当前调试任务所要获取的结果变量名。任务控制节点返回的状态信息可以包括当前调试任务的所有任务参与方的运行状态,如运行中、失败、成功等状态,以及失败的原因等。
A2、客户端接收用户输入的密文运算代码,并且将密文运算代码发送给任务控制节点,以及接收任务控制节点返回的状态信息。
客户端接收的密文运算代码可以为整个密文运算的程序代码中的某一段或某几段代码。控制节点返回的状态信息可以包括所有任务参与方的运行状态,如运行中、失败、成功等状态,以及失败的原因等。
A3、任务控制节点根据接收到的任务请求和密文运算代码,生成密文计算任务以及该密文计算任务对应的任务配置,并将任务配置发送给所有的任务参与方,任务参与方包括输入参数指定的数据节点、用于获取输出参数对应计算结果的结果接收方、参与密文计算任务的计算节点,之后,任务控制节点接收各任务参与方返回的状态信息,如运行中、失败、成功等状态,以及失败的原因等。
A4、数据节点接收到任务配置后,将其持有的、任务配置中输入参数指定的运算数据,发送至任务配置中指定的计算节点。计算节点接收到任务配置后,基于接收到的运算数据,执行任务配置中指定的密文运算代码。结果接收方接收到任务配置后,从任务配置中指定的计算节点获取输出参数对应的计算结果。
A5、返回步骤A2,客户端接收用户输入的下一段密文运算代码,以继续执行当前调试任务。
A6、客户端接收用户输入的调试任务结束指令,并将调试任务结束指令发送至任务控制节点,任务控制节点通知各计算节点结束当前的密文计算任务,并向客户端返回计算已完成的状态信息,客户端接收到任务控制节点返回的计算已完成的状态信息后,可以从结果接收方获取输出参数指定的计算结果,并将计算结果输出至用户界面进行展示。
在上述密文运算调试过程中,输入参数和输出参数是在步骤A1中指定的。如果在当前调试任务的执行过程中,例如,在接收到用户输入的某段密文运算代码之后,也即在步骤A2完成之后,用户需要增加新输出参数,以获取密文运算的程序代码的某个中间结果。此时,需要返回重新执行步骤A1,重新配置输入参数、输出参数,进而重新启动一个调试任务,以增加需要查看的中间结果对应的新输出参数。
也就是说,每次需要增加新输出参数时,都需要返回重新执行步骤A1,重新配置输入参数、输出参数,并重新启动一个调试任务。同样地,如果需要增加新输入参数,也要返回重新执行步骤A1,重新配置输入参数、输出参数,并重新启动一个调试任务。导致需要频繁执行重复的操作,进而影响密文运算调试的效率。
为解决该问题,本发明实施例提出一种密文运算调试方法,可以在当前调试任务执行的过程中,动态增加新输入参数和/或新输出参数,不用返回重新执行步骤A1,不用重新配置输入参数、输出参数,也不用重新启动一个调试任务,以减少重复操作,提高密文运算调试的效率。
参照图2,示出了本发明的一种密文运算调试方法实施例的步骤流程图,所述方法应用于密文运算系统,所述密文运算系统包括:任务控制节点、计算节点、数据节点、以及结果接收方,所述方法具体可以包括如下步骤:
步骤201、任务控制节点接收包含预设指令的第一密文运算代码,所述预设指令用于在当前调试任务中增加新输入参数和/或增加新输出参数;
步骤202、任务控制节点根据所述当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方,所述任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数的结果接收方;
步骤203、计算节点执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点;
步骤204、任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码。
为了在不改变当前密文运算调试任务的初始设置的前提下,实现在调试过程中动态增加新输入参数和/或新输出参数,本发明实施例设计了用于在当前调试任务中增加新输入参数和/或增加新输出参数的预设指令。在本发明的一个应用示例中,用于增加新输入参数的预设指令为:pp.ss(source)。其中,source用于表示增加的新输入参数,source用于指定新增的数据节点的地址信息。用于增加新输出参数的预设指令为:pp.debug_reveal(var)。其中,var用于表示增加的新输出参数,var用于指定所需获取的计算结果的变量名。可以理解,上述预设指令仅作为示例性的说明,在具体实施中,可以根据实际情况设置不同形式、不同编程语言的预设指令。
其中,不改变初始设置指的是对于当前调试任务,在步骤A1执行完成之后,如果需要增加新输入参数和/或新输出参数,不用返回步骤A1重新配置输入参数和/或输出参数,而是保持当前调试任务的原输入参数和原输出参数不变。原输入参数和原输出参数指的是在当前调试任务的步骤A1中接收到的用户通过客户端输入的输入参数和输出参数。
由于增加新输入参数和增加新输出参数的过程相似,因此,为便于描述,本发明实施例中主要以增加新输出参数为例进行说明,增加新输入参数的过程相互参照即可。
例如,在当前调试任务的执行过程中,如果需要增加新输出参数,则可以在本次已输入的某段密文运算代码执行完成之后,在输入下一段密文运算代码时,在下一段密文运算代码中增加预设指令pp.debug_reveal(var)。对于增加了预设指令pp.debug_reveal(var)和/或pp.ss(source)的密文运算代码,本发明实施例中称为第一密文运算代码。
任务控制节点根据当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方。在本发明实施例中,当前任务配置为所述第一密文运算代码对应的密文计算任务的配置信息。当前任务配置中可以包括密文计算任务的任务标识、各任务参与方的节点信息、第一密文运算代码、输入参数信息、输出参数信息等。任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取输出参数对应计算结果的结果接收方。
任务控制节点将当前任务配置下发给各任务参与方。数据节点接收到当前任务配置后,将其持有的运算数据发送至当前任务配置中指定的计算节点。计算节点接收到当前任务配置后,基于接收到的运算数据,执行当前任务配置中的第一密文运算代码。
计算节点执行到所述第一密文运算代码中的预设指令如pp.debug_reveal(var)时,计算节点识别出该预设指令为用于增加新输出参数的指令,则计算节点根据该预设指令更新当前任务配置,例如在当前任务配置中增加新输出参数对应的字段信息等,并对当前任务配置进行版本更新,得到更新后的当前任务配置。计算节点将更新后的当前任务配置通过心跳发送给任务控制节点。
任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新任务控制节点本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码,由此实现对当前任务配置的动态更新,在当前任务配置中动态增加新输出参数。
在本发明的一种可选实施例中,步骤203中所述对所述当前任务配置进行版本更新,包括:对所述当前任务配置中版本字段的当前值加1,得到更新后的当前任务配置的版本字段;
步骤204中所述任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,包括:若所述更新后的当前任务配置中版本字段的当前值大于所述任务控制节点本地存储的当前任务配置中版本字段的当前值,并且接收到参与执行所述第一密文运算代码的所有计算节点发送的更新后的当前任务配置均相同,则确定接收到的更新后的当前任务配置满足更新条件。
在本发明实施例中,可以在任务配置中设置版本字段,用于表示该任务配置的版本信息。并且在任务配置建立时可以设置版本字段的初始值,例如设置初始值为0。
计算节点在执行到第一密文运算代码中的预设指令时,根据预设指令更新当前任务配置,并对当前任务配置进行版本更新。具体地,可以对当前任务配置中版本字段的当前值加1,得到更新后的当前任务配置的版本字段。例如,当前任务配置中版本字段的当前值为0,更新后的当前任务配置的版本字段的当前值则为1。计算节点将更新后的当前任务配置发送给任务控制节点。
任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件。具体地,如果接收到更新后的当前任务配置中版本字段的当前值大于所述任务控制节点本地存储的当前任务配置中版本字段的当前值,并且接收到参与执行所述第一密文运算代码的所有计算节点发送的更新后的当前任务配置均相同,则确定接收到的更新后的当前任务配置满足更新条件。
例如,任务控制节点接收到更新后的当前任务配置中版本字段的当前值为1,而任务控制节点本地存储的当前任务配置中版本字段的当前值为0,也即,接收到更新后的当前任务配置中版本字段的当前值大于所述任务控制节点本地存储的当前任务配置中版本字段的当前值,说明计算节点对当前任务配置进行了更新。此外,如果接收到参与执行所述第一密文运算代码的所有计算节点发送的更新后的当前任务配置均相同,例如,有四个计算节点参与执行所述第一密文运算代码,并且这四个计算节点向控制节点发送了相同的更新后的当前任务配置,也即这四个计算节点对当前任务配置执行了相同的更新操作,可以确定接收到更新后的当前任务配置无误,则可以认为任务控制节点接收到的更新后的当前任务配置满足更新条件。
在任务控制节点确定接收到的更新后的当前任务配置满足更新条件的情况下,任务控制节点利用所述更新后的当前任务配置对其本地存储的当前任务配置进行更新,以对本地存储的当前任务配置执行同步更新。任务控制节点将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使更新后的当前任务配置生效,所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码。
其中,更新后的当前任务配置相关的任务参与方与更新前的当前任务配置相关的任务参与方的区别在于,如果第一密文运算代码中包含用于增加新输入参数的预设指令,则更新后的当前任务配置相关的任务参与方中相应增加了新输入参数对应的数据节点。如果第一密文运算代码中包含用于增加新输出参数的预设指令,则更新后的当前任务配置相关的任务参与方中可能相应增加了获取新输出参数对应计算结果的结果接收方,或者,还可以在不增加结果接收方的情况下,由初始设置的结果接收方获取新输出参数对应的计算结果。
本发明实施例通过增加预设指令,以及通过当前调试任务中的各任务参与方与任务控制节点之间进行的任务配置更新交互,实现在当前调试任务中动态增加新输入参数和/或新输出参数。本发明实施例不用改变当前调试任务的初始设置,也不用返回步骤A1重新配置输入参数和/或输出参数,可以减少频繁的重复操作,进而可以提高密文运算调试的效率。
进一步地,步骤201中所述任务控制节点接收包含预设指令的第一密文运算代码之前,所述方法还包括:
步骤S11、所述任务控制节点接收原输入参数、原输出参数、以及第二密文运算代码;
步骤S12、所述任务控制节点根据所述原输入参数、原输出参数、以及第二密文运算代码,生成初始任务配置并保存,所述初始任务配置中的版本字段设置为初始值;
步骤S13、将所述初始任务配置下发给所述初始任务配置相关的任务参与方。
其中,第二密文运算代码为当前调试任务首次执行到步骤A2时接收到的密文运算代码。可以理解的是,所述第二密文运算代码中可以包含预设指令,或者,所述第二密文运算代码中可以不包含预设指令。本发明实施例中以第二密文运算代码中不包含预设指令为例,也即,在当前调试任务执行步骤A1时,控制节点接收到来自客户端的输入参数和输出参数,需要说明的是,本发明实施例将接收到的用户初始输入的输入参数和输出参数称为原输入参数和原输出参数,以便和需要增加的新输入参数和新输出参数进行区分。也即,此时控制节点接收到来自客户端的原输入参数和原输出参数。在执行到步骤A2时,任务控制节点接收来自客户端的第二密文运算代码,假设此时接收到的是不包含预设指令的第二密文运算代码。任务控制节点根据步骤A1中接收到的原输入参数、原输出参数、以及步骤A2中接收到的第二密文运算代码,生成初始任务配置并保存。初始任务配置中的版本字段设置为初始值,例如,初始值可以设置为0。
任务控制节点将所述初始任务配置下发给所述初始任务配置相关的任务参与方。初始任务配置相关的任务参与方包括:原输入参数对应的数据节点、参与执行所述第二密文运算代码的计算节点、用于获取原输出参数对应计算结果的结果接收方。
在步骤A2执行完成之后,继续执行后续步骤。假设用户需要增加新输出参数,则在执行到步骤A5之后返回至A2需要输入下一段密文运算代码时,在下一段密文运算代码中增加pp.debug_reveal(var)指令。
一个示例中,第一密文运算代码如下所示:
import privpy as pp
res1 = 0
a1 = pp.sint(10)
res1 = a1 * a1
res2 = a1 + a1
pp.reveal(res1, "res1")
pp.debug_reveal(res2)
其中,a1 = pp.sint(10),表示将明文的数字10转化为密文的数字10并赋值给变量a,该操作在计算节点完成。pp.reveal(res1, "res1")为初始设置的用于获取计算结果的指令, res1为原输出参数,表示需要获取res1对应的计算结果,也即需要获取a1 * a1的计算结果。pp.debug_reveal(res2)为用于增加新输出参数的预设指令。res2为新输出参数,通过该指令,可以在原先获取res1对应计算结果的基础上,增加获取res2对应的计算结果。需要说明的是,在该示例中,并未指定运算数据由数据节点提供。可以理解的是,在实际应用中,可以指定运算数据(如上述示例中密文的数字10)由数据节点提供。
任务控制节点从客户端接收包含预设指令的上述第一密文运算代码,并且根据当前调试任务的原输入参数、原输出参数、以及上述第一密文运算代码生成当前任务配置,并将当前任务配置下发给当前任务配置对应的任务参与方,当前任务配置对应的任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数对应计算结果的结果接收方。
一个示例中,任务控制节点根据当前调试任务的原输入参数、原输出参数、以及上述第一密文运算代码生成的当前任务配置如下所示:
request id:24162737
config version:0
engine 0: [Host]{ip: [127.0.0.1, 127.0.0.1, 127.0.0.1, ], port:[5006, 5106, 5206, ], role: s1, }
engine 1: [Host]{ip: [127.0.0.1, 127.0.0.1, 127.0.0.1, ], port:[5021, 5121, 5221, ], role: s2, }
engine 2: [Host]{ip: [127.0.0.1, 127.0.0.1, 127.0.0.1, ], port:[5015, 5115, 5215, ], role: sa, }
engine 3: [Host]{ip: [127.0.0.1, 127.0.0.1, 127.0.0.1, ], port:[5009, 5109, 5209, ], role: sb, }
id: dsid_f6441264-ae18-4c2c-a020-f614ecab2d85
code:
import privpy as pp
res1 = 0
a1 = pp.sint(10)
res1 = a1 * a1
res2 = a1 + a1
pp.reveal(res1, "res1")
pp.debug_reveal(res2)
[ResultDest]{dest_id:dsid_f6441264-ae18-4c2c-a020-f614ecab2d85,varname:res1,stream:no,},
debug_dest_id:dsid_f6441264-ae18-4c2c-a020-f614ecab2d85
在上述当前任务配置中,request id为当前任务配置对应的密文计算任务的任务标识。config version为当前任务配置的版本字段,用于表示当前任务配置的版本信息。engine 0~ engine 3用于表示参与该密文计算任务的计算节点。[ResultDest]为结果接收方字段,用于指示结果接收方所需获取的计算结果。接收方字段中可以包括如下信息:dest_id、varname、以及stream。其中,dest_id为结果接收方的节点标识。varname为计算结果的变量名。stream:no表示不使用流式数据。
上述结果接收方字段的如下信息[ResultDest]{dest_id:dsid_f6441264-ae18-4c2c-a020-f614ecab2d85, varname:res1,stream:no,},用于指示由节点标识为dsid_f6441264-ae18-4c2c-a020-f614ecab2d85的结果接收方获取变量名为res1的计算结果。
在本发明实施例中,dest_id用于指示使用pp.reveal(var)指令获取计算结果的结果接收方的节点标识,pp.reveal(var)为获取原输出参数对应计算结果的指令。debug_dest_id用于指示使用pp.debug_reveal(var)指令获取计算结果的结果接收方的节点标识,pp.debug_reveal(var)为获取新输出参数对应计算结果的预设指令。例如,在上述当前任务配置中,debug_dest_id:dsid_f6441264-ae18-4c2c-a020-f614ecab2d85,用于指示使用pp.debug_reveal(var)指令获取计算结果的结果接收方的节点标识为dsid_f6441264-ae18-4c2c-a020-f614ecab2d85。
可以看出,上述当前任务配置中声明了需要获取变量名为res1的计算结果,且该计算结果由节点标识为dsid_f6441264-ae18-4c2c-a020-f614ecab2d85的结果接收方获取。
任务控制节点将当前任务配置下发给各任务参与方。数据节点接收到当前任务配置后,将其持有的、当前任务配置中输入参数指定的运算数据,发送至任务配置中指定的计算节点。计算节点接收到当前任务配置后,基于接收到的数据节点发送的运算数据,执行当前任务配置中的第一密文运算代码。
计算节点执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点。
例如,计算节点在执行第一密文运算代码的过程中,当执行到pp.debug_reveal(res2)这行代码时,识别出该指令为用于在当前调试任务中增加新输出参数的预设指令,则根据该预设指令更新当前任务配置,如在当前任务配置中增加新输出参数对应的字段信息等,并对所述当前任务配置进行版本更新,如对当前任务配置中版本字段的当前值加1,以及将更新后的当前任务配置发送给任务控制节点。
一个示例中,计算节点根据上述预设指令pp.debug_reveal(res2)更新上述当前任务配置,并对上述当前任务配置进行版本更新,得到的更新后的任务配置如下所示:
request id:24162737,
config version:1
engine 0: [Host]{ip: [127.0.0.1, 127.0.0.1, 127.0.0.1, ], port:[5006, 5106, 5206, ], role: s1, }
engine 1: [Host]{ip: [127.0.0.1, 127.0.0.1, 127.0.0.1, ], port:[5021, 5121, 5221, ], role: s2, }
engine 2: [Host]{ip: [127.0.0.1, 127.0.0.1, 127.0.0.1, ], port:[5015, 5115, 5215, ], role: sa, }
engine 3: [Host]{ip: [127.0.0.1, 127.0.0.1, 127.0.0.1, ], port:[5009, 5109, 5209, ], role: sb, }
id: dsid_f6441264-ae18-4c2c-a020-f614ecab2d85
code:
import privpy as pp
res1 = 0
a1 = pp.sint(10)
res1 = a1 * a1
res2 = a1 + a1
pp.reveal(res1, "res1")
pp.debug_reveal(res2, "res2")
[ResultDest]{dest_id:dsid_f6441264-ae18-4c2c-a020-f614ecab2d85,varname:res1, stream:no, } ,
[ResultDest]{dest_id:dsid_f6441264-ae18-4c2c-a020-f614ecab2d85,varname: res2, stream:no, } ,
debug_dest_id:dsid_f6441264-ae18-4c2c-a020-f614ecab2d85
在上述更新后的当前任务配置中,版本字段的当前值为1,并且增加了新输出参数对应的字段信息如下:[ResultDest]{dest_id:dsid_f6441264-ae18-4c2c-a020-f614ecab2d85, varname: res2, stream:no, }。上述增加的新输出参数对应的字段信息表示由节点标识为dsid_f6441264-ae18-4c2c-a020-f614ecab2d85的结果接收方获取变量名为res2的计算结果。
可以看出,上述更新后的当前任务配置中声明了需要获取变量名为res1和变量名为res2的计算结果,且这两个计算结果由节点标识为dsid_f6441264-ae18-4c2c-a020-f614ecab2d85的结果接收方获取。
在上述示例中,预设指令pp.debug_reveal(res2, "res2")中声明了需要获取的计算结果的变量名为res2。进一步地,预设指令pp.debug_reveal(var)还可以采用匿名方式,也即不指定需要获取的计算结果的变量名。例如,上述预设指令可以写为pp.debug_reveal(res2)。计算节点在执行到该预设指令时,可以自动为需要获取的计算结果命名。一个示例中,在预设指令pp.debug_reveal(var)中采用匿名方式的情况下,计算节点自动为需要获取的计算结果声明变量名为_DEBUG_RESULT_KEY_0,则增加的新输出参数对应的字段信息可以如下:[ResultDest]{dest_id:dsid_f6441264-ae18-4c2c-a020-f614ecab2d85, varname:_DEBUG_RESULT_KEY_0, stream:no, }。可以看出,更新后的任务配置中新输出参数对应的字段信息中新增了变量名为_DEBUG_RESULT_KEY_0的计算结果。
任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新任务控制节点本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码。
在增加新输出参数的情况下,结果接收方的处理会受到影响。在增加新输入参数的情况下,新增的数据节点的处理会受到影响。下面对增加新输出参数和增加新输入参数的情况分别进行说明。
在本发明的一种可选实施例中,所述预设指令用于在当前调试任务中增加新输出参数,步骤203中所述根据所述预设指令更新所述当前任务配置,包括:在所述当前任务配置中的结果接收方字段中增加所述新输出参数对应字段;
步骤204中所述将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码,包括:
步骤S21、所述任务控制节点将所述更新后的当前任务配置下发给所述计算节点、所述原输入参数对应的数据节点、以及所述结果接收方;
步骤S22、所述原输入参数对应的数据节点根据所述更新后的当前任务配置,向所述计算节点发送其持有的运算数据;
步骤S23、所述计算节点根据所述更新后的当前任务配置,基于接收到的运算数据执行所述第一密文运算代码;
步骤S24、所述结果接收方根据所述更新后的当前任务配置,从计算节点获取所述原输出参数对应的计算结果,并且从计算节点获取所述新输出参数对应的计算结果。
计算节点在执行当前任务配置中的第一密文运算代码的过程中,如果执行到第一密文运算代码中包含的用于增加新输出参数的预设指令,则计算节点根据该预设指令更新当前任务配置,具体地,计算节点在当前任务配置中的结果接收方字段中增加新输出参数对应字段。如将新增的debug_reveal的计算结果变量添加到结果接收方字段ResultDest中,并且对所述当前任务配置中版本字段的当前值加1。
计算节点将更新后的当前任务配置发送给任务控制节点,任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,任务控制节点将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方。其中,更新后的当前任务配置相关的任务参与方包括:计算节点、原输入参数对应的数据节点、以及结果接收方。可以理解的是,结果接收方用于获取原输出参数对应的计算结果和新输出参数对应的计算结果。
原输入参数对应的数据节点在接收到控制节点下发的更新后的当前任务配置之后,根据所述更新后的当前任务配置,向所述计算节点发送其持有的运算数据。计算节点在接收到控制节点下发的更新后的当前任务配置之后,根据所述更新后的当前任务配置,基于接收到的运算数据执行所述更新后的当前任务配置中的第一密文运算代码。结果接收方在接收到控制节点下发的更新后的当前任务配置之后,根据所述更新后的当前任务配置,从所述更新后的当前任务配置中指定的计算节点获取所述原输出参数对应的计算结果,并且从所述更新后的当前任务配置中指定的计算节点获取所述新输出参数对应的计算结果。可以理解的是,原输出参数对应的计算结果和新输出参数对应的计算结果可能由相同或不同的计算节点输出。
在本发明的一种可选实施例中,步骤S24所述从计算节点获取所述新输出参数对应的计算结果,包括:
步骤S241、所述结果接收方在每次接收到更新后的当前任务配置后,判断更新后的当前任务配置中是否存在未获取计算结果的新输出参数;
步骤S242、若判定更新后的当前任务配置中存在未获取计算结果的新输出参数,则所述结果接收方根据所述新输出参数对应字段,从指定的计算节点获取所述新输出参数对应的计算结果。
在本发明实施例中,新输出参数对应的计算结果可以由预设标识的结果接收方获取,例如,所述预设标识为debug_dest_id,也即新输出参数对应的计算结果由节点标识为debug_dest_id的结果接收方获取。节点标识为debug_dest_id的结果接收方可以与原输出参数对应的计算结果的结果接收方为相同的数据节点或不同的数据节点。本发明实施例中以相同的数据节点为例。
预设标识的结果接收方在当前调试任务中,可能会多次接收到更新后的当前任务配置,在每次接收到更新后的当前任务配置后,判断更新后的当前任务配置中是否存在未获取计算结果的新输出参数。若判定更新后的当前任务配置中存在未获取计算结果的新输出参数,说明有新增的计算结果需要获取,则该结果接收方根据所述新输出参数对应字段,从指定的计算节点获取所述新输出参数对应的计算结果,直到当前调试任务结束。
可选地,所述判断更新后的当前任务配置中是否存在未获取计算结果的新输出参数,包括:所述结果接收方保存已获取计算结果的输出参数列表,在每次接收到更新后的当前任务配置后,在保存的参数列表中遍历查询是否存在所述更新后的当前任务配置中的新输出参数,若不存在,则确定更新后的当前任务配置中存在未获取计算结果的新输出参数。
需要说明的是,在当前任务配置中的第一密文运算代码执行完成之后,任务控制节点接收下一段密文运算代码,并且根据下一段密文运算代码所生成的任务配置则称为当前任务配置。
在本发明的一种可选实施例中,所述预设指令用于在当前调试任务中增加新输入参数,步骤203中所述根据所述预设指令更新所述当前任务配置,包括:在所述当前任务配置中的数据源字段中增加所述新输入参数对应字段;
步骤204中所述将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码,包括:
步骤S31、所述任务控制节点将所述更新后的当前任务配置下发给所述计算节点、所述原输入参数对应的数据节点、所述新输入参数对应的数据节点、以及所述结果接收方;
步骤S32、所述原输入参数对应的数据节点和所述新输入参数对应的数据节点,分别根据所述更新后的当前任务配置,向所述计算节点发送各自持有的运算数据;
步骤S33、所述计算节点根据所述更新后的当前任务配置,基于接收到的运算数据执行所述第一密文运算代码;
步骤S34、所述结果接收方根据所述更新后的当前任务配置,从计算节点获取所述原输出参数对应的计算结果。
计算节点在执行第一密文运算代码的过程中,如果执行到第一密文运算代码中包含的用于增加新输入参数的预设指令,则计算节点根据该预设指令更新当前任务配置,具体地,计算节点在当前任务配置中的数据源字段中增加所述新输入参数对应字段,并且对所述当前任务配置中版本字段的当前值加1。
一个示例中,第一密文运算代码中可以包含如下用于增加新输入参数的预设指令:a1 = pp.ss (“cipher://commontest2-c1/goladA_100_sample/gold”)。在该预设指令中,“cipher://commontest2-c1/goladA_100_sample/gold”用于指示新输入参数对应数据节点的地址信息。
计算节点在执行第一密文运算代码的过程中,在执行到该预设指令时,识别出该指令为用于增加新输入参数的预设指令,则根据该预设指令更新当前任务配置,在当前任务配置中的数据源字段中增加新输入参数对应字段。
例如,增加新输入参数对应字段的数据源字段如下:
[DataSource]{source_id:commontest2-c1, dataname:cipher://commontest2-c1/goladA_100_sample/gold, key:, varname:cipher://commontest2-c1/goladA_100_sample/gold, stream:no, } 。
其中,[DataSource]为数据源字段,在该数据源字段中增加了新输入参数对应数据节点的节点标识source_id,以及新输入参数对应数据节点的地址信息cipher://commontest2-c1/goladA_100_sample/gold。
计算节点将更新后的当前任务配置发送给任务控制节点,任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,任务控制节点将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方。其中,更新后的当前任务配置相关的任务参与方包括:计算节点、原输入参数对应的数据节点、新输入参数对应的数据节点、以及结果接收方。也即,更新后的当前任务配置相关的任务参与方中增加了新输入参数对应的数据节点。
原输入参数对应的数据节点和新输入参数对应的数据节点,分别根据所述更新后的当前任务配置,向所述更新后的当前任务配置指定的计算节点发送各自持有的运算数据。例如在上述示例中,新输入参数对应的数据节点为节点标识为commontest2-c1的数据节点。计算节点根据所述更新后的当前任务配置,基于接收到的运算数据执行所述更新后的当前任务配置中的第一密文运算代码。结果接收方根据所述更新后的当前任务配置,从所述更新后的当前任务配置中指定的计算节点获取所述原输出参数对应的计算结果。
需要说明的是,在具体实施中,第一密文运算代码中还可以同时包含用于增加新输入参数的预设指令pp.ss(source)和用于增加新输出参数的预设指令pp.debug_reveal(var)。同时包含两种预设指令的执行过程可以根据分别包含一种预设指令的过程结合得到,此处不再进行赘述。
在本发明的一种可选实施例中,所述方法还可以包括:
步骤S41、所述任务控制节点接收用户侧客户端发送的任务结束指令;
步骤S42、响应所述任务结束指令,结束所述当前调试任务,并且向所述客户端发送任务完成状态,以使所述客户端在接收到所述任务完成状态之后,从所述结果接收方获取输出参数对应的计算结果。
在实际应用中,由于密文运算调试的方式可以采用分步执行的方式,计算节点自身无法判断何时结束密文计算任务,因此需要通过用户输入的任务结束指令来显式的结束调试任务。
任务控制节点可以接收用户侧的客户端发送的任务结束指令,并且响应所述任务结束指令,结束所述当前调试任务。具体地,任务控制节点接收到客户端发送的任务结束指令之后,向参与执行所述第一密文运算代码的各计算节点发送结束密文计算任务的指令,以使各计算节点结束执行当前的密文计算任务,从而结束当前调试任务。任务控制节点在接收到各计算节点返回的任务结束的状态信息之后,向所述客户端发送任务完成状态,以使所述客户端在接收到所述任务完成状态之后,从所述结果接收方获取输出参数对应的计算结果,进而可以将获取的输出参数对应的计算结果进行展示。可以理解,客户端从结果接收方获取的输出参数对应的计算结果,可能包括原输出参数对应的计算结果以及新输出参数对应的计算结果。
综上,本发明实施例通过增加预设指令,以及通过当前调试任务中的各任务参与方与任务控制节点之间进行的任务配置更新交互,实现在不改变当前密文运算调试任务的初始设置的前提下,在当前调试任务中动态增加新输入参数和/或新输出参数。本发明实施例不用改变当前调试任务的初始设置,也不用返回重新配置输入参数和/或输出参数,可以减少频繁的重复操作,进而可以提高密文运算调试的效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明的一种密文运算系统实施例的结构框图,所述系统包括:任务控制节点301、计算节点302、数据节点303、以及结果接收方304,其中,
所述任务控制节点,用于接收包含预设指令的第一密文运算代码,所述预设指令用于在当前调试任务中增加新输入参数和/或增加新输出参数;
所述任务控制节点,还用于根据所述当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方,所述任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数的结果接收方;
所述计算节点,用于在执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点;
所述任务控制节点,还用于判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码。
可选地,所述任务控制节点,还用于接收原输入参数、原输出参数、以及第二密文运算代码;
所述任务控制节点,还用于根据所述原输入参数、原输出参数、以及第二密文运算代码,生成初始任务配置并保存,所述初始任务配置中的版本字段设置为初始值;
所述任务控制节点,还用于将所述初始任务配置下发给所述初始任务配置相关的任务参与方。
可选地,所述计算节点,还用于对所述当前任务配置中版本字段的当前值加1,得到更新后的当前任务配置的版本字段;
所述任务控制节点,还用于若所述更新后的当前任务配置中版本字段的当前值大于所述任务控制节点本地存储的当前任务配置中版本字段的当前值,并且接收到参与执行所述第一密文运算代码的所有计算节点发送的更新后的当前任务配置均相同,则确定接收到的更新后的当前任务配置满足更新条件。
可选地,所述预设指令用于在当前调试任务中增加新输入参数,所述计算节点,还用于在所述当前任务配置中的数据源字段中增加所述新输入参数对应字段;
所述任务控制节点,还用于将所述更新后的当前任务配置下发给所述计算节点、所述原输入参数对应的数据节点、所述新输入参数对应的数据节点、以及所述结果接收方;
所述原输入参数对应的数据节点和所述新输入参数对应的数据节点,分别用于根据所述更新后的当前任务配置,向所述计算节点发送各自持有的运算数据;
所述计算节点,还用于根据所述更新后的当前任务配置,基于接收到的运算数据执行所述第一密文运算代码;
所述结果接收方,用于根据所述更新后的当前任务配置,从计算节点获取所述原输出参数对应的计算结果。
可选地,所述预设指令用于在当前调试任务中增加新输出参数,所述计算节点,还用于在所述当前任务配置中的结果接收方字段中增加所述新输出参数对应字段;
所述任务控制节点,还用于将所述更新后的当前任务配置下发给所述计算节点、所述原输入参数对应的数据节点、以及所述结果接收方;
所述原输入参数对应的数据节点,用于根据所述更新后的当前任务配置,向所述计算节点发送其持有的运算数据;
所述计算节点,还用于根据所述更新后的当前任务配置,基于接收到的运算数据执行所述第一密文运算代码;
所述结果接收方,用于根据所述更新后的当前任务配置,从计算节点获取所述原输出参数对应的计算结果,并且从计算节点获取所述新输出参数对应的计算结果。
可选地,所述结果接收方,还用于在每次接收到更新后的当前任务配置后,判断更新后的当前任务配置中是否存在未获取计算结果的新输出参数;若判定更新后的当前任务配置中存在未获取计算结果的新输出参数,则所述结果接收方根据所述新输出参数对应字段,从指定的计算节点获取所述新输出参数对应的计算结果。
可选地,所述任务控制节点,还用于接收用户侧客户端发送的任务结束指令;
所述任务控制节点,还用于响应所述任务结束指令,结束所述当前调试任务,并且向所述客户端发送任务完成状态,以使所述客户端在接收到所述任务完成状态之后,从所述结果接收方获取输出参数对应的计算结果。
本发明实施例提供的密文运算系统在进行密文运算调试的过程中,通过增加预设指令,以及通过当前调试任务中的各任务参与方与任务控制节点之间进行的任务配置更新交互,实现在不改变当前密文运算调试任务的初始设置的前提下,在当前调试任务中动态增加新输入参数和/或新输出参数。本发明实施例不用改变当前调试任务的初始设置,也不用返回重新配置输入参数和/或输出参数,可以减少频繁的重复操作,进而可以提高密文运算调试的效率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于密文运算调试的装置,所述装置应用于密文运算系统,所述密文运算系统包括:任务控制节点、计算节点、数据节点、以及结果接收方,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:任务控制节点接收包含预设指令的第一密文运算代码,所述预设指令用于在当前调试任务中增加新输入参数和/或增加新输出参数;任务控制节点根据所述当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方,所述任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数的结果接收方;计算节点执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点;任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码。
图4是根据一示例性实施例示出的一种用于密文运算调试的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/ O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/ O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图5是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的密文运算调试方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种密文运算调试方法,所述方法应用于密文运算系统,所述密文运算系统包括:任务控制节点、计算节点、数据节点、以及结果接收方,所述方法包括:任务控制节点接收包含预设指令的第一密文运算代码,所述预设指令用于在当前调试任务中增加新输入参数和/或增加新输出参数;任务控制节点根据所述当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方,所述任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数的结果接收方;计算节点执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点;任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种密文运算调试方法、一种密文运算系统和一种用于密文运算调试的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (22)
1.一种密文运算调试方法,其特征在于,所述方法应用于密文运算系统,所述密文运算系统包括:任务控制节点、计算节点、数据节点、以及结果接收方,所述方法包括:
任务控制节点接收包含预设指令的第一密文运算代码,所述预设指令用于在当前调试任务中增加新输入参数和/或增加新输出参数;
任务控制节点根据所述当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方,所述任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数的结果接收方;
计算节点执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点;
任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码;其中,所述更新条件包括:任务控制节点接收到更新后的当前任务配置中版本字段的当前值大于所述任务控制节点本地存储的当前任务配置中版本字段的当前值,并且接收到参与执行所述第一密文运算代码的所有计算节点发送的更新后的当前任务配置均相同。
2.根据权利要求1所述的方法,其特征在于,所述任务控制节点接收包含预设指令的第一密文运算代码之前,所述方法还包括:
所述任务控制节点接收原输入参数、原输出参数、以及第二密文运算代码;
所述任务控制节点根据所述原输入参数、原输出参数、以及第二密文运算代码,生成初始任务配置并保存,所述初始任务配置中的版本字段设置为初始值;
将所述初始任务配置下发给所述初始任务配置相关的任务参与方。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述当前任务配置进行版本更新,包括:
对所述当前任务配置中版本字段的当前值加1,得到更新后的当前任务配置的版本字段。
4.根据权利要求1所述的方法,其特征在于,所述预设指令用于在当前调试任务中增加新输入参数,所述根据所述预设指令更新所述当前任务配置,包括:
在所述当前任务配置中的数据源字段中增加所述新输入参数对应字段;
所述将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码,包括:
所述任务控制节点将所述更新后的当前任务配置下发给所述计算节点、所述原输入参数对应的数据节点、所述新输入参数对应的数据节点、以及所述结果接收方;
所述原输入参数对应的数据节点和所述新输入参数对应的数据节点,分别根据所述更新后的当前任务配置,向所述计算节点发送各自持有的运算数据;
所述计算节点根据所述更新后的当前任务配置,基于接收到的运算数据执行所述第一密文运算代码;
所述结果接收方根据所述更新后的当前任务配置,从计算节点获取所述原输出参数对应的计算结果。
5.根据权利要求1所述的方法,其特征在于,所述预设指令用于在当前调试任务中增加新输出参数,所述根据所述预设指令更新所述当前任务配置,包括:
在所述当前任务配置中的结果接收方字段中增加所述新输出参数对应字段;
所述将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码,包括:
所述任务控制节点将所述更新后的当前任务配置下发给所述计算节点、所述原输入参数对应的数据节点、以及所述结果接收方;
所述原输入参数对应的数据节点根据所述更新后的当前任务配置,向所述计算节点发送其持有的运算数据;
所述计算节点根据所述更新后的当前任务配置,基于接收到的运算数据执行所述第一密文运算代码;
所述结果接收方根据所述更新后的当前任务配置,从计算节点获取所述原输出参数对应的计算结果,并且从计算节点获取所述新输出参数对应的计算结果。
6.根据权利要求5所述的方法,其特征在于,所述从计算节点获取所述新输出参数对应的计算结果,包括:
所述结果接收方在每次接收到更新后的当前任务配置后,判断更新后的当前任务配置中是否存在未获取计算结果的新输出参数;
若判定更新后的当前任务配置中存在未获取计算结果的新输出参数,则所述结果接收方根据所述新输出参数对应字段,从指定的计算节点获取所述新输出参数对应的计算结果。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述任务控制节点接收用户侧客户端发送的任务结束指令;
响应所述任务结束指令,结束所述当前调试任务,并且向所述客户端发送任务完成状态,以使所述客户端在接收到所述任务完成状态之后,从所述结果接收方获取输出参数对应的计算结果。
8.一种密文运算系统,其特征在于,所述系统包括:任务控制节点、计算节点、数据节点、以及结果接收方,其中,
所述任务控制节点,用于接收包含预设指令的第一密文运算代码,所述预设指令用于在当前调试任务中增加新输入参数和/或增加新输出参数;
所述任务控制节点,还用于根据所述当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方,所述任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数的结果接收方;
所述计算节点,用于在执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点;
所述任务控制节点,还用于判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码;其中,所述更新条件包括:任务控制节点接收到更新后的当前任务配置中版本字段的当前值大于所述任务控制节点本地存储的当前任务配置中版本字段的当前值,并且接收到参与执行所述第一密文运算代码的所有计算节点发送的更新后的当前任务配置均相同。
9.根据权利要求8所述的系统,其特征在于,所述任务控制节点,还用于接收原输入参数、原输出参数、以及第二密文运算代码;
所述任务控制节点,还用于根据所述原输入参数、原输出参数、以及第二密文运算代码,生成初始任务配置并保存,所述初始任务配置中的版本字段设置为初始值;
所述任务控制节点,还用于将所述初始任务配置下发给所述初始任务配置相关的任务参与方。
10.根据权利要求8或9所述的系统,其特征在于,所述计算节点,还用于对所述当前任务配置中版本字段的当前值加1,得到更新后的当前任务配置的版本字段。
11.根据权利要求8所述的系统,其特征在于,所述预设指令用于在当前调试任务中增加新输入参数,所述计算节点,还用于在所述当前任务配置中的数据源字段中增加所述新输入参数对应字段;
所述任务控制节点,还用于将所述更新后的当前任务配置下发给所述计算节点、所述原输入参数对应的数据节点、所述新输入参数对应的数据节点、以及所述结果接收方;
所述原输入参数对应的数据节点和所述新输入参数对应的数据节点,分别用于根据所述更新后的当前任务配置,向所述计算节点发送各自持有的运算数据;
所述计算节点,还用于根据所述更新后的当前任务配置,基于接收到的运算数据执行所述第一密文运算代码;
所述结果接收方,用于根据所述更新后的当前任务配置,从计算节点获取所述原输出参数对应的计算结果。
12.根据权利要求8所述的系统,其特征在于,所述预设指令用于在当前调试任务中增加新输出参数,所述计算节点,还用于在所述当前任务配置中的结果接收方字段中增加所述新输出参数对应字段;
所述任务控制节点,还用于将所述更新后的当前任务配置下发给所述计算节点、所述原输入参数对应的数据节点、以及所述结果接收方;
所述原输入参数对应的数据节点,用于根据所述更新后的当前任务配置,向所述计算节点发送其持有的运算数据;
所述计算节点,还用于根据所述更新后的当前任务配置,基于接收到的运算数据执行所述第一密文运算代码;
所述结果接收方,用于根据所述更新后的当前任务配置,从计算节点获取所述原输出参数对应的计算结果,并且从计算节点获取所述新输出参数对应的计算结果。
13.根据权利要求12所述的系统,其特征在于,所述结果接收方,还用于在每次接收到更新后的当前任务配置后,判断更新后的当前任务配置中是否存在未获取计算结果的新输出参数;若判定更新后的当前任务配置中存在未获取计算结果的新输出参数,则所述结果接收方根据所述新输出参数对应字段,从指定的计算节点获取所述新输出参数对应的计算结果。
14.根据权利要求8所述的系统,其特征在于,所述任务控制节点,还用于接收用户侧客户端发送的任务结束指令;
所述任务控制节点,还用于响应所述任务结束指令,结束所述当前调试任务,并且向所述客户端发送任务完成状态,以使所述客户端在接收到所述任务完成状态之后,从所述结果接收方获取输出参数对应的计算结果。
15.一种用于密文运算调试的装置,其特征在于,所述装置应用于密文运算系统,所述密文运算系统包括:任务控制节点、计算节点、数据节点、以及结果接收方,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
任务控制节点接收包含预设指令的第一密文运算代码,所述预设指令用于在当前调试任务中增加新输入参数和/或增加新输出参数;
任务控制节点根据所述当前调试任务的原输入参数、原输出参数、以及所述第一密文运算代码生成当前任务配置,并下发给任务参与方,所述任务参与方包括参与执行所述第一密文运算代码的计算节点、用于提供运算数据的数据节点、以及用于获取原输出参数的结果接收方;
计算节点执行到所述第一密文运算代码中的预设指令时,根据所述预设指令更新所述当前任务配置,并对所述当前任务配置进行版本更新,以及将更新后的当前任务配置发送给任务控制节点;
任务控制节点判断接收到的更新后的当前任务配置是否满足更新条件,若满足,则更新本地的当前任务配置,并将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码;其中,所述更新条件包括:任务控制节点接收到更新后的当前任务配置中版本字段的当前值大于所述任务控制节点本地存储的当前任务配置中版本字段的当前值,并且接收到参与执行所述第一密文运算代码的所有计算节点发送的更新后的当前任务配置均相同。
16.根据权利要求15所述的装置,其特征在于,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
所述任务控制节点接收原输入参数、原输出参数、以及第二密文运算代码;
所述任务控制节点根据所述原输入参数、原输出参数、以及第二密文运算代码,生成初始任务配置并保存,所述初始任务配置中的版本字段设置为初始值;
将所述初始任务配置下发给所述初始任务配置相关的任务参与方。
17.根据权利要求15或16所述的装置,其特征在于,所述对所述当前任务配置进行版本更新,包括:
对所述当前任务配置中版本字段的当前值加1,得到更新后的当前任务配置的版本字段。
18.根据权利要求15所述的装置,其特征在于,所述预设指令用于在当前调试任务中增加新输入参数,所述根据所述预设指令更新所述当前任务配置,包括:
在所述当前任务配置中的数据源字段中增加所述新输入参数对应字段;
所述将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码,包括:
所述任务控制节点将所述更新后的当前任务配置下发给所述计算节点、所述原输入参数对应的数据节点、所述新输入参数对应的数据节点、以及所述结果接收方;
所述原输入参数对应的数据节点和所述新输入参数对应的数据节点,分别根据所述更新后的当前任务配置,向所述计算节点发送各自持有的运算数据;
所述计算节点根据所述更新后的当前任务配置,基于接收到的运算数据执行所述第一密文运算代码;
所述结果接收方根据所述更新后的当前任务配置,从计算节点获取所述原输出参数对应的计算结果。
19.根据权利要求15所述的装置,其特征在于,所述预设指令用于在当前调试任务中增加新输出参数,所述根据所述预设指令更新所述当前任务配置,包括:
在所述当前任务配置中的结果接收方字段中增加所述新输出参数对应字段;
所述将更新后的当前任务配置下发给所述更新后的当前任务配置相关的任务参与方,以使所述相关的任务参与方根据更新后的当前任务配置执行所述第一密文运算代码,包括:
所述任务控制节点将所述更新后的当前任务配置下发给所述计算节点、所述原输入参数对应的数据节点、以及所述结果接收方;
所述原输入参数对应的数据节点根据所述更新后的当前任务配置,向所述计算节点发送其持有的运算数据;
所述计算节点根据所述更新后的当前任务配置,基于接收到的运算数据执行所述第一密文运算代码;
所述结果接收方根据所述更新后的当前任务配置,从计算节点获取所述原输出参数对应的计算结果,并且从计算节点获取所述新输出参数对应的计算结果。
20.根据权利要求19所述的装置,其特征在于,所述从计算节点获取所述新输出参数对应的计算结果,包括:
所述结果接收方在每次接收到更新后的当前任务配置后,判断更新后的当前任务配置中是否存在未获取计算结果的新输出参数;
若判定更新后的当前任务配置中存在未获取计算结果的新输出参数,则所述结果接收方根据所述新输出参数对应字段,从指定的计算节点获取所述新输出参数对应的计算结果。
21.根据权利要求15所述的装置,其特征在于,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
所述任务控制节点接收用户侧客户端发送的任务结束指令;
响应所述任务结束指令,结束所述当前调试任务,并且向所述客户端发送任务完成状态,以使所述客户端在接收到所述任务完成状态之后,从所述结果接收方获取输出参数对应的计算结果。
22.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至7任一所述的密文运算调试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011300487.7A CN112131135B (zh) | 2020-11-19 | 2020-11-19 | 一种密文运算调试方法、系统和用于密文运算调试的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011300487.7A CN112131135B (zh) | 2020-11-19 | 2020-11-19 | 一种密文运算调试方法、系统和用于密文运算调试的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112131135A CN112131135A (zh) | 2020-12-25 |
CN112131135B true CN112131135B (zh) | 2021-03-05 |
Family
ID=73852195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011300487.7A Active CN112131135B (zh) | 2020-11-19 | 2020-11-19 | 一种密文运算调试方法、系统和用于密文运算调试的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131135B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667674B (zh) * | 2021-03-12 | 2021-06-18 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN113032283B (zh) * | 2021-05-20 | 2021-08-13 | 华控清交信息科技(北京)有限公司 | 一种密文运算调试方法、计算引擎和密文运算系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598847A (zh) * | 2016-11-30 | 2017-04-26 | 惠州华阳通用电子有限公司 | 一种软件脱机动态调试方法及装置 |
CN107832223A (zh) * | 2017-11-18 | 2018-03-23 | 上海华虹集成电路有限责任公司 | 一种用于调试应用程序的有效方法 |
CN111045797A (zh) * | 2019-10-31 | 2020-04-21 | 华控清交信息科技(北京)有限公司 | 任务调度执行方法、相关装置和介质 |
CN111045919A (zh) * | 2019-07-12 | 2020-04-21 | 华控清交信息科技(北京)有限公司 | 调试程序的方法、装置、后台服务器、存储介质及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9274931B2 (en) * | 2013-05-06 | 2016-03-01 | International Business Machines Corporation | Inserting implicit sequence points into computer program code to support debug operations |
US9946630B2 (en) * | 2016-06-17 | 2018-04-17 | International Business Machines Corporation | Efficiently debugging software code |
CN109542773A (zh) * | 2018-11-02 | 2019-03-29 | 五八同城信息技术有限公司 | 编译器插件调试方法、装置、计算机设备及可读存储介质 |
CN111522330A (zh) * | 2020-05-13 | 2020-08-11 | 航天科工防御技术研究试验中心 | 一种fpga器件测试方法、系统及电子设备 |
-
2020
- 2020-11-19 CN CN202011300487.7A patent/CN112131135B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598847A (zh) * | 2016-11-30 | 2017-04-26 | 惠州华阳通用电子有限公司 | 一种软件脱机动态调试方法及装置 |
CN107832223A (zh) * | 2017-11-18 | 2018-03-23 | 上海华虹集成电路有限责任公司 | 一种用于调试应用程序的有效方法 |
CN111045919A (zh) * | 2019-07-12 | 2020-04-21 | 华控清交信息科技(北京)有限公司 | 调试程序的方法、装置、后台服务器、存储介质及系统 |
CN111045797A (zh) * | 2019-10-31 | 2020-04-21 | 华控清交信息科技(北京)有限公司 | 任务调度执行方法、相关装置和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112131135A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112187862B (zh) | 一种任务处理方法、装置和用于任务处理的装置 | |
CN112131135B (zh) | 一种密文运算调试方法、系统和用于密文运算调试的装置 | |
CN113014625B (zh) | 一种任务处理方法、装置和用于任务处理的装置 | |
WO2021102691A1 (zh) | 资源订阅方法、装置、计算机设备和存储介质 | |
CN113420338A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113326013A (zh) | 信息交互方法、装置和电子设备 | |
CN113254956A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
WO2023024435A1 (zh) | 设备注册方法及装置、电子设备、存储介质和计算机程序产品 | |
CN112184218A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114721710A (zh) | 版本控制方法、装置及存储介质 | |
CN105187154B (zh) | 响应包接收延时的方法及装置 | |
CN112364390A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN109586951B (zh) | 实施故障转移的方法、装置、电子设备及可读存储介质 | |
CN106850556A (zh) | 服务访问方法、装置及设备 | |
CN110489244A (zh) | 信息处理方法、系统、装置和计算机可读存储介质 | |
CN112929271B (zh) | 一种路由配置方法、装置和用于配置路由的装置 | |
CN112866222B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN109491655A (zh) | 一种输入事件处理方法及装置 | |
CN111857804A (zh) | 离线任务的处理方法、装置、电子设备及存储介质 | |
CN109948012B (zh) | 序列号的生成方法、装置及存储介质 | |
CN111818293A (zh) | 通信方法、装置和电子设备 | |
CN116233135B (zh) | 一种数据传输方法、系统、装置和可读存储介质 | |
CN113517977B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN110287723B (zh) | 资源信息确定方法、装置、电子设备及存储介质 | |
CN110995767B (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 |