一种数据监管方法、系统、装置和可读存储介质转让专利

申请号 : CN202211468174.1

文献号 : CN115544550B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王昕祎苏乐

申请人 : 华控清交信息科技(北京)有限公司

摘要 :

本发明实施例提供了一种数据监管方法、系统、装置和可读存储介质。该方法包括:接收多方安全计算任务,多方安全计算任务包括至少一个隐私计算函数,多方安全计算任务的配置信息中包括预置的监管规则;执行多方安全计算任务,在执行到当前的隐私计算函数时,在配置信息中查询当前的隐私计算函数是否为被监管函数;若当前的隐私计算函数是被监管函数,则编译并执行当前的隐私计算函数对应的监管函数,得到执行结果;若执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,则终止执行所述多方安全计算任务。本发明实施例可以在基于多方安全计算系统进行多方数据的联合计算过程中,在密文状态下进行数据监控,可以保护数据的隐私安全。

权利要求 :

1.一种数据监管方法,其特征在于,应用于多方安全计算系统中的隐私计算节点,所述方法包括:接收多方安全计算任务,所述多方安全计算任务包括至少一个隐私计算函数,所述多方安全计算任务的配置信息中包括预置的监管规则;所述监管规则用于定义监管函数以及指定所述隐私计算函数中的被监管函数;所述监管函数用于在密文状态下判断所述被监管函数中目标变量对应的数据是否满足预设条件;

执行所述多方安全计算任务,在执行到当前的隐私计算函数时,在所述配置信息中查询所述当前的隐私计算函数是否为被监管函数;

若所述当前的隐私计算函数是被监管函数,则编译并执行所述当前的隐私计算函数对应的监管函数,得到执行结果;

若所述执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,则终止执行所述多方安全计算任务。

2.根据权利要求1所述的方法,其特征在于,所述预置的监管规则的个数大于或等于1;

监管规则与监管函数以及被监管函数具有一一对应的关系;每个监管规则包括被监管函数的名称、目标变量的名称、以及监管函数的定义。

3.根据权利要求1所述的方法,其特征在于,所述目标变量对应的数据包括所述多方安全计算任务的中间计算结果、所述多方安全计算任务的最终计算结果、以及所述多方安全计算任务的任意数据方的输入数据中的任意一种。

4.根据权利要求1所述的方法,其特征在于,所述隐私计算函数和所述监管函数中的隐私计算基于预置的算子接口实现,所述算子接口通过预置上层代码调用,所述算子接口通过调用底层密文计算函数实现隐私计算。

5.根据权利要求1所述的方法,其特征在于,所述预设条件包括:所述被监管函数中目标变量对应的数据的值小于预设阈值;所述监管函数用于在密文状态下执行所述目标变量小于所述预设阈值的比较操作,并返回比较操作的结果。

6.根据权利要求1所述的方法,其特征在于,所述目标变量对应的数据包括指定的两个以上数据方的数据集;所述预设条件包括:所述两个以上数据方的数据集的交集个数等于

0;所述监管函数用于在密文状态下对所述两个以上数据方的数据集进行隐私求交,并返回交集个数与0的比较结果。

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

若所述执行结果标识所述被监管函数中目标变量对应的数据满足预设条件,则继续执行所述多方安全计算任务。

8.一种多方安全计算系统,其特征在于,所述多方安全计算系统包括至少一个隐私计算节点,所述隐私计算节点包括:任务接收模块,用于接收多方安全计算任务,所述多方安全计算任务包括至少一个隐私计算函数,所述多方安全计算任务的配置信息中包括预置的监管规则;所述监管规则用于定义监管函数以及指定所述隐私计算函数中的被监管函数;所述监管函数用于在密文状态下判断所述被监管函数中目标变量对应的数据是否满足预设条件;

任务执行模块,用于执行所述多方安全计算任务,在执行到当前的隐私计算函数时,在所述配置信息中查询所述当前的隐私计算函数是否为被监管函数;

监管执行模块,用于若所述当前的隐私计算函数是被监管函数,则编译并执行所述当前的隐私计算函数对应的监管函数,得到执行结果;

任务终止模块,用于若所述执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,则终止执行所述多方安全计算任务。

9.根据权利要求8所述的系统,其特征在于,所述预置的监管规则的个数大于或等于1;

监管规则与监管函数以及被监管函数具有一一对应的关系;每个监管规则包括被监管函数的名称、目标变量的名称、以及监管函数的定义。

10.根据权利要求8所述的系统,其特征在于,所述目标变量对应的数据包括所述多方安全计算任务的中间计算结果、所述多方安全计算任务的最终计算结果、以及所述多方安全计算任务的任意数据方的输入数据中的任意一种。

