多方联合进行安全统计的方法和装置
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及多方联合进行安全统计的方法和装置。
背景技术
当前,普遍存在多方需要联合起来对各方的数据一起做统计的需求,比如若干商业保险机构联合统计得到行业的总体情况,或者若干医疗机构联合统计得到某些疾病的总体情况。由于各方的数据都是机密的,在做联合统计时,各方都需要保护自己的数据,不能泄露给其他方。这为多方的联合统计带来了很大的困难。
在一个典型的统计问题中,样本数据垂直分布在多方,各方拥有样本的不同类别的信息,需要结合多方的不同类别的信息对样本做条件过滤,然后对条件过滤后的满足条件的样本做统计。举个具体例子,两个机构有各自用户的身份标识(比如身份证号、手机号等),其中一方有用户的年龄和工资信息,另一方有用户的学历信息。两个机构想要联合起来,对共同用户统计某种学历和某个年龄段的用户的收入信息,比如本科学历且年龄在25到30之间的人群的收入总和等。两个机构都可以得到统计的结果,但是除了统计结果外,不能泄露用户的信息。针对涉及多方隐私数据的统计问题,现有技术中缺乏同时满足安全性和实用性的可行性方案。
发明内容
本说明书一个或多个实施例描述了一种多方联合进行安全统计的方法和装置,能够同时满足安全性和实用性。
第一方面,提供了一种多方联合进行安全统计的方法,所述多方包括第一方和第二方,所述第一方具有样本集合中各样本分别对应的第一隐私数据,所述第二方具有所述各样本分别对应的第二隐私数据;所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,和/或,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件和/或针对所述第二隐私数据的第二过滤条件;所述方法通过所述第一方执行,包括:
根据目标样本的所述第一数据项,和/或,所述目标样本针对所述第一过滤条件的第一过滤结果的第一逻辑值,确定所述目标样本对应的第一乘法项;所述目标样本为所述样本集合中的任一样本;
根据本方具有的所述第一乘法项,与所述第二方提供的第二乘法项,通过安全乘法的方式,得到所述第一乘法项和所述第二乘法项的第一乘积结果的第一分片;所述第二方得到所述第一乘积结果的第二分片;其中,所述第二乘法项由所述第二方根据所述目标样本的所述第二数据项,和/或,所述目标样本针对所述第二过滤条件的第二过滤结果的第二逻辑值确定的;
根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片,通过多方安全计算的方式,进行样本统计运算。
在一种可能的实施方式中,所述样本对应于用户,所述第一隐私数据包括用户的若干第一特征项,所述第二隐私数据包括用户的若干第二特征项。
在一种可能的实施方式中,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,且不包括,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第二隐私数据的第二过滤条件,且不包括,针对所述第一隐私数据的第一过滤条件;所述第二乘法项为所述第二逻辑值;
所述确定所述目标样本对应的第一乘法项,包括:
将所述目标样本的所述第一数据项作为所述目标样本对应的第一乘法项。
在一种可能的实施方式中,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,且不包括,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件和所述第二过滤条件通过逻辑与组合成所述总过滤条件;所述第二乘法项为所述第二逻辑值;
所述确定所述目标样本对应的第一乘法项,包括:
本地计算所述目标样本的所述第一数据项和所述第一逻辑值的第二乘积结果,将所述第二乘积结果作为所述目标样本对应的第一乘法项。
在一种可能的实施方式中,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,且不包括,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件和所述第二过滤条件通过逻辑或组合成所述总过滤条件;所述第二乘法项为所述第二逻辑值;
所述确定所述目标样本对应的第一乘法项,包括:
本地计算所述目标样本的所述第一数据项和所述第一逻辑值的第二乘积结果;
本地计算所述第一数据项与所述第二乘积结果的差值,将所述差值作为所述目标样本对应的第一乘法项。
进一步地,所述进行样本统计运算,包括:
本地计算所述第二乘积结果与所述第一乘积结果的第一分片之和,得到所述目标样本对应的样本过滤结果的第一分片;所述第一乘积结果的第二分片作为所述样本过滤结果的第二分片;
根据本方具有的所述样本集合中各样本的样本过滤结果的第一分片,与所述第二方具有的各样本的样本过滤结果的第二分片,通过秘密共享的方式,进行针对所述样本过滤结果的样本统计运算。
在一种可能的实施方式中,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件包括多个第一过滤子条件,所述第二过滤条件包括多个第二过滤子条件,各第一过滤子条件和各第二过滤子条件通过逻辑与组合成所述总过滤条件;
所述确定所述目标样本对应的第一乘法项,包括:
本地计算所述目标样本针对所述多个第一过滤子条件的多个过滤逻辑值的逻辑与运算结果,作为所述第一乘法项;所述第二乘法项为第二方计算的、所述目标样本针对所述第二过滤子条件的过滤逻辑值的逻辑与运算结果。
进一步地,所述进行样本统计运算,包括:
根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片和所述第一数据项,与所述第二方具有的各样本的第一乘积结果的第二分片,通过秘密共享的方式,得到所述第一乘积结果与所述第一数据项的第二乘积结果的第一分片;所述第二方得到所述第二乘积结果的第二分片;
根据本方具有的所述样本集合中各样本的第二乘积结果的第一分片,与所述第二方具有的各样本的第二乘积结果的第二分片,通过秘密共享的方式,进行针对所述第二乘积结果的样本统计运算。
进一步地,所述安全统计还包括,对所述各样本中符合总过滤条件的第一样本的第二隐私数据中的第二数据项进行统计运算;
所述进行样本统计运算,包括:
根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片和所述第二数据项,通过秘密共享的方式,得到所述第一乘积结果与所述第二数据项的第三乘积结果的第一分片;所述第二方得到所述第三乘积结果的第二分片;
根据本方具有的所述样本集合中各样本的第三乘积结果的第一分片,与所述第二方具有的各样本的第三乘积结果的第二分片,通过秘密共享的方式,进行针对所述第三乘积结果的样本统计运算。
在一种可能的实施方式中,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件包括多个第一过滤子条件,所述第二过滤条件包括多个第二过滤子条件,各第一过滤子条件和各第二过滤子条件通过逻辑或组合成所述总过滤条件;
所述确定所述目标样本对应的第一乘法项,包括:
本地计算所述目标样本针对所述多个第一过滤子条件的多个过滤逻辑值的第一逻辑或运算结果,本地计算1与所述第一逻辑或运算结果的差值,将所述差值作为所述目标样本对应的第一乘法项;所述第二乘法项为第二方计算的、所述目标样本针对所述第二过滤子条件的过滤逻辑值的第二逻辑或运算结果。
进一步地,所述进行样本统计运算,包括:
本地计算所述第一逻辑或运算结果与所述第一乘积结果的第一分片的和值,将所述和值作为第一过滤结果的第一分片;所述第一过滤结果的第二分片为第一乘积结果的第二分片;
根据本方具有的所述样本集合中各样本的第一过滤结果的第一分片和所述第一数据项,与所述第二方具有的各样本的第一过滤结果的第二分片,通过秘密共享的方式,得到所述第一过滤结果与所述第一数据项的第二乘积结果的第一分片;所述第二方得到所述第二乘积结果的第二分片;
根据本方具有的所述样本集合中各样本的第二乘积结果的第一分片,与所述第二方具有的各样本的第二乘积结果的第二分片,通过秘密共享的方式,进行针对所述第二乘积结果的样本统计运算。
进一步地,所述安全统计还包括,对所述各样本中符合总过滤条件的第一样本的第二隐私数据中的第二数据项进行统计运算;
所述进行样本统计运算,还包括:
根据本方具有的所述样本集合中各样本的第一过滤结果的第一分片,与所述第二方具有的各样本的第一过滤结果的第二分片和所述第二数据项,通过秘密共享的方式,得到所述第一过滤结果与所述第二数据项的第三乘积结果的第一分片;所述第二方得到所述第三乘积结果的第二分片;
根据本方具有的所述样本集合中各样本的第三乘积结果的第一分片,与所述第二方具有的各样本的第三乘积结果的第二分片,通过秘密共享的方式,进行针对所述第三乘积结果的样本统计运算。
第二方面,提供了一种多方联合进行安全统计的装置,所述多方包括第一方和第二方,所述第一方具有样本集合中各样本分别对应的第一隐私数据,所述第二方具有所述各样本分别对应的第二隐私数据;所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,和/或,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件和/或针对所述第二隐私数据的第二过滤条件;所述装置设置于所述第一方,包括:
确定单元,用于根据目标样本的所述第一数据项,和/或,所述目标样本针对所述第一过滤条件的第一过滤结果的第一逻辑值,确定所述目标样本对应的第一乘法项;所述目标样本为所述样本集合中的任一样本;
安全乘法单元,用于根据本方具有的所述确定单元确定的第一乘法项,与所述第二方提供的第二乘法项,通过安全乘法的方式,得到所述第一乘法项和所述第二乘法项的第一乘积结果的第一分片;所述第二方得到所述第一乘积结果的第二分片;其中,所述第二乘法项由所述第二方根据所述目标样本的所述第二数据项,和/或,所述目标样本针对所述第二过滤条件的第二过滤结果的第二逻辑值确定的;
统计单元,用于根据本方具有的所述安全乘法单元得到的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片,通过多方安全计算的方式,进行样本统计运算。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,第一方具有样本集合中各样本分别对应的第一隐私数据,第二方具有所述各样本分别对应的第二隐私数据;安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,和/或,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件和/或针对所述第二隐私数据的第二过滤条件;第一方首先根据目标样本的所述第一数据项,和/或,所述目标样本针对所述第一过滤条件的第一过滤结果的第一逻辑值,确定所述目标样本对应的第一乘法项;所述目标样本为所述样本集合中的任一样本;然后根据本方具有的所述第一乘法项,与所述第二方提供的第二乘法项,通过安全乘法的方式,得到所述第一乘法项和所述第二乘法项的第一乘积结果的第一分片;所述第二方得到所述第一乘积结果的第二分片;其中,所述第二乘法项由所述第二方根据所述目标样本的所述第二数据项,和/或,所述目标样本针对所述第二过滤条件的第二过滤结果的第二逻辑值确定的;最后根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片,通过多方安全计算的方式,进行样本统计运算。由上可见,本说明书实施例,针对样本数据垂直分布在多方的统计场景,通过安全乘法的方式,巧妙地把涉及两方数据的条件过滤和多种复杂的聚合统计融合在一起,支持两方复杂条件过滤,具有高效、低通信量的优点。此外,通过安全乘法的方式得到的乘积结果为两方分片的形式,便于基于该乘积结果,通过多方安全计算的方式,进行样本统计运算,支持多种统计运算,包括求和、计数、求极值等统计运算。整个过程中,不会泄露各方的隐私数据,能够同时满足安全性和实用性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的多方联合进行安全统计的方法流程图;
图3示出根据一个实施例的多方联合进行安全统计的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及多方联合进行安全统计。可以理解的是,上述多方可以为两方或两方以上,例如,三方、四方等。本说明书实施例,以两方联合进行安全统计为例进行说明。参照图1,第一方11具有样本1的第一隐私数据10、样本2的第一隐私数据20、样本3的第一隐私数据30、样本4的第一隐私数据40、样本5的第一隐私数据50;第二方12具有样本1的第二隐私数据11、样本2的第二隐私数据21、样本3的第二隐私数据31、样本4的第二隐私数据41、样本5的第二隐私数据51。其中,第一隐私数据包括样本的第一特征部分,第一特征部分对应于第一维度集合,第二隐私数据包括样本的第二特征部分,第二特征部分对应于第二维度集合。以样本1为例,第一隐私数据10为样本1的第一特征部分,第二隐私数据11为样本1的第二特征部分,第一特征部分和第二特征部分分别对应于样本1的若干维度。
可以理解的是,第一方和第二方仅为对两方的区分,还可以将第一方称为A方,将第二方称为B方,等。假设有A和B两方,N个样本中每个样本的样本维度为d,其中A方拥有样本的d1维特征,B方拥有样本的d2维特征,d=d1+d2,本说明书实施例,需要结合多方的不同维度的特征对样本做条件过滤,然后对条件过滤后的满足条件的样本做统计。
本说明书实施例中,样本对应于第一方的第一隐私数据和第二方的第二隐私数据,对于各方的隐私数据涵盖的信息不做限定,可以是任何不可外传的信息,例如,用户的个人信息或商业秘密等。举例来说,隐私数据为用户的个人信息,包括了用户的姓名、年龄、收入等,隐私数据中的每项信息可以作为样本的一个维度的特征,具体可以参照表一所示的各样本包含特征的对应关系表。
表一:各样本包含特征的对应关系表
由表一可见,表一中不同列的数据可能分布在不同方,例如,姓名和年龄分布在第一方,收入、理财金额、消费金额分布在第二方,这种数据垂直分布在多方的数据分布方式,可以称为垂直切分。
本说明书实施例,需要基于多方的隐私数据进行安全统计,以图1为例,就是针对样本1、样本2、样本3、样本4和样本5先进行条件过滤,再对条件过滤后满足条件的样本进行安全统计,分布在不同方的隐私数据共同构成一个样本,一个样本最终是否满足条件,可能仅取决于第一方的第一隐私数据,或仅取决于第二方的第二隐私数据,或者,由第一方的第一隐私数据和第二方的第二隐私数据共同决定。本说明书实施例,利用多方安全计算(secure multi-party computation,MPC)的方式,在不泄露隐私数据的前提下,实现多方联合进行安全统计,多方安全计算也称为安全多方计算。
图2示出根据一个实施例的多方联合进行安全统计的方法流程图,该方法可以基于图1所示的实施场景,所述多方包括第一方和第二方,所述第一方具有样本集合中各样本分别对应的第一隐私数据,所述第二方具有所述各样本分别对应的第二隐私数据;所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,和/或,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件和/或针对所述第二隐私数据的第二过滤条件;所述方法通过所述第一方执行。如图2所示,该实施例中多方联合进行安全统计的方法包括以下步骤:步骤21,根据目标样本的所述第一数据项,和/或,所述目标样本针对所述第一过滤条件的第一过滤结果的第一逻辑值,确定所述目标样本对应的第一乘法项;所述目标样本为所述样本集合中的任一样本;步骤22,根据本方具有的所述第一乘法项,与所述第二方提供的第二乘法项,通过安全乘法的方式,得到所述第一乘法项和所述第二乘法项的第一乘积结果的第一分片;所述第二方得到所述第一乘积结果的第二分片;其中,所述第二乘法项由所述第二方根据所述目标样本的所述第二数据项,和/或,所述目标样本针对所述第二过滤条件的第二过滤结果的第二逻辑值确定的;步骤23,根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片,通过多方安全计算的方式,进行样本统计运算。下面描述以上各个步骤的具体执行方式。
首先在步骤21,根据目标样本的所述第一数据项,和/或,所述目标样本针对所述第一过滤条件的第一过滤结果的第一逻辑值,确定所述目标样本对应的第一乘法项;所述目标样本为所述样本集合中的任一样本。可以理解的是,若所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,则第一乘法项可以与所述第一数据项有关。若所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,则第一乘法项可以与所述第一过滤条件的第一过滤结果的第一逻辑值有关。
其中,上述第一逻辑值可以根据第一隐私数据直接确定,当目标样本对应的第一隐私数据满足第一过滤条件时,该目标样本对应的第一逻辑值为1,否则为0。
本说明书实施例中,第一隐私数据可以包括若干数据项,当每个数据项代表一项样本特征时,数据项也可以称为特征项,第一逻辑值可以根据第一隐私数据包括的一个或多个数据项而确定。
在一个示例中,所述样本对应于用户,所述第一隐私数据包括用户的若干第一特征项,所述第二隐私数据包括用户的若干第二特征项。
可以理解的是,所述总过滤条件可以包括,针对所述第一隐私数据的一个或多个第一过滤条件,当有多个第一过滤条件时,可以根据目标样本对应的第一隐私数据,分别计算所述目标样本针对各第一过滤条件的第一过滤结果的第一逻辑值。或者,可以认为第一过滤条件包括一个或多个过滤子条件,当第一过滤条件包括多个过滤子条件时,可以根据目标样本对应的第一隐私数据,分别计算所述目标样本针对各过滤子条件的过滤结果的过滤逻辑值,根据各过滤逻辑值综合确定上述第一逻辑值。
例如,第一方(也称为A方)对应有C1和C2两个过滤子条件,对每个样本分别计算过滤子条件C1对应的结果逻辑值A.C1,以及过滤子条件C2对应的结果逻辑值A.C2,各结果逻辑值为0或1,综合确定的第一逻辑值有两种取值0或1。
在一个示例中,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,且不包括,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第二隐私数据的第二过滤条件,且不包括,针对所述第一隐私数据的第一过滤条件;所述第二乘法项为所述第二逻辑值;
所述确定所述目标样本对应的第一乘法项,包括:
将所述目标样本的所述第一数据项作为所述目标样本对应的第一乘法项。
该示例对应于情形一,即过滤在一方,聚合在另一方的情形。可以理解的是,上述第一数据项对于多个样本来说为变量,对第一数据项进行统计运算,相当于对第一数据项这个变量进行聚合。例如,第一方(也称为A方)具有第一数据项,该第一数据项表示为变量X,对每个样本分别确定该样本的第一数据项A.X,各样本对应的第一乘法项即为A.X;相应地,第二方(也称为B方)具有第二过滤条件D的第二逻辑值,对每个样本分别确定该样本的第二逻辑值B.D,各样本对应的第二乘法项即为B.D。
在另一个示例中,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,且不包括,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件和所述第二过滤条件通过逻辑与组合成所述总过滤条件;所述第二乘法项为所述第二逻辑值;
所述确定所述目标样本对应的第一乘法项,包括:
本地计算所述目标样本的所述第一数据项和所述第一逻辑值的第二乘积结果,将所述第二乘积结果作为所述目标样本对应的第一乘法项。
该示例对应于情形二,即过滤在两方,聚合在一方,每一方只有单个过滤条件,且两方的过滤条件通过逻辑与组合成总过滤条件的情形。例如,第一方(也称为A方)具有第一数据项和第一逻辑值,该第一数据项表示为变量X,该第一逻辑值表示为变量C,对每个样本分别确定该样本的第一数据项A.X的值x_i,以及该样本的第一逻辑值A.C的值c_i,计算该样本的第二乘积结果x'_i=x_i*c_i,各样本的x'_i记为X',各样本对应的第一乘法项即为A.X';相应地,第二方(也称为B方)具有第二过滤条件D的第二逻辑值,对每个样本分别确定该样本的第二逻辑值B.D,各样本对应的第二乘法项即为B.D。
在另一个示例中,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,且不包括,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件和所述第二过滤条件通过逻辑或组合成所述总过滤条件;所述第二乘法项为所述第二逻辑值;
所述确定所述目标样本对应的第一乘法项,包括:
本地计算所述目标样本的所述第一数据项和所述第一逻辑值的第二乘积结果;
本地计算所述第一数据项与所述第二乘积结果的差值,将所述差值作为所述目标样本对应的第一乘法项。
该示例对应于情形三,即过滤在两方,聚合在一方,每一方只有单个过滤条件,且两方的过滤条件通过逻辑或组合成总过滤条件的情形。例如,第一方(也称为A方)具有第一数据项和第一逻辑值,该第一数据项表示为变量X,该第一逻辑值表示为变量C,对每个样本分别确定该样本的第一数据项A.X的值x_i,以及该样本的第一逻辑值A.C的值c_i,计算该样本的第二乘积结果x'_i=x_i*c_i,各样本的x'_i记为X',X'=X*C,X”=X-X',各样本对应的第一乘法项即为A.X”;相应地,第二方(也称为B方)具有第二过滤条件D的第二逻辑值,对每个样本分别确定该样本的第二逻辑值B.D,各样本对应的第二乘法项即为B.D。
下面对情形三的原理进行说明,观察如下的公式,其中c、d是布尔变量,x是数值变量,c和x属于一方,d属于另一方:
c or d=c+d-(c and d)=c+d-c*d=c+(1-c)*d,
x*(c or d)=x*(c+(1-c)*d)=x*c+(x*(1-c))*d,
因此可以先本地计算x'=x*c,x”=x*(1-c)=x-x',然后两方做一个乘法x”'=x”*d,再计算x'+x”',从而得到x*(c or d)的结果。
上述情形二和情形三,把一方的聚合变量和过滤条件耦合在一起,可以省略一个乘法,这种运算方式适用于第一过滤条件和第二过滤条件通过一个逻辑与或一个逻辑或组合成所述总过滤条件的情形。
在另一个示例中,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件包括多个第一过滤子条件,所述第二过滤条件包括多个第二过滤子条件,各第一过滤子条件和各第二过滤子条件通过逻辑与组合成所述总过滤条件;
所述确定所述目标样本对应的第一乘法项,包括:
本地计算所述目标样本针对所述多个第一过滤子条件的多个过滤逻辑值的逻辑与运算结果,作为所述第一乘法项;所述第二乘法项为第二方计算的、所述目标样本针对所述第二过滤子条件的过滤逻辑值的逻辑与运算结果。
该示例对应于情形四,即过滤在两方,聚合在一方,每一方可以有多个过滤子条件,且两方的过滤子条件通过逻辑与组合成总过滤条件的情形。例如,第一方(也称为A方)具有第一数据项和多个第一过滤子条件的多个过滤逻辑值,该第一数据项表示为变量X,上述多个过滤逻辑值表示为变量C1,…,对每个样本分别确定该样本的第一数据项A.X的值x_i,以及该样本的上述多个过滤逻辑值的逻辑与运算结果A.C的值c_i,各样本对应的第一乘法项即为A.C;相应地,第二方(也称为B方)具有多个第二过滤子条件的多个过滤逻辑值,上述多个过滤逻辑值表示为变量D1,…,对每个样本分别确定该样本的上述多个过滤逻辑值的逻辑与运算结果B.D,各样本对应的第二乘法项即为B.D。
基于前述示例,进一步地,所述安全统计还包括,对所述各样本中符合总过滤条件的第一样本的第二隐私数据中的第二数据项进行统计运算。
该示例对应于情形五,即过滤在两方,聚合在两方,每一方可以有多个过滤子条件,且两方的过滤子条件通过逻辑与组合成总过滤条件的情形。例如,第一方(也称为A方)具有第一数据项和多个第一过滤子条件的多个过滤逻辑值,该第一数据项表示为变量X,上述多个过滤逻辑值表示为变量C1,…,对每个样本分别确定该样本的第一数据项A.X的值x_i,以及该样本的上述多个过滤逻辑值的逻辑与运算结果A.C的值c_i,各样本对应的第一乘法项即为A.C;相应地,第二方(也称为B方)具有第二数据项和多个第二过滤子条件的多个过滤逻辑值,该第二数据项表示为变量Y,上述多个过滤逻辑值表示为变量D1,…,对每个样本分别确定该样本的第二数据项B.Y的值y_i,以及该样本的上述多个过滤逻辑值的逻辑与运算结果B.D,各样本对应的第二乘法项即为B.D。
在另一个示例中,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件包括多个第一过滤子条件,所述第二过滤条件包括多个第二过滤子条件,各第一过滤子条件和各第二过滤子条件通过逻辑或组合成所述总过滤条件;
所述确定所述目标样本对应的第一乘法项,包括:
本地计算所述目标样本针对所述多个第一过滤子条件的多个过滤逻辑值的第一逻辑或运算结果,本地计算1与所述第一逻辑或运算结果的差值,将所述差值作为所述目标样本对应的第一乘法项;所述第二乘法项为第二方计算的、所述目标样本针对所述第二过滤子条件的过滤逻辑值的第二逻辑或运算结果。
该示例对应于情形六,即过滤在两方,聚合在一方,每一方可以有多个过滤子条件,且两方的过滤子条件通过逻辑或组合成总过滤条件的情形。例如,第一方(也称为A方)具有第一数据项和多个第一过滤子条件的多个过滤逻辑值,该第一数据项表示为变量X,上述多个过滤逻辑值表示为变量C1,…,对每个样本分别确定该样本的第一数据项A.X的值x_i,以及该样本的上述多个过滤逻辑值的逻辑或运算结果A.C的值c_i,各样本的c_i记为C,计算C'=1–C,各样本对应的第一乘法项即为A.C';相应地,第二方(也称为B方)具有多个第二过滤子条件的多个过滤逻辑值,上述多个过滤逻辑值表示为变量D1,…,对每个样本分别确定该样本的的上述多个过滤逻辑值的逻辑或运算结果B.D,各样本对应的第二乘法项即为B.D。
下面对情形六的原理进行说明,观察如下的公式,其中c、d是分别属于两方的布尔变量:
c or d=c+d-(c and d)=c+d-c*d=c+(1-c)*d,
因此可以先本地计算c'=1-c,然后两方做一个乘法c”=c'*d,最后计算c+c”,从而得到c or d的结果。
基于前述示例,进一步地,所述安全统计还包括,对所述各样本中符合总过滤条件的第一样本的第二隐私数据中的第二数据项进行统计运算;
该示例对应于情形七,即过滤在两方,聚合在两方,每一方可以有多个过滤子条件,且两方的过滤子条件通过逻辑或组合成总过滤条件的情形。例如,第一方(也称为A方)具有第一数据项和多个第一过滤子条件的多个过滤逻辑值,该第一数据项表示为变量X,上述多个过滤逻辑值表示为变量C1,…,对每个样本分别确定该样本的第一数据项A.X的值x_i,以及该样本的上述多个过滤逻辑值的逻辑或运算结果A.C的值c_i,各样本的c_i记为C,计算C'=1–C,各样本对应的第一乘法项即为A.C';相应地,第二方(也称为B方)具有第二数据项和多个第二过滤子条件的多个过滤逻辑值,该第二数据项表示为变量Y,上述多个过滤逻辑值表示为变量D1,…,对每个样本分别确定该样本的第二数据项B.Y的值y_i,以及该样本的上述多个过滤逻辑值的逻辑或运算结果B.D,各样本对应的第二乘法项即为B.D。
可以理解的是,上述情形四和情形五差别仅在于聚合在一方或两方,这两种情形下确定第一乘法项的方式相同;上述情形六和情形七差别仅在于聚合在一方或两方,这两种情形下确定第一乘法项的方式相同。与第一方确定第一乘法项的方式相适应,第二方有相应的确定第二乘法项的方式,第一乘法项和第二乘法项的乘积代表特定的含义。
然后在步骤22,根据本方具有的所述第一乘法项,与所述第二方提供的第二乘法项,通过安全乘法的方式,得到所述第一乘法项和所述第二乘法项的第一乘积结果的第一分片;所述第二方得到所述第一乘积结果的第二分片;其中,所述第二乘法项由所述第二方根据所述目标样本的所述第二数据项,和/或,所述目标样本针对所述第二过滤条件的第二过滤结果的第二逻辑值确定的。可以理解的是,在不同情形下,第一方具有特定的确定第一乘法项的方式,相应地,第二方具有特定的确定第二乘法项的方式,第一乘法项和第二乘法项的确定方式,会影响第一乘积结果所代表的含义。
举例来说,前述情形一,即过滤在一方,聚合在另一方的情形。将所述目标样本的所述第一数据项作为所述目标样本对应的第一乘法项,所述第二乘法项为所述第二逻辑值,相应地,第一乘积结果代表了第一数据项与总过滤条件的结果逻辑值的乘积。
前述情形二,即过滤在两方,聚合在一方,每一方只有单个过滤条件,且两方的过滤条件通过逻辑与组合成总过滤条件的情形。本地计算所述目标样本的所述第一数据项和所述第一逻辑值的第二乘积结果,将所述第二乘积结果作为所述目标样本对应的第一乘法项,所述第二乘法项为所述第二逻辑值,相应地,第一乘积结果代表了第一数据项与总过滤条件的结果逻辑值的乘积。
前述情形三,即过滤在两方,聚合在一方,每一方只有单个过滤条件,且两方的过滤条件通过逻辑或组合成总过滤条件的情形。本地计算所述目标样本的所述第一数据项和所述第一逻辑值的第二乘积结果;本地计算所述第一数据项与所述第二乘积结果的差值,将所述差值作为所述目标样本对应的第一乘法项;所述第二乘法项为所述第二逻辑值;相应地,第一乘积结果代表了一个中间结果,该中间结果可以用于确定第一数据项与总过滤条件的结果逻辑值的乘积。
前述情形四,即过滤在两方,聚合在一方,每一方可以有多个过滤子条件,且两方的过滤子条件通过逻辑与组合成总过滤条件的情形。前述情形五,即过滤在两方,聚合在两方,每一方可以有多个过滤子条件,且两方的过滤子条件通过逻辑与组合成总过滤条件的情形。本地计算所述目标样本针对所述多个第一过滤子条件的多个过滤逻辑值的逻辑与运算结果,作为所述第一乘法项;所述第二乘法项为第二方计算的、所述目标样本针对所述第二过滤子条件的过滤逻辑值的逻辑与运算结果。相应地,第一乘积结果代表了总过滤条件的结果逻辑值。
前述情形六,即过滤在两方,聚合在一方,每一方可以有多个过滤子条件,且两方的过滤子条件通过逻辑或组合成总过滤条件的情形。前述情形七,即过滤在两方,聚合在两方,每一方可以有多个过滤子条件,且两方的过滤子条件通过逻辑或组合成总过滤条件的情形。本地计算所述目标样本针对所述多个第一过滤子条件的多个过滤逻辑值的第一逻辑或运算结果,本地计算1与所述第一逻辑或运算结果的差值,将所述差值作为所述目标样本对应的第一乘法项;所述第二乘法项为第二方计算的、所述目标样本针对所述第二过滤子条件的过滤逻辑值的第二逻辑或运算结果。相应地,第一乘积结果代表了一个中间结果,该中间结果可以用于确定总过滤条件的结果逻辑值。
本说明书实施例中,第一乘积结果所代表的含义,会影响后续进行样本统计运算的具体处理过程。
最后在步骤23,根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片,通过多方安全计算的方式,进行样本统计运算。可以理解的是,根据第一乘积结果所代表的含义,上述样本统计运算可能是直接针对各样本的第一乘积结果,进行的求和、计数、求最大值、求最小值等统计运算,也可能是针对各样本的第一乘积结果进行相应数值运算后的数值运算结果,进行的求和、计数、求最大值、求最小值等统计运算。
本说明书实施例中,上述多方安全计算的方式可以但不限于包括秘密共享的方式,下面以秘密共享的方式作为示例进行说明。
其中,前述情形一和情形二,第一乘积结果代表了第一数据项与总过滤条件的结果逻辑值的乘积,安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,因此直接针对各样本的第一乘积结果,进行求和、计数、求最大值、求最小值等统计运算。
前述情形三,第一乘积结果代表了一个中间结果,该中间结果可以用于确定第一数据项与总过滤条件的结果逻辑值的乘积,安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,因此针对各样本的第一乘积结果进行相应数值运算后的数值运算结果,进行求和、计数、求最大值、求最小值等统计运算,该数值运算结果为第一数据项与总过滤条件的结果逻辑值的乘积。
对应于情形三,所述进行样本统计运算,包括:
本地计算所述第二乘积结果与所述第一乘积结果的第一分片之和,得到所述目标样本对应的样本过滤结果的第一分片;所述第一乘积结果的第二分片作为所述样本过滤结果的第二分片;
根据本方具有的所述样本集合中各样本的样本过滤结果的第一分片,与所述第二方具有的各样本的样本过滤结果的第二分片,通过秘密共享的方式,进行针对所述样本过滤结果的样本统计运算。
可以理解的是,上述样本过滤结果为第一数据项与总过滤条件的结果逻辑值的乘积。
前述情形四,第一乘积结果代表了总过滤条件的结果逻辑值,安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,因此针对各样本的第一乘积结果进行相应数值运算后的数值运算结果,进行求和、计数、求最大值、求最小值等统计运算,该数值运算结果为第一数据项与总过滤条件的结果逻辑值的乘积。
对应于情形四,所述进行样本统计运算,包括:
根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片和所述第一数据项,与所述第二方具有的各样本的第一乘积结果的第二分片,通过秘密共享的方式,得到所述第一乘积结果与所述第一数据项的第二乘积结果的第一分片;所述第二方得到所述第二乘积结果的第二分片;
根据本方具有的所述样本集合中各样本的第二乘积结果的第一分片,与所述第二方具有的各样本的第二乘积结果的第二分片,通过秘密共享的方式,进行针对所述第二乘积结果的样本统计运算。
前述情形五,第一乘积结果代表了总过滤条件的结果逻辑值,安全统计还包括,对所述各样本中符合总过滤条件的第一样本的第二隐私数据中的第二数据项进行统计运算,因此针对各样本的第一乘积结果进行相应数值运算后的数值运算结果,进行求和、计数、求最大值、求最小值等统计运算,该数值运算结果为第二数据项与总过滤条件的结果逻辑值的乘积。
对应于情形五,所述进行样本统计运算,包括:
根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片和所述第二数据项,通过秘密共享的方式,得到所述第一乘积结果与所述第二数据项的第三乘积结果的第一分片;所述第二方得到所述第三乘积结果的第二分片;
根据本方具有的所述样本集合中各样本的第三乘积结果的第一分片,与所述第二方具有的各样本的第三乘积结果的第二分片,通过秘密共享的方式,进行针对所述第三乘积结果的样本统计运算。
前述情形六,第一乘积结果代表了一个中间结果,该中间结果可以用于确定总过滤条件的结果逻辑值,安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,因此针对各样本的第一乘积结果进行相应数值运算后的数值运算结果,进行求和、计数、求最大值、求最小值等统计运算,该数值运算结果为第一数据项与总过滤条件的结果逻辑值的乘积。
对应于情形六,所述进行样本统计运算,包括:
本地计算所述第一逻辑或运算结果与所述第一乘积结果的第一分片的和值,将所述和值作为第一过滤结果的第一分片;所述第一过滤结果的第二分片为第一乘积结果的第二分片;
根据本方具有的所述样本集合中各样本的第一过滤结果的第一分片和所述第一数据项,与所述第二方具有的各样本的第一过滤结果的第二分片,通过秘密共享的方式,得到所述第一过滤结果与所述第一数据项的第二乘积结果的第一分片;所述第二方得到所述第二乘积结果的第二分片;
根据本方具有的所述样本集合中各样本的第二乘积结果的第一分片,与所述第二方具有的各样本的第二乘积结果的第二分片,通过秘密共享的方式,进行针对所述第二乘积结果的样本统计运算。
可以理解的是,上述第一过滤结果即总过滤条件的结果逻辑值。
前述情形七,第一乘积结果代表了一个中间结果,该中间结果可以用于确定总过滤条件的结果逻辑值,安全统计还包括,对所述各样本中符合总过滤条件的第一样本的第二隐私数据中的第二数据项进行统计运算,因此针对各样本的第一乘积结果进行相应数值运算后的数值运算结果,进行求和、计数、求最大值、求最小值等统计运算,该数值运算结果为第二数据项与总过滤条件的结果逻辑值的乘积。
对应于情形七,所述进行样本统计运算,还包括:
根据本方具有的所述样本集合中各样本的第一过滤结果的第一分片,与所述第二方具有的各样本的第一过滤结果的第二分片和所述第二数据项,通过秘密共享的方式,得到所述第一过滤结果与所述第二数据项的第三乘积结果的第一分片;所述第二方得到所述第三乘积结果的第二分片;
根据本方具有的所述样本集合中各样本的第三乘积结果的第一分片,与所述第二方具有的各样本的第三乘积结果的第二分片,通过秘密共享的方式,进行针对所述第三乘积结果的样本统计运算。
本说明书实施例中,通过秘密共享的方式,进行求和、计数、求最大值、求最小值等统计运算,可以采用常规方式。其中,求和与计数的统计运算步骤基本相同,只需将求和所针对的聚合变量取为值恒为1,求和的结果就是满足总过滤条件的计数结果。
此外,需要说明的是,在对待统计数据求最大值时,为了避免0值对求最大值的影响,需要对各待统计数据均加上一个正数,得到各正偏移数据,上述正数足够大使得各正偏移数据均大于0,对各正偏移数据进行求最大值,得到最大的正偏移数据,再将该最大的正偏移数据减去上述正数,得到最终的求最大值的结果。可以理解的是,上述待统计数据可以为情形一或情形二中的各样本的第一乘积结果,或者,上述情形七中的各样本的第三乘积结果,等等。
在对待统计数据求最小值时,为了避免0值对求最小值的影响,需要对各待统计数据均减去一个正数,得到各负偏移数据,上述正数足够大使得各负偏移数据均小于0,对各负偏移数据进行求最小值,得到最小的负偏移数据,再将该最小的负偏移数据减去上述正数,得到最终的求最小值的结果。
通过本说明书实施例提供的方法,第一方具有样本集合中各样本分别对应的第一隐私数据,第二方具有所述各样本分别对应的第二隐私数据;安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,和/或,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件和/或针对所述第二隐私数据的第二过滤条件;第一方首先根据目标样本的所述第一数据项,和/或,所述目标样本针对所述第一过滤条件的第一过滤结果的第一逻辑值,确定所述目标样本对应的第一乘法项;所述目标样本为所述样本集合中的任一样本;然后根据本方具有的所述第一乘法项,与所述第二方提供的第二乘法项,通过安全乘法的方式,得到所述第一乘法项和所述第二乘法项的第一乘积结果的第一分片;所述第二方得到所述第一乘积结果的第二分片;其中,所述第二乘法项由所述第二方根据所述目标样本的所述第二数据项,和/或,所述目标样本针对所述第二过滤条件的第二过滤结果的第二逻辑值确定的;最后根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片,通过多方安全计算的方式,进行样本统计运算。由上可见,本说明书实施例,针对样本数据垂直分布在多方的统计场景,通过安全乘法的方式,巧妙地把涉及两方数据的条件过滤和多种复杂的聚合统计融合在一起,支持两方复杂条件过滤,具有高效、低通信量的优点。此外,通过安全乘法的方式得到的乘积结果为两方分片的形式,便于基于该乘积结果,通过多方安全计算的方式,进行样本统计运算,支持多种统计运算,包括求和、计数、求极值等统计运算。整个过程中,不会泄露各方的隐私数据,能够同时满足安全性和实用性。
本说明书实施例提供的方法,需要第一方和第二方配合完成,其中,第一方可以认为是拥有聚合变量对应的数据项的那一方;可以理解的是,如果两方聚合,第一方可以认为是拥有聚合变量对应的第一数据项的那一方,第二方为拥有聚合变量对应的第二数据项的那一方,此时两方的角色可以互换。本说明书实施例,主要是以第一方为执行主体进行描述,中间穿插了第二方的处理过程,例如,第二方如何确定第二乘法项,为描述简便,不再以第二方为执行主体进行描述。
根据另一方面的实施例,还提供一种多方联合进行安全统计的装置,所述多方包括第一方和第二方,所述第一方具有样本集合中各样本分别对应的第一隐私数据,所述第二方具有所述各样本分别对应的第二隐私数据;所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,和/或,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件和/或针对所述第二隐私数据的第二过滤条件;所述装置设置于所述第一方,所述装置用于执行本说明书实施例提供的方法中所述第一方执行的动作。图3示出根据一个实施例的多方联合进行安全统计的装置的示意性框图。如图3所示,该装置300包括:
确定单元31,用于根据目标样本的所述第一数据项,和/或,所述目标样本针对所述第一过滤条件的第一过滤结果的第一逻辑值,确定所述目标样本对应的第一乘法项;所述目标样本为所述样本集合中的任一样本;
安全乘法单元32,用于根据本方具有的所述确定单元31确定的第一乘法项,与所述第二方提供的第二乘法项,通过安全乘法的方式,得到所述第一乘法项和所述第二乘法项的第一乘积结果的第一分片;所述第二方得到所述第一乘积结果的第二分片;其中,所述第二乘法项由所述第二方根据所述目标样本的所述第二数据项,和/或,所述目标样本针对所述第二过滤条件的第二过滤结果的第二逻辑值确定的;
统计单元33,用于根据本方具有的所述安全乘法单元32得到的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片,通过多方安全计算的方式,进行样本统计运算。
可选地,作为一个实施例,所述样本对应于用户,所述第一隐私数据包括用户的若干第一特征项,所述第二隐私数据包括用户的若干第二特征项。
可选地,作为一个实施例,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,且不包括,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第二隐私数据的第二过滤条件,且不包括,针对所述第一隐私数据的第一过滤条件;所述第二乘法项为所述第二逻辑值;
所述确定单元31,具体用于将所述目标样本的所述第一数据项作为所述目标样本对应的第一乘法项。
可选地,作为一个实施例,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,且不包括,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件和所述第二过滤条件通过逻辑与组合成所述总过滤条件;所述第二乘法项为所述第二逻辑值;
所述确定单元31,具体用于本地计算所述目标样本的所述第一数据项和所述第一逻辑值的第二乘积结果,将所述第二乘积结果作为所述目标样本对应的第一乘法项。
可选地,作为一个实施例,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,且不包括,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件和所述第二过滤条件通过逻辑或组合成所述总过滤条件;所述第二乘法项为所述第二逻辑值;
所述确定单元31包括:
乘法子单元,用于本地计算所述目标样本的所述第一数据项和所述第一逻辑值的第二乘积结果;
减法子单元,用于本地计算所述第一数据项与所述乘法子单元得到的第二乘积结果的差值,将所述差值作为所述目标样本对应的第一乘法项。
进一步地,所述统计单元33包括:
加法子单元,用于本地计算所述第二乘积结果与所述第一乘积结果的第一分片之和,得到所述目标样本对应的样本过滤结果的第一分片;所述第一乘积结果的第二分片作为所述样本过滤结果的第二分片;
统计子单元,用于根据本方具有的所述加法子单元得到的所述样本集合中各样本的样本过滤结果的第一分片,与所述第二方具有的各样本的样本过滤结果的第二分片,通过秘密共享的方式,进行针对所述样本过滤结果的样本统计运算。
可选地,作为一个实施例,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件包括多个第一过滤子条件,所述第二过滤条件包括多个第二过滤子条件,各第一过滤子条件和各第二过滤子条件通过逻辑与组合成所述总过滤条件;
所述确定单元31,具体用于本地计算所述目标样本针对所述多个第一过滤子条件的多个过滤逻辑值的逻辑与运算结果,作为所述第一乘法项;所述第二乘法项为第二方计算的、所述目标样本针对所述第二过滤子条件的过滤逻辑值的逻辑与运算结果。
进一步地,所述统计单元33包括:
第一乘法子单元,用于根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片和所述第一数据项,与所述第二方具有的各样本的第一乘积结果的第二分片,通过秘密共享的方式,得到所述第一乘积结果与所述第一数据项的第二乘积结果的第一分片;所述第二方得到所述第二乘积结果的第二分片;
第一统计子单元,用于根据本方具有的所述第一乘法子单元得到的所述样本集合中各样本的第二乘积结果的第一分片,与所述第二方具有的各样本的第二乘积结果的第二分片,通过秘密共享的方式,进行针对所述第二乘积结果的样本统计运算。
进一步地,所述安全统计还包括,对所述各样本中符合总过滤条件的第一样本的第二隐私数据中的第二数据项进行统计运算;
所述统计单元33还包括:
第二乘法子单元,用于根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片和所述第二数据项,通过秘密共享的方式,得到所述第一乘积结果与所述第二数据项的第三乘积结果的第一分片;所述第二方得到所述第三乘积结果的第二分片;
第二统计子单元,用于根据本方具有的所述第二乘法子单元得到的所述样本集合中各样本的第三乘积结果的第一分片,与所述第二方具有的各样本的第三乘积结果的第二分片,通过秘密共享的方式,进行针对所述第三乘积结果的样本统计运算。
可选地,作为一个实施例,所述安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件,和针对所述第二隐私数据的第二过滤条件,所述第一过滤条件包括多个第一过滤子条件,所述第二过滤条件包括多个第二过滤子条件,各第一过滤子条件和各第二过滤子条件通过逻辑或组合成所述总过滤条件;
所述确定单元31,具体用于本地计算所述目标样本针对所述多个第一过滤子条件的多个过滤逻辑值的第一逻辑或运算结果,本地计算1与所述第一逻辑或运算结果的差值,将所述差值作为所述目标样本对应的第一乘法项;所述第二乘法项为第二方计算的、所述目标样本针对所述第二过滤子条件的过滤逻辑值的第二逻辑或运算结果。
进一步地,所述统计单元33包括:
加法子单元,用于本地计算所述第一逻辑或运算结果与所述第一乘积结果的第一分片的和值,将所述和值作为第一过滤结果的第一分片;所述第一过滤结果的第二分片为第一乘积结果的第二分片;
第一乘法子单元,用于根据本方具有的所述加法子单元得到的所述样本集合中各样本的第一过滤结果的第一分片和所述第一数据项,与所述第二方具有的各样本的第一过滤结果的第二分片,通过秘密共享的方式,得到所述第一过滤结果与所述第一数据项的第二乘积结果的第一分片;所述第二方得到所述第二乘积结果的第二分片;
第一统计子单元,用于根据本方具有的所述第一乘法子单元得到的所述样本集合中各样本的第二乘积结果的第一分片,与所述第二方具有的各样本的第二乘积结果的第二分片,通过秘密共享的方式,进行针对所述第二乘积结果的样本统计运算。
进一步地,所述安全统计还包括,对所述各样本中符合总过滤条件的第一样本的第二隐私数据中的第二数据项进行统计运算;
所述统计单元33还包括:
第二乘法子单元,用于根据本方具有的所述样本集合中各样本的第一过滤结果的第一分片,与所述第二方具有的各样本的第一过滤结果的第二分片和所述第二数据项,通过秘密共享的方式,得到所述第一过滤结果与所述第二数据项的第三乘积结果的第一分片;所述第二方得到所述第三乘积结果的第二分片;
第二统计子单元,用于根据本方具有的所述第二乘法子单元得到的所述样本集合中各样本的第三乘积结果的第一分片,与所述第二方具有的各样本的第三乘积结果的第二分片,通过秘密共享的方式,进行针对所述第三乘积结果的样本统计运算。
通过本说明书实施例提供的装置,第一方具有样本集合中各样本分别对应的第一隐私数据,第二方具有所述各样本分别对应的第二隐私数据;安全统计包括,对所述各样本中符合总过滤条件的第一样本的第一隐私数据中的第一数据项进行统计运算,和/或,对所述第一样本的第二隐私数据中的第二数据项进行统计运算,所述总过滤条件包括,针对所述第一隐私数据的第一过滤条件和/或针对所述第二隐私数据的第二过滤条件;第一方的确定单元31首先根据目标样本的所述第一数据项,和/或,所述目标样本针对所述第一过滤条件的第一过滤结果的第一逻辑值,确定所述目标样本对应的第一乘法项;所述目标样本为所述样本集合中的任一样本;然后安全乘法单元32根据本方具有的所述第一乘法项,与所述第二方提供的第二乘法项,通过安全乘法的方式,得到所述第一乘法项和所述第二乘法项的第一乘积结果的第一分片;所述第二方得到所述第一乘积结果的第二分片;其中,所述第二乘法项由所述第二方根据所述目标样本的所述第二数据项,和/或,所述目标样本针对所述第二过滤条件的第二过滤结果的第二逻辑值确定的;最后统计单元33根据本方具有的所述样本集合中各样本的第一乘积结果的第一分片,与所述第二方具有的各样本的第一乘积结果的第二分片,通过多方安全计算的方式,进行样本统计运算。由上可见,本说明书实施例,针对样本数据垂直分布在多方的统计场景,通过安全乘法的方式,巧妙地把涉及两方数据的条件过滤和多种复杂的聚合统计融合在一起,支持两方复杂条件过滤,具有高效、低通信量的优点。此外,通过安全乘法的方式得到的乘积结果为两方分片的形式,便于基于该乘积结果,通过多方安全计算的方式,进行样本统计运算,支持多种统计运算,包括求和、计数、求极值等统计运算。整个过程中,不会泄露各方的隐私数据,能够同时满足安全性和实用性。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。