11.根据权利要求8所述的系统,其特征在于,所述隐私计算函数和所述监管函数中的隐私计算基于预置的算子接口实现,所述算子接口通过预置上层代码调用,所述算子接口通过调用底层密文计算函数实现隐私计算。

12.根据权利要求8所述的系统,其特征在于,所述预设条件包括:所述被监管函数中目标变量对应的数据的值小于预设阈值;所述监管函数用于在密文状态下执行所述目标变量小于所述预设阈值的比较操作,并返回比较操作的结果。

13.根据权利要求8所述的系统,其特征在于,所述目标变量对应的数据包括指定的两个以上数据方的数据集;所述预设条件包括:所述两个以上数据方的数据集的交集个数等于0;所述监管函数用于在密文状态下对所述两个以上数据方的数据集进行隐私求交,并返回交集个数与0的比较结果。

14.根据权利要求8所述的系统,其特征在于,所述隐私计算节点还包括:

继续执行模块,用于若所述执行结果标识所述被监管函数中目标变量对应的数据满足预设条件,则继续执行所述多方安全计算任务。

15.根据权利要求8所述的系统,其特征在于,所述系统还包括监管方,所述监管方用于提供所述多方安全计算任务的监管规则;所述隐私计算节点,还用于在确定所述执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件的情况下,向所述监管方返回告警信息。

16.一种用于数据监管的装置,其特征在于,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如权利要求1至7中任意一项所述的数据监管方法的指令。

17.一种可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如权利要求1至7中任意一项所述的数据监管方法。

说明书 :

一种数据监管方法、系统、装置和可读存储介质

技术领域

[0001] 本发明涉及多方安全计算领域,尤其涉及一种数据监管方法、系统、装置和可读存储介质。

背景技术

[0002] 随着大数据的发展,数据已成为重要的战略资源,多方数据的融合处理也成为可能。出于隐私保护的考虑,不同的数据方可以针对各自的数据进行加密,由多方安全计算系统在加密后的数据基础上进行多方数据的联合计算,从而在保证数据隐私安全的前提下实现数据共享。
[0003] 然而,在多方数据的联合计算过程中,存在需要进行数据监管的场景。例如,监测某个数值是否超过预设阈值。目前的数据监管需要在明文状态下进行,可能导致数据的隐私泄露。

发明内容

[0004] 本发明实施例提供一种数据监管方法、系统、装置和可读存储介质,可以在多方数据的联合计算过程中,在密文状态下进行数据监控,可以保护数据的隐私安全。
[0005] 为了解决上述问题,本发明实施例公开了一种数据监管方法,应用于多方安全计算系统中的隐私计算节点,所述方法包括:
[0006] 接收多方安全计算任务,所述多方安全计算任务包括至少一个隐私计算函数,所述多方安全计算任务的配置信息中包括预置的监管规则;所述监管规则用于定义监管函数以及指定所述隐私计算函数中的被监管函数;所述监管函数用于在密文状态下判断所述被监管函数中目标变量对应的数据是否满足预设条件;
[0007] 执行所述多方安全计算任务,在执行到当前的隐私计算函数时,在所述配置信息中查询所述当前的隐私计算函数是否为被监管函数;
[0008] 若所述当前的隐私计算函数是被监管函数,则编译并执行所述当前的隐私计算函数对应的监管函数,得到执行结果;
[0009] 若所述执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,则终止执行所述多方安全计算任务。
[0010] 另一方面,本发明实施例公开了一种多方安全计算系统,所述多方安全计算系统包括至少一个隐私计算节点,所述隐私计算节点包括:
[0011] 任务接收模块,用于接收多方安全计算任务,所述多方安全计算任务包括至少一个隐私计算函数,所述多方安全计算任务的配置信息中包括预置的监管规则;所述监管规则用于定义监管函数以及指定所述隐私计算函数中的被监管函数;所述监管函数用于在密文状态下判断所述被监管函数中目标变量对应的数据是否满足预设条件;
[0012] 任务执行模块,用于执行所述多方安全计算任务,在执行到当前的隐私计算函数时,在所述配置信息中查询所述当前的隐私计算函数是否为被监管函数;
[0013] 监管执行模块,用于若所述当前的隐私计算函数是被监管函数,则编译并执行所述当前的隐私计算函数对应的监管函数,得到执行结果;
[0014] 任务终止模块,用于若所述执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,则终止执行所述多方安全计算任务。
[0015] 再一方面,本发明实施例公开了一种用于数据监管的装置,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如前述一个或多个所述的数据监管方法的指令。
[0016] 又一方面,本发明实施例公开了一种可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如前述一个或多个所述的数据监管方法。
[0017] 本发明实施例包括以下优点:
[0018] 本发明实施例提供的数据监管方法,可应用于多方安全计算系统中的隐私计算节点,在多方安全计算任务的配置信息中预置有监管规则。隐私计算节点在执行到监管规则中指定的被监管函数时,编译并执行所述当前的隐私计算函数对应的监管函数,得到执行结果。该监管函数用于在密文状态下判断被监管函数中目标变量对应的数据是否满足预设条件。若监管函数的执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,说明被监管函数中目标变量对应的数据违反监管规则,则终止执行所述多方安全计算任务。本发明实施例可以在基于多方安全计算系统进行多方数据的联合计算过程中,在密文状态下进行数据监控,可以保护数据的隐私安全。此外,本发明实施例可以基于多方安全计算系统提供的算子接口,实现与明文计算场景下相同的监管需求,并且制定监管规则的一方不需要感知具体密文计算的实现细节,可以保护算法提供方的密文计算算法。

附图说明

[0019] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020] 图1是本发明的一种数据监管方法实施例的步骤流程图;
[0021] 图2是本发明的一种多方安全计算系统的架构示意图;
[0022] 图3是本发明的一种多方安全计算系统中隐私计算节点的结构框图;
[0023] 图4是本发明的一种用于数据监管的装置800的框图;
[0024] 图5是本发明的一些实施例中服务器的结构示意图。

具体实施方式

[0025] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0026] 本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
[0027] 参照图1,示出了本发明的一种数据监管方法实施例的步骤流程图,所述方法可应用于多方安全计算系统中的隐私计算节点,所述方法可以包括如下步骤:
[0028] 步骤101、接收多方安全计算任务,所述多方安全计算任务包括至少一个隐私计算函数,所述多方安全计算任务的配置信息中包括预置的监管规则;所述监管规则用于定义监管函数以及指定所述隐私计算函数中的被监管函数;所述监管函数用于在密文状态下判断所述被监管函数中目标变量对应的数据是否满足预设条件;
[0029] 步骤102、执行所述多方安全计算任务,在执行到当前的隐私计算函数时,在所述配置信息中查询所述当前的隐私计算函数是否为被监管函数;
[0030] 步骤103、若所述当前的隐私计算函数是被监管函数,则编译并执行所述当前的隐私计算函数对应的监管函数,得到执行结果;
[0031] 步骤104、若所述执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,则终止执行所述多方安全计算任务。
[0032] 本发明实施例提供的数据监管方法,可应用于多方安全计算系统中的隐私计算节点。本发明实施例对所述多方安全计算系统采用的安全计算协议不做限制。所述多方安全计算系统可以基于MPC(Secure Multi‑party Computation,多方安全计算)协议,在基于MPC协议的多方安全计算系统中,多个计算参与方可以在不泄漏自身数据的前提下,使用多方安全计算技术进行协同计算得到计算结果,参与计算的数据、中间结果、以及最终结果可以为密文。示例性地,所述多方安全计算系统可以基于秘密分享、半同态、不经意传输等技术实现的多方安全计算协议。
[0033] MPC(多方安全计算)是使多个非互信数据库之间可以在数据相互保密的前提下进行数据计算或融合,因此多方安全计算任务是这样一个任务,它要求在不向计算节点暴露数据的明文的情况下,计算节点根据数据的密文仍然能进行计算或处理,得到任务处理结果。
[0034] 所述隐私计算节点为多方安全计算系统中的计算节点,可用于进行密文计算。一个多方安全计算任务可以由一组隐私计算节点协同执行,本发明实施例对完成一个多方安全计算任务的一组隐私计算节点中的隐私计算节点数量不做限制。示例性地,一组隐私计算节点可以包括4个隐私计算节点。
[0035] 参照图2,示出了本发明的一种多方安全计算系统的架构示意图。如图2所示,所述多方安全计算系统可以包括任务调度方201、隐私计算节点集群202、以及数据方203。隐私计算节点是以密文进行计算或处理的计算节点,即在不知道数据的明文的情况下,根据数据的密文仍然能进行计算或处理的计算节点。数据方可以提供数据存储、数据提供、以及计算结果存储等服务。数据方提供计算用的数据(一般是密文的形式)。任务调度方用于接收任务发起方发起的多方安全计算请求,生成多方安全计算任务,并调度隐私计算节点执行多方安全计算任务。图2所示的多方安全计算系统还可以包括任务发起方204和监管方205。任务发起方204用于向任务调度方发起多方安全计算任务。监管方用于制定监管规则以及接收执行监管规则返回的结果。
[0036] 当任务发起方向任务调度方发起一个多方安全计算任务时,该多方安全计算任务包括任务的配置信息,如数据源信息、结果接收方信息以及密文计算算法等。任务调度方在隐私计算节点集群中选择一组隐私计算节点,将该多方安全计算任务分配至该组隐私计算节点以执行具体的密文计算任务。
[0037] 所述多方安全计算任务可以包括但不限于如下任意一项或多项:基于MPC的PSI(Private Set Intersection,隐私集合求交集)/PIR(Private Information Retrieval,隐私信息检索)、基于隐私保护的模型训练及预测、基于隐私保护的数据库查询操作等等。可以理解,本发明实施例对多方安全计算任务的具体类型不加以限制。
[0038] 在隐私计算节点执行多方安全计算任务的过程中,可以利用本发明的数据监管方法进行数据监管。所述多方安全计算任务可以包括一个或多个隐私计算函数。本发明实施例中将隐私计算函数也称为算子。隐私计算函数用于执行隐私计算,隐私计算指计算过程中不会泄露数据明文的计算。示例性地,隐私加法计算可以称为一个算子,隐私乘法计算可以称为一个算子,隐私除法计算可以称为一个算子等等。可以理解的是,算子不限于简单的算术操作,还可以包括逻辑操作或者其它复杂的模型训练等操作。
[0039] 本发明实施例可以对多方安全计算任务中的隐私计算函数使用的目标变量进行监管,以监测多方安全计算任务执行过程中目标变量对应的数据是否满足预设条件。本发明实施例将多方安全计算任务中被监管的隐私计算函数称为被监管函数,如果监测到被监管函数使用的目标变量对应的数据不满足预设条件,说明被监管函数中目标变量对应的数据违反监管规则,则可以终止执行所述多方安全计算任务,并且可以发出告警信息。
[0040] 在本发明的一种可选实施例中,所述目标变量对应的数据可以包括所述多方安全计算任务的中间计算结果、所述多方安全计算任务的最终计算结果、以及所述多方安全计算任务的任意数据方的输入数据中的任意一种。
[0041] 本发明实施例可以对执行多方安全计算任务产生的中间计算结果进行监管,也可以对多方安全计算任务的最终计算结果进行监管,还可以对多方安全计算任务的任意数据方的输入数据进行监管,等等。本发明实施例对目标变量对应的数据进行监管是基于密文状态下进行的,不会对监管的数据进行解密,也不会对多方安全计算任务中的任意数据进行解密,可以在保护数据隐私安全的基础上,实现多方安全计算任务中的数据监管。
[0042] 本发明实施例对数据监管的场景不做限制。本发明实施例的数据监管方法可用于在多方数据的联合计算过程中,对数据方的输入数据、中间计算结果、以及最终计算结果等任意数据进行监管。示例性地,在银行的风险控制场景下,不同银行机构掌握各自的数据,通过联合不同银行机构的数据进行数据统计,可以增强银行的风险控制。在对多个银行机构的数据进行联合统计的过程中,多个银行机构即为数据方。通过设置监管规则,可以在对多个银行机构的数据进行联合统计的过程中,对银行机构的输入数据、联合统计的中间计算结果、以及联合统计的最终计算结果等任意一种或多种数据进行监管,在违反监管规则时可以终止联合统计的任务,并返回告警信息。
[0043] 本发明实施例在多方安全计算任务的配置信息中增加预置的监管规则,以在执行多方安全计算任务的过程中按照监管规则进行数据监管。所述监管规则用于定义监管函数以及指定被监管函数;所述监管函数用于在密文状态下判断所述被监管函数中目标变量对应的数据是否满足预设条件。
[0044] 隐私计算节点在接收到任务调度方分配的多方安全计算任务后,可以通过解析该多方安全计算任务的配置信息,得到该多方安全计算任务的监管规则。隐私计算节点在执行到该多方安全计算任务中当前的隐私计算函数时,在该多方安全计算任务的配置信息中查询当前的隐私计算函数是否为被监管函数,若查询到当前的隐私计算函数是被监管函数,则编译并执行当前的隐私计算函数对应的监管函数,得到该监管函数的执行结果。这里的编译是指将监管函数编译成可执行代码。若该监管函数的执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,说明被监管函数中目标变量对应的数据违反监管规则,则终止执行该多方安全计算任务。
[0045] 在本发明的一种可选实施例中,可以在所述多方安全计算任务的每个隐私计算函数中增加预置函数,该预置函数的作用在于解析所述多方安全计算任务的配置信息,在配置信息中预置的监管规则中查询自身所在的隐私计算函数是否为被监管函数,如果查询到自身所在的隐私计算函数是被监管函数,则在预置的监管规则中查询自身所在的隐私计算函数对应的监管函数,编译并执行该监管函数。需要说明的是,该预置函数可以设置在多方安全计算任务的任意隐私计算函数中,并且在执行到设置有该预置函数的隐私计算函数时,优先执行该预置函数,根据监管函数的执行结果确定是否继续执行当前的隐私计算函数。
[0046] 本发明实施例提供的数据监管方法,应用于多方安全计算系统中的隐私计算节点,在多方安全计算任务的配置信息中预置监管规则,在执行到监管规则中指定的被监管函数时,编译并执行所述当前的隐私计算函数对应的监管函数,得到执行结果。该监管函数用于在密文状态下判断该被监管函数中目标变量对应的数据是否满足预设条件。若执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,说明该被监管函数中目标变量对应的数据违反监管规则,则终止执行所述多方安全计算任务。本发明实施例可以在基于多方安全计算系统进行多方数据的联合计算过程中,在密文状态下进行数据监控,可以保护数据的隐私安全。
[0047] 可选地,若所述执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,所述方法还可以包括:发送告警信息,所述告警信息用于指示被监管函数中目标变量对应的数据不满足预设条件。例如,执行多方安全计算任务的隐私计算节点可以向任务调度方发送告警信息。进一步地,任务调度方可以向任务发起方和/或监管方发送告警信息。
[0048] 在本发明的一种可选实施例中,所述预置的监管规则的个数可以大于或等于1;监管规则与监管函数以及被监管函数具有一一对应的关系;每个监管规则包括被监管函数的名称、目标变量的名称、以及监管函数的定义。
[0049] 在本发明实施例中,一个多方安全计算任务可以配置一个或多个监管规则。每个监管规则用于定义一个监管函数以及指定一个被监管函数,也即,监管规则与监管函数以及被监管函数具有一一对应的关系。每个监管规则可以包括被监管函数的名称、目标变量的名称、以及监管函数的定义。
[0050] 本发明实施例对监管规则的具体形式不做限制。示例性地,多方安全计算任务的配置信息中可以包括监管规则列表,监管规则列表的每个条目包括一个监管规则。一个监管规则可以包括如下三个部分:被监管函数的名称、目标变量的名称、以及监管函数的定义。
[0051] 一个监管规则列表示例如下:
[0052] {
[0053]   "ruleList": [
[0054]     {
[0055]       "targetFuncName": "ss",
[0056]       "varname": "a",
[0057]       "superFuncName": "ss_lt"
[0058]     },
[0059]     {
[0060]       "targetFuncName": "reveal",
[0061]       "varname": "b",
[0062]       "superFuncName": "reveal_lt"
[0063]     }
[0064]   ] ,
[0065]   "superFuncMap": {
[0066]     "ss_lt": "def ss_lt(...)",
[0067]     "reveal_lt": "def reveal_lt(...)"
[0068]   }
[0069] }
[0070] 其中,ruleList表示监管规则列表。targetFuncName表示被监管函数的名称。varname表示目标变量的名称。superFuncName表示监管函数的名称。superFuncMap表示自定义的字典。字典是一种数据结构,用于存放具有映射关系的数据。字典拥有键(key)和值(value),通过键(key)可以访问值(value)。在superFuncMap中,键(key)为监管函数的名称,值(value)为监管函数的定义(具体实现)。
[0071] 在该示例中,监管规则列表ruleList中包括两个监管规则。第一个监管规则中被监管函数的名称为ss,目标变量的名称为a,监管函数的名称为ss_lt。superFuncMap中包含监管函数ss_lt的名称和具体实现之间的对应关系。第二个监管规则中被监管函数的名称为reveal,目标变量的名称为b,监管函数的名称为reveal_lt。superFuncMap中包含监管函数reveal_lt的名称和具体实现之间的对应关系。
[0072] 在执行到当前的隐私计算函数时,可以通过匹配当前的隐私计算函数的名称与监管规则列表中每个被监管函数的名称,以查询当前的隐私计算函数是否为被监管函数。
[0073] 在本发明的一种可选实施例中,所述隐私计算函数和所述监管函数中的隐私计算基于预置的算子接口实现,所述算子接口通过预置上层代码调用,所述算子接口通过调用底层密文计算函数实现隐私计算。
[0074] 在本发明实施例中,多方安全计算任务可以为通过预设编程语言实现的计算机程序代码。多方安全计算系统通过执行该计算机程序代码可以实现相应的隐私计算功能。进一步地,多方安全计算系统可以包括预置的接口层,可用于提供各种算子接口。基于接口层提供的算子接口,可以编写安全计算任务中隐私计算的相关代码。
[0075] 需要说明的是,本发明实施例对接口层提供的算子接口的编程语言不做限制。例如,可以为Python语言、C/C++语言、Java语言等。
[0076] 此外,对于数学运算,当参与运算的变量包含密文变量时,可以通过操作符重载实现密文的数学运算。例如,对于数学运算“a+2”,当a是密文变量时,操作符“+”的实现使用的是重载的这个密文变量类型的加法操作实现。用户无需感知底层的密文加法计算是如何实现的。
[0077] 在本发明实施例中,所述多方安全计算系统可以提供预置的算子接口。开发人员可以利用多方安全计算系统提供的算子接口编写多方安全计算任务的代码,而不用感知底层密文计算函数的具体实现。同样地,监管方可以利用多方安全计算系统提供的算子接口编写监管规则中的监管函数,而不用感知底层密文计算函数的具体实现。
[0078] 通过多方安全计算系统接口层提供的算子接口,可以将明文的监管需求改写成一或多个监管规则,通过上层代码定义监管规则,而不用感知密文计算的具体实现,可以降低编写监管规则的难度,并且可以保护密文计算的具体算法。
[0079] 在本发明的一种可选实施例中,所述预设条件可以包括:所述被监管函数中目标变量对应的数据的值小于预设阈值;所述监管函数用于在密文状态下执行所述目标变量小于所述预设阈值的比较操作,并返回比较操作的结果。该监管函数返回的执行结果可以为一个布尔值,如果该监管函数返回的执行结果为布尔值true,标识所述被监管函数中目标变量对应的数据的值小于预设阈值成立,也即目标变量对应的数据满足预设条件,符合监管规则。如果该监管函数返回的执行结果为布尔值false,标识所述被监管函数中目标变量对应的数据的值小于预设阈值不成立,也即目标变量对应的数据不满足预设条件,违反监管规则。
[0080] 在具体实施中,本发明实施例的数据监管方法可用于在执行多方安全计算任务的过程中,在密文状态下监测被监管函数中目标变量对应的数据的值是否超过预设阈值。比如在对多个数据方的数据进行联合计算的过程中,若根据监管规则发现某一数据方发送的加密后数据的值超过预设阈值,可以终止联合计算过程并发送告警信息。
[0081] 示例一,一个监管规则列表如下:
[0082] {
[0083]   "ruleList": [
[0084]     {
[0085]       "targetFuncName": "reveal",
[0086]       "varname": "res",
[0087]       "superFuncName": "reveal_lt"
[0088]     }
[0089]   ] ,
[0090]   "superFuncMap": {
[0091]     "reveal_lt": "def reveal_lt(varname):\n  return varname < 100"[0092]   }
[0093] }
[0094] 在示例一中,监管规则列表中包括一个监管规则,该监管规则中被监管函数的名称为reveal,目标变量的名称为res,监管函数的名称为reveal_lt。监管函数reveal_lt的输入参数为目标变量varname,监管函数reveal_lt的输出结果为隐私比较的结果,该隐私比较为目标变量varname对应的数据的值是否小于数值100。
[0095] 假设多方安全计算任务的配置信息中预置有示例一所示的监管规则。多方安全计算系统中的隐私计算节点接收到任务调度方分配的该多方安全计算任务之后,执行该多方安全计算任务,在执行到该多方安全计算任务中的隐私计算函数reveal时,通过解析配置信息查询到隐私计算函数reveal为被监管函数,则编译并执行隐私计算函数reveal对应的监管函数reveal_lt,得到监管函数reveal_lt的执行结果。
[0096] 监管函数reveal_lt用于执行“varname<100”的比较操作,在密文状态下比较目标变量varname对应的数据的值是否小于数值100。需要说明的是,目标变量varname对应的数据的值是密文,数值100也是密文。为便于描述,本发明实施例中均以明文示出。由于参与该比较操作的一个变量是密文变量,所以操作符“<”使用的是这个密文变量类型重载的相应的操作符的实现。密文变量类型重载的实现即是调用了底层的密文计算函数来实现隐私比较操作。监管函数不用感知底层密文计算函数的具体实现。如果该监管函数reveal_lt的执行结果为布尔值true(或者数值1的密文),说明“varname<100”成立,也即被监管函数中目标变量对应的数据满足预设条件,此时可以继续执行所述多方安全计算任务,如继续执行被监管函数reveal中的代码。如果该监管函数reveal_lt的执行结果为布尔值false(或者数值0的密文),说明“varname<100”不成立,也即被监管函数中目标变量对应的数据不满足预设条件,此时可以终止执行所述多方安全计算任务。
[0097] 需要说明的是,本发明实施例中的代码均以Python代码为例。在示例一中,varname是被监管函数中的一个密文变量,“varname<100”是基于密文的隐私比较操作。多方安全计算系统可以基于例如秘密分享或者同态加密等安全计算协议,利用Python作为面向用户的编程接口,实现密文上的通用计算。“varname<100”虽然是一行python代码,但实际执行的时候该操作调用的是绑定的密文比较函数。多方安全计算系统在执行多方安全计算的过程中,可以将配置信息中预置的监管规则转译成具体的密文计算,在不暴露参与方的数据的前提下实现数据的监管。本发明实施例可以在保护数据隐私安全的前提下,实现与明文计算场景下相同的数据监管需求,并且制定监管规则的一方不需要感知具体密文计算的实现细节,可以保护算法提供方的密文计算算法。
[0098] 在本发明的一种可选实施例中,所述目标变量对应的数据可以包括指定的两个以上数据方的数据集;所述预设条件可以包括:所述两个以上数据方的数据集的交集个数等于0;所述监管函数用于在密文状态下对所述两个以上数据方的数据集进行隐私求交,并返回交集个数与0的比较结果。该监管函数返回的执行结果可以为一个布尔值,如果该监管函数返回的执行结果为布尔值true,标识所述两个以上数据方的数据集的交集个数等于0成立,也即目标变量对应的数据满足预设条件,符合监管规则。如果该监管函数返回的执行结果为布尔值false,标识所述两个以上数据方的数据集的交集个数等于0不成立,也即目标变量对应的数据不满足预设条件,违反监管规则。
[0099] 在具体实施中,所述目标变量对应的数据可以包括指定的两个以上数据方的数据集,也即,被监管的数据可以包括指定的数据方输入的数据集。可以理解的是,本发明实施例中数据方输入的数据均为数据方加密后的数据。本发明实施例的数据监管方法可用于在执行多方安全计算任务的过程中,在密文状态下监测监管规则指定的两个以上数据方输入的数据集是否存在交集。
[0100] 示例二,一个监管规则列表如下:
[0101] {
[0102]   "ruleList": [
[0103]     {
[0104]       "targetFuncName": "ss",
[0105]       "varname": "id_a",
[0106]       "superFuncName": "intersection_alert"
[0107]     }
[0108]   ],
[0109]   "superFuncMap": {
[0110]     "intersection_alert": "
[0111]     id_b = privpy.ss(“id_b”)
[0112]     column_1, left, right = privpy.private_set_intersection(id_a, id_b)
[0113]     column_2 = psq.count(column_1)
[0114]     return column_2 == 0
[0115]     "
[0116]   }
[0117] }
[0118] 在示例二中,监管规则列表中包括一个监管规则,该监管规则中被监管函数的名称为ss,目标变量的名称为id_a,监管函数的名称为intersection_alert。监管函数intersection_alert用于对密文变量id_a对应的数据集和密文变量id_b对应的数据集进行隐私求交,并返回交集个数与0的比较结果。其中,privpy.ss用于将一个变量对应的数据用密文的方式读取出来。
[0119] 示例性地,假设数据方A持有表a,数据方B持有表b,表a和表b的主键是身份证号。当使用表a和表b作为数据源进行联合计算时,假设有一个监管需求是如果表a和表b 存在交集则报警。那么可以通过上述示例二的监管规则实现数据监管。监管函数在密文状态下对表a和表b求交,并统计交集个数,返回交集个数与0的比较结果。如果交集个数不为0,说明表a和表b存在交集,或者密文计算出现了不符合预期的结果,此时返回执行结果为false,使计算任务失败并终止。上层应用接收到当前计算任务的失败原因是由于违反监管规则导致的,即可触发告警。
[0120] 在本发明的一种可选实施例中,所述方法还可以包括:若所述执行结果标识所述被监管函数中目标变量对应的数据满足预设条件,则继续执行所述多方安全计算任务。
[0121] 例如,在示例一中,若监管函数的执行结果为布尔值true说明目标变量对应的数据的值小于预设阈值,也即被监管函数中目标变量对应的数据满足预设条件,则继续执行所述多方安全计算任务。又如,在示例二中,若监管函数的执行结果为布尔值true,说明指定的两个以上数据方的数据集的交集个数等于0,也即被监管函数中目标变量对应的数据满足预设条件,则继续执行所述多方安全计算任务。
[0122] 可以理解的是,示例一中的隐私比较和示例二中的隐私求交仅作为本发明设置监管规则的应用示例,本发明实施例对监管规则的具体内容不做限制。
[0123] 综上,本发明实施例提供的数据监管方法,可应用于多方安全计算系统中的隐私计算节点,在多方安全计算任务的配置信息中预置有监管规则。隐私计算节点在执行到监管规则中指定的被监管函数时,编译并执行所述当前的隐私计算函数对应的监管函数,得到执行结果。该监管函数用于在密文状态下判断该被监管函数中目标变量对应的数据是否满足预设条件。若监管函数的执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,说明被监管函数中目标变量对应的数据违反监管规则,则终止执行所述多方安全计算任务。本发明实施例可以在基于多方安全计算系统进行多方数据的联合计算过程中,在密文状态下进行数据监控,可以保护数据的隐私安全。此外,本发明实施例可以基于多方安全计算系统提供的算子接口,实现与明文计算场景下相同的监管需求,并且制定监管规则的一方不需要感知具体密文计算的实现细节,可以保护算法提供方的密文计算算法。
[0124] 需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0125] 参照图3,示出了本发明的一种多方安全计算系统中隐私计算节点的结构框图,所述多方安全计算系统包括至少一个所述隐私计算节点,所述隐私计算节点包括:
[0126] 任务接收模块301,用于接收多方安全计算任务,所述多方安全计算任务包括至少一个隐私计算函数,所述多方安全计算任务的配置信息中包括预置的监管规则;所述监管规则用于定义监管函数以及指定所述隐私计算函数中的被监管函数;所述监管函数用于在密文状态下判断所述被监管函数中目标变量对应的数据是否满足预设条件;
[0127] 任务执行模块302,用于执行所述多方安全计算任务,在执行到当前的隐私计算函数时,在所述配置信息中查询所述当前的隐私计算函数是否为被监管函数;
[0128] 监管执行模块303,用于若所述当前的隐私计算函数是被监管函数,则编译并执行所述当前的隐私计算函数对应的监管函数,得到执行结果;
[0129] 任务终止模块304,用于若所述执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,则终止执行所述多方安全计算任务。
[0130] 可选地,所述预置的监管规则的个数大于或等于1;监管规则与监管函数以及被监管函数具有一一对应的关系;每个监管规则包括被监管函数的名称、目标变量的名称、以及监管函数的定义。
[0131] 可选地,所述目标变量对应的数据包括所述多方安全计算任务的中间计算结果、所述多方安全计算任务的最终计算结果、以及所述多方安全计算任务的任意数据方的输入数据中的任意一种。
[0132] 可选地,所述隐私计算函数和所述监管函数中的隐私计算基于预置的算子接口实现,所述算子接口通过预置上层代码调用,所述算子接口通过调用底层密文计算函数实现隐私计算。
[0133] 可选地,预设条件包括:所述被监管函数中目标变量对应的数据的值小于预设阈值;所述监管函数用于在密文状态下执行所述目标变量小于所述预设阈值的比较操作,并返回比较操作的结果。
[0134] 可选地,所述预设条件包括:所述两个以上数据方的数据集的交集个数等于0;所述监管函数用于在密文状态下对所述两个以上数据方的数据集进行隐私求交,并返回交集个数与0的比较结果。
[0135] 可选地,所述隐私计算节点还包括:
[0136] 继续执行模块,用于若所述执行结果标识所述被监管函数中目标变量对应的数据满足预设条件,则继续执行所述多方安全计算任务。
[0137] 可选地,所述系统还包括监管方,所述监管方用于提供所述多方安全计算任务的监管规则;所述隐私计算节点,还用于在确定所述执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件的情况下,向所述监管方返回告警信息。
[0138] 本发明实施例提供的多方安全计算系统在执行多方安全计算任务的过程中可以实现基于隐私保护的数据监管。所述多方安全计算任务的配置信息中预置有监管规则,所述多方安全计算系统中的隐私计算节点在执行到监管规则中指定的被监管函数时,编译并执行所述当前的隐私计算函数对应的监管函数,得到执行结果。该监管函数用于在密文状态下判断该被监管函数中目标变量对应的数据是否满足预设条件。若监管函数的执行结果标识所述被监管函数中目标变量对应的数据不满足预设条件,说明被监管函数中目标变量对应的数据违反监管规则,则隐私计算节点终止执行所述多方安全计算任务。本发明实施例可以在基于多方安全计算系统进行多方数据的联合计算过程中,在密文状态下进行数据监控,可以保护数据的隐私安全。此外,本发明实施例可以基于多方安全计算系统提供的算子接口,实现与明文计算场景下相同的监管需求,并且制定监管规则的一方不需要感知具体密文计算的实现细节,可以保护算法提供方的密文计算算法。
[0139] 对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0140] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0141] 关于上述实施例中的系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0142] 本发明实施例提供了一种用于数据监管的装置,包括有存储器,以及一个以上的程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行上述任一实施例中所述的数据监管方法的指令。
[0143] 图4是根据一示例性实施例示出的一种用于数据监管的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0144] 参照图4,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/ O)的接口812,传感器组件814,以及通信组件816。
[0145] 处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
[0146] 存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0147] 电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
[0148] 多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0149] 音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
[0150] I/ O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0151] 传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以搜索装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0152] 通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。
在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0153] 在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
[0154] 在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD‑ROM、磁带、软盘和光数据存储设备等。
[0155] 图5是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质
1930中的一系列指令操作。
[0156] 服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
[0157] 一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的数据监管方法。
[0158] 一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行前文图1所对应实施例中数据监管方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
[0159] 此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图1所对应实施例中数据监管方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
[0160] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0161] 应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
[0162] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0163] 以上对本发明所提供的一种数据监管方法、系统、装置和可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。