一种数据统计方法和装置
技术领域
本公开涉及网络技术领域,特别涉及一种数据统计方法和装置。
背景技术
大数据时代,存在非常多的数据孤岛。例如,一个自然人的数据,可以分散存储于不同的企业中,而企业与企业之间由于竞争关系和用户隐私保护的考虑,并不是完全的互相信任,这就为涉及企业之间数据合作的统计工作造成了障碍。如何在充分保护企业核心数据隐私的前提下,既能够利用双方拥有的数据完成一些数据统计计算,又不会泄露企业各自的数据隐私安全,成为一个亟待解决的迫切问题。但是目前并没有很好的解决方案。
发明内容
有鉴于此,本公开提供一种数据统计方法和装置,以在保护两个数据拥有方的数据隐私的基础上,实现两方安全计算。
具体地,本说明书一个或多个实施例是通过如下技术方案实现的:
第一方面,提供一种数据统计方法,所述方法应用于联合本地数据方和合作数据方的数据进行数据统计,本地数据方具有待求取极值的多个第一数据,所述多个第一数据分别对应不同的数据标识,合作数据方具有所述数据标识对应的多个第二数据,所述方法包括:
将所述多个第一数据分别对应的数据标识和排序号,发送至所述合作数据方,所述排序号用于标识所述多个第一数据之间的排序位置;
接收所述合作数据方返回的极值排序号,所述极值排序号是合作数据方由标识交集中的各个数据标识对应的多个排序号中获取,所述标识交集是由所述多个第一数据对应的多个数据标识中选择的对应合作数据方参与数据统计的第二数据的标识;
根据所述极值排序号,获取对应所述极值排序号的本地数据方的第一数据。
第二方面,提供一种数据统计方法,所述方法应用于联合本地数据方和统计数据方的数据进行数据统计,统计数据方具有待求取极值的多个第一数据,所述多个第一数据分别对应不同的数据标识,本地数据方具有所述数据标识对应的多个第二数据;所述方法包括:
接收统计数据方发送的数据标识和排序号,所述数据标识是统计数据方参与数据统计的多个第一数据对应的标识,所述排序号用于标识多个第一数据之间的排序位置;
根据本地数据方参与数据统计的多个第二数据对应的数据标识、以及所述多个第一数据的数据标识,确定标识交集;
根据所述标识交集中的各个数据标识对应的排序号,获取极值排序号;
将所述极值排序号发送至统计数据方,以使得统计数据方根据极值排序号得到对应的作为极值的第一数据。
第三方面,提供一种数据统计方法,所述方法用于在本地数据方与合作数据方之间进行数据统计,所述本地数据方存储数据标识对应的第一数据,所述合作数据方存储同一数据标识对应的第二数据;并且,所述方法应用于在多个第一数据中获取极值;所述方法包括:
将本地参与数据统计的多个第一数据分别对应的数据标识,根据密钥交换协议进行本地私钥处理,得到本地处理标识;
将所述多个第一数据分别对应的本地处理标识和排序号,发送至所述合作数据方,以使得所述合作数据方对所述本地处理标识进行对端私钥处理后生成第一密钥处理标识,并存储所述第一密钥处理标识和排序号的对应关系,所述排序号用于标识所述多个第一数据之间的排序位置;
接收所述合作数据方发送的对端处理标识,所述对端处理标识是所述合作数据方对参与数据统计的第二数据的数据标识进行对端私钥处理得到;
对所述对端处理标识进行本地私钥处理后,生成第二密钥处理标识,并将所述第二密钥处理标识发送至所述合作数据方;
接收所述合作数据方发送的极值排序号,所述极值排序号是所述合作数据方由第一密钥处理标识和第二密钥处理标识的交集对应的各个排序号中获得;
根据所述极值排序号,得到对应的作为极值的第一数据。
第四方面,提供一种数据统计方法,所述方法用于在本地数据方与统计数据方之间进行数据统计,所述统计数据方具有数据标识对应的第一数据,所述本地数据方存储同一所述数据标识对应的第二数据,并且,所述方法应用于在多个第一数据中获取极值;所述方法包括:
接收所述统计数据方发送的对端处理标识和排序号,所述对端处理标识是所述统计数据方对参与数据统计的第一数据的数据标识根据密钥交换协议进行对端私钥处理得到,所述排序号用于标识所述第一数据的排序位置;
对所述对端处理标识根据密钥交换协议进行本地私钥运算,生成第一密钥处理标识,并存储所述第一密钥处理标识和排序号的对应关系;
将本地参与数据统计的多个第二数据分别对应的数据标识,根据密钥交换协议进行本地私钥处理,得到多个本地处理标识;
将所述本地处理标识发送至统计数据方,并接收所述统计数据方返回的第二密钥处理标识,所述第二密钥处理标识是所述统计数据方对所述本地处理标识进行对端私钥处理得到;
获取所述第一密钥处理标识和第二密钥处理标识的标识交集对应的各个排序号,并确定所述各个排序号中的极值排序号;
将所述极值排序号发送至所述统计数据方,以使得所述统计数据方根据所述极值排序号得到对应的作为极值的第一数据。
第五方面,提供一种数据统计装置,所述装置用于联合本地数据方和合作数据方的数据进行数据统计,本地数据方具有待求取极值的多个第一数据,所述多个第一数据分别对应不同的数据标识,合作数据方具有所述数据标识对应的多个第二数据,所述装置包括:
数据发送模块,用于将所述多个第一数据分别对应的数据标识和排序号,发送至所述合作数据方,所述排序号用于标识多个第一数据之间的排序位置;
序号接收模块,用于接收所述合作数据方返回的极值排序号,所述极值排序号是合作数据方由标识交集中的各个数据标识对应的多个排序号中获取,所述标识交集是由所述多个第一数据对应的多个数据标识中选择的对应合作数据方参与数据统计的第二数据的标识;
数据确定模块,用于根据所述极值排序号,获取对应所述极值排序号的本地数据方的第一数据。
第六方面,提供一种数据统计装置,所述装置应用于联合本地数据方和统计数据方的数据进行数据统计,统计数据方具有待求取极值的多个第一数据,所述多个第一数据分别对应不同的数据标识,本地数据方具有所述数据标识对应的多个第二数据,所述装置包括:
数据接收模块,用于接收统计数据方发送的数据标识和排序号,所述数据标识是统计数据方参与数据统计的多个第一数据对应的标识,所述排序号用于标识多个第一数据之间的排序位置;
交集确定模块,用于根据本地数据方参与数据统计的多个第二数据对应的数据标识、以及所述多个第一数据的数据标识,确定标识交集;
序号确定模块,用于根据所述标识交集中的各个数据标识对应的排序号,获取极值排序号;
序号发送模块,用于将所述极值排序号发送至统计数据方,以使得统计数据方根据极值排序号得到对应的作为极值的第一数据。
第七方面,提供一种数据统计装置,所述装置用于在本地数据方与合作数据方之间进行数据统计,所述本地数据方存储数据标识对应的第一数据,所述合作数据方存储同一所述数据标识对应的第二数据;并且,所述方法应用于在多个第一数据中获取极值;所述装置包括:
私钥处理模块,用于将本地参与数据统计的多个第一数据分别对应的数据标识,根据密钥交换协议进行本地私钥处理,得到多个本地处理标识;
序号发送模块,用于将所述多个第一数据分别对应的本地处理标识和排序号,发送至所述合作数据方,以使得所述合作数据方对所述本地处理标识进行对端私钥处理后生成第一密钥处理标识,并存储所述第一密钥处理标识和排序号的对应关系,所述排序号用于标识所述多个第一数据之间的排序位置;
标识接收模块,用于接收所述合作数据方发送的对端处理标识,所述对端处理标识是所述合作数据方对参与数据统计的第二数据的数据标识进行对端私钥处理得到;
密钥合作模块,用于对所述对端处理标识进行本地私钥处理后,生成第二密钥处理标识,并将所述第二密钥处理标识发送至所述合作数据方;
序号接收模块,用于接收所述合作数据方发送的极值排序号,所述极值排序号是所述合作数据方由第一密钥处理标识和第二密钥处理标识的标识交集对应的各个排序号中获得;
极值确定模块,用于根据极值排序号,得到对应的作为极值的第一数据。
第八方面,提供一种数据统计装置,所述装置用于在本地数据方与合作数据方之间进行数据统计,所述本地数据方具有数据标识对应的第一数据,所述合作数据方具有同一所述数据标识对应的第二数据;并且,所述方法应用于在多个第一数据中获取极值;所述装置包括:
数据接收模块,用于接收所述统计数据方发送的对端处理标识和排序号,所述对端处理标识是所述统计数据方对数据标识根据密钥交换协议进行对端私钥处理得到,所述数据标识对应参与数据统计的第一数据,所述排序号用于标识所述第一数据的排序位置;
密钥处理模块,用于对所述对端处理标识根据密钥交换协议进行本地私钥运算,生成第一密钥处理标识,并存储第一密钥处理标识和排序号的对应关系;
标识处理模块,用于将本地参与数据统计的多个第二数据分别对应的数据标识,根据密钥交换协议进行本地私钥处理,得到多个本地处理标识;
合作处理模块,用于将所述本地处理标识发送至统计数据方,并接收所述统计数据方返回的第二密钥处理标识,所述第二密钥处理标识是所述统计数据方对本地处理标识进行对端私钥处理得到;
极值获取模块,用于获取所述第一密钥处理标识和第二密钥处理标识的交集对应的各个排序号,并确定所述各个排序号中的极值排序号;
极值发送模块,用于将所述极值排序号发送至所述统计数据方,以使得所述统计数据方根据所述极值排序号得到对应的作为极值的第一数据。
第九方面,提供一种数据统计设备,所述设备包括存储器、处理器,以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行指令时实现以下步骤:
将所述多个第一数据分别对应的数据标识和排序号,发送至所述合作数据方,所述排序号用于标识所述多个第一数据之间的排序位置;
接收所述合作数据方返回的极值排序号,所述极值排序号是合作数据方由标识交集中的各个数据标识对应的多个排序号中获取,所述标识交集是由所述多个第一数据对应的多个数据标识中选择的对应合作数据方参与数据统计的第二数据的标识;
根据所述极值排序号,获取对应所述极值排序号的本地数据方的第一数据。
本说明书一个或多个实施例的数据统计方法和装置,通过在极值统计时将排序号发送至对端,使得只暴露一个排序号给对端,既实现了对极值的统计,又有效保护了参与统计的双方的数据安全,实现了在保护两个数据拥有方的数据隐私的基础上,实现两方安全计算。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例提供的一种数据统计方法的流程图;
图2为本说明书一个或多个实施例提供的一种数据统计方法的流程图;
图3为本说明书一个或多个实施例提供的一种数据统计装置的结构示意图;
图4为本说明书一个或多个实施例提供的一种数据统计装置的结构示意图;
图5为本说明书一个或多个实施例提供的一种数据统计装置的结构示意图;
图6为本说明书一个或多个实施例提供的一种数据统计装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
在大数据时代,数据的存储方式可以是垂直模式,即多个数据拥有方可以拥有同一个实体的不同属性信息,例如,同一个自然人的车险分在一个机构,该自然人的理赔金额在另一个机构。这种垂直模式的数据存储,可能导致在进行一些数据统计计算时,会涉及到多个数据拥有方,需要多个数据拥有方合作完成一次数据统计。然而,由于不同企业之间的竞争关系或者隐私保护的考虑,不能泄露企业各自的数据秘密。
本公开的例子中,旨在基于不同的数据拥有方的数据进行数据统计,同时又不会泄露数据拥有方各自的数据隐私。如下以一个示例性的应用场景详细描述该方法,但是该方法并不局限于该应用场景。
应用场景:
以车险的保险分的数据统计为例,并且该例子中可以有两个数据源,分别为:数据源A和数据源B。假设数据源A可以是一个数据机构,数据源B可以是一个保险机构,这两个数据源可以分别存储同一个车主的不同信息。
数据源A:假设该数据源A可以存储每个车主的车险分,车险分可以是对车主进行精准画像和风险分析后得到的分数,车险分的分数越高,可以表明风险越低。如表1所示,数据源A侧存储车险分的数据结构如下:
表1数据源A的数据结构
列名 |
类型 |
说明 |
示例 |
idcard_no |
string |
身份证号 |
******197309119564 |
score |
int |
车险分 |
510 |
数据源B:假设该数据源B可以存储每个车主的理赔信息,例如,车主的理赔信息可以包括理赔次数、理赔金额等。如表2所示,数据源B侧存储的每个车主的数据结构如下:
表2数据源B的数据结构
列名 |
类型 |
说明 |
示例 |
idcard_no |
string |
身份证号 |
******197309119564 |
gender |
string |
性别 |
female |
times |
int |
最近一年理赔次数 |
3 |
amount |
int |
理赔金额 |
3500 |
基于上述的应用场景,在对车险的保险分做极值统计时,可以基于数据源A和数据源B的数据,共同完成极值统计。
例如,假设一次统计工作的需求是“统计理赔次数大于5次的女性用户最大的保险分”,那么,根据“最大的保险分”,表明这是一次对数据源A中的数据的极值统计,极值即最大值或者最小值,而“理赔次数大于5次的女性用户”表明可以将数据源B中的数据作为极值获取的过滤条件,即需要获取满足该过滤条件的用户中的最大保险分。这种满足某种过滤条件的情况下的求最大值或者最小值,可以称为“条件极值”。
基于表1所示的数据结构,假设数据源A拥有的车险分数据如下表3,其中,idcard_no可以是车主的身份证号,score可以是该车主的车险分。
表3数据源A的数据
idcard_no |
score |
1234567 |
490 |
2345678 |
501 |
3456789 |
530 |
基于表2所示的数据结构,假设数据源B拥有的数据如下表4:
表4数据源B的数据
idcard_no |
gender |
times |
amount |
1234567 |
男 |
3 |
5000 |
2345678 |
女 |
7 |
23000 |
3456789 |
女 |
6 |
16000 |
假设要基于上述表3和表4,统计理赔次数大于5次的女性用户最大的保险分。还可以看到,本次统计工作的统计数据“保险分”存储在数据源A,表3中的score这一列可以称为“统计列”,即要对这一列的数据进行极值统计,求取最大值。而过滤条件中的“理赔次数”、“女性”都存储在数据源B,因此,需要数据源A和数据源B合作完成对保险分的极值统计。
在如下对数据统计方法的描述中,可以将拥有统计数据“保险分”的数据源A称为统计数据方,可以将另一个数据源B称为合作数据方。并且,上面提到过,这两个数据源可以分别存储同一个车主的不同信息,可以将数据源A中存储的参与本次数据极值统计的车主信息(例如,保险分score)称为第一数据,将数据源B中存储的参与数据统计的车主信息(例如,性别、最近一年理赔次数、理赔金额)称为第二数据。此外,数据源A和数据源B中都包括的身份证号idcard_no可以称为数据标识,即数据源A可以存储该数据标识对应的第一数据,数据源B可以存储该同一数据标识对应的第二数据。
图1示例了一种数据统计方法的流程,如图1所示,该方法可以包括:
在步骤100中,统计数据方将多个第一数据分别对应的数据标识和排序号,发送至合作数据方,该排序号用于标识多个第一数据之间的排序位置。
本步骤中的多个第一数据,可以是统计数据方要参与数据统计的数据,这些数据可以是根据统计数据方的数据过滤条件选择得到。例如,统计数据方可以预先将参与统计的多个第一数据之间根据大小顺序进行排序,并根据排序结果确定各个第一数据分别对应的排序号。
在步骤102中,合作数据方根据本地数据方参与数据统计的多个第二数据对应的数据标识、以及所述多个第一数据的数据标识,确定标识交集。
本步骤中,合作数据方可以根据本地过滤条件,选择得到要参与本次数据统计的第二数据,并得到这些第二数据对应的数据标识。结合在步骤100中接收到的统计数据方发送的数据标识,将这两部分数据标识的交集称为标识交集,标识交集中可以包括至少一个数据标识,标识交集中的每个数据标识对应的第一数据是统计数据方要参与数据统计的数据,且该数据标识对应的第二数据是合作数据方要参与数据统计的数据。
在步骤104中,合作数据方根据所述标识交集中的各个数据标识对应的排序号,获取极值排序号。
本步骤中,合作数据方可以对标识交集中的各个数据标识对应的排序号进行比较,获取极值排序号,比如最大的排序号或者最小的排序号。
在步骤106中,合作数据方将极值排序号发送至统计数据方。
在步骤108中,统计数据方根据所述极值排序号,获取对应所述极值排序号的本地数据方的第一数据。
本例子的数据统计方法,通过将排序号发送至对端,使得对端根据排序号返回最大排序号或最小排序号即可,既实现了对端的数据过滤,并且实现了极值的统计,而且还不会暴露统计数据方的真实数据,保护了两个数据拥有方的数据隐私。
在另一个例子中,为了对两个数据拥有方的数据隐私提供更安全的保护,还可以在本地数据方和合作数据方之间进行数据传输时,对数据标识按照密钥交换协议进行加密处理。例如,统计数据方可以利用本地私钥对数据标识进行本地私钥处理后,发送至对端,以使得对端继续对数据标识进行对端私钥处理。统计数据方还可以接收合作数据方发送的经过对端私钥处理的数据标识,并继续对该数据标识进行本端私钥处理后,返回至合作数据方。经过双方对数据标识进行密钥交换协议的处理,可以避免暴露数据标识,提供更安全的保护。
图2示例了一种数据统计方法的流程,该流程可以基于表3和表4,统计理赔次数大于5次的女性用户最大的保险分,并且,该例子以将极值统计和密钥交换的处理进行结合为例,如图2所示,该方法可以包括:
在步骤200中,统计数据方对本地参与数据统计的多个第一数据,生成分别与该第一数据对应的排序号。
本例子中,数据源A是统计方数据源,存储有要待求极值的数据score。如表3所示,score所在列可以称为统计列,其中每一个车险分可以称为第一数据。
在一个例子中,数据源A可以是统计表3中的统计列score中的最大值,即统计490、501、530这三个车险分中的最大值。可以将490、501、530这三个车险分称为“本地参与数据统计的三个第一数据”。
在另一个例子中,数据源A还可以根据预定的数据过滤条件,选择部分车险分统计极值。例如,可以求取501和530这两个车险分中的最大值。
本步骤中,数据源A可以在确定本地参与数据统计的多个第一数据的基础上,对该多个第一数据按照大小顺序进行排序,并根据排序结果,生成分别与各个第一数据对应的排序号。
例如,表3中的三个车险分,按照由小到大的顺序排列为490<501<530。由此,可以确定各个车险分的排序号如下表5所示。其中,车险分越小,排序号也相应越小,即排序号可以标识各个第一数据之间的排序位置。
表5排序号和对应的第一数据
第一数据 |
排序号 |
490 |
1 |
501 |
2 |
530 |
3 |
上述排序号的生成,可以在线生成,也可以离线生成。离线提前生成统计列中的各个第一数据对应的排序号,有利于减少在线统计计算时的工作量,提高统计计算的效率。
在步骤202中,统计数据方将本地参与数据统计的多个第一数据分别对应的数据标识,根据密钥交换协议进行本地私钥处理,得到多个第一处理标识。
本步骤中,表3中与车险分score对应的身份证号idcard_no,可以称为与第一数据对应的数据标识。为了保护数据源A和数据源B双方的明细数据***露,可以利用密钥交换协议(例如,可以采用迪菲-赫尔曼密钥交换Diffie–Hellman key exchange,简称“D–H”),对上述的数据标识进行处理。
例如,可以对idcard_no做hash,得到H(K)。同时数据源A可以生成密钥交换协议中自己的私钥α,并进行本地私钥处理,该处理可以是对H(k)做α指数运算,得到H(k)α,该H(k)α可以称为第一处理标识。
以数据源A将统计列的全部第一数据参与本次极值统计为例,经过本步骤的处理后,数据源A可以得到参与统计的各个第一数据对应的排序号和第一处理标识。如下表6所示,H(k)α即Hash(idcard_no)α是第一处理标识,N即排序号。以表3中的第一位车主为例,该车主的车险分490,对应的排序号是1,该车险分490对应的数据标识是1234567,对该数据标识进行哈希和本地私钥处理后,得到第一处理标识H(1234567)α。
表6第一处理标识和排序号
在步骤204中,统计数据方将所述多个第一数据分别对应的第一处理标识和排序号,发送至所述合作数据方。
本步骤中,数据源A可以将表6中的数据,发送至数据源B。
在步骤206中,合作数据方对所述第一处理标识根据密钥交换协议进行本地私钥运算,生成第一密钥处理标识,并存储所述第一密钥处理标识和排序号的对应关系。
本步骤中,数据源B在接收到表6的数据后,根据密钥交换协议,可以生成数据源B本地的私钥β,并利用该私钥β对第一处理标识H(k)α进行本地私钥运算,即做指数运算,得到H(k)αβ。该H(k)αβ可以称为第一密钥处理标识。经过本步骤的β指数运算处理后,表6就可以变换为表7,如下:
表7第一密钥处理标识和排序号
Hash(idcard_no)<sup>αβ</sup> |
N |
H(1234567)<sup>αβ</sup> |
1 |
H(2345678)<sup>αβ</sup> |
2 |
H(3456789)<sup>αβ</sup> |
3 |
在步骤208中,合作数据方对本地参与数据统计的多个第二数据分别对应的数据标识,根据密钥交换协议进行本地私钥处理,得到多个第二处理标识。
本步骤中,数据源B也可以确定本地参与数据统计的多个第二数据。例如,可以是全部的数据,也可以是根据预定的过滤条件进行本地过滤得到的数据。
例如,预定的过滤条件是“理赔次数大于5次的女性用户”,根据该条件可以对表4中的数据做筛选,可以得到表4中后两行数据要参与统计。amount列中的“女、7、23000”、“女、6、16000”可以称为第二数据。这两个第二数据对应的数据标识可以分别是2345678和3456789。
数据源B可以对上述的数据标识分别做hash,得到H(K),再根据密钥交换协议,对对H(k)做β指数运算,该β是数据源B的私钥,得到H(k)β。该H(k)β可以称为第二处理标识。如下表8所示:
表8第二处理标识
Hash(idcard_no)β |
H(2345678)β |
H(3456789)β |
在步骤210中,合作数据方将所述第二处理标识发送至统计数据方。
本步骤中,数据源B可以将上述表8中的数据发送至数据源A。
在步骤212中,统计数据方对第二处理标识进行本地私钥处理后,生成第二密钥处理标识。
例如,数据源A接收到表8中的Hash(idcard_no)β后,可以再利用数据源A的本地私钥处理,生成第二密钥处理标识Hash(idcard_no)βα,如下表9所示。
表9第二密钥处理标识
Hash(idcard_no)βα |
H(2345678)βα |
H(3456789)βα |
在步骤214中,统计数据方将第二密钥处理标识发送至合作数据方。
在步骤216中,合作数据方获取所述第一密钥处理标识和第二密钥处理标识的交集对应的各个排序号,并确定所述各个排序号中的极值排序号。
本步骤中,数据源B可以将表9中的第二密钥处理标识与表7中的第一密钥处理标识求取交集,数值相同的Hash(idcard_no)βα和Hash(idcard_no)αβ,表示对应的是同一个idcard_no,即该相同的idcard_no代表的车主既满足统计方数据源参与统计的数据的过滤条件,也满足合作数据源参与统计数据的过滤条件。根据交集,并结合表7中的第一密钥处理标识和排序号的对应关系,可以得到交集中的第一密钥处理标识对应的排序号。如下表10所示,假设表10中包括交集部分,以及交集对应的各个排序号。
表10交集和对应的排序号
Hash(idcard_no)αβ |
Hash(idcard_no)βα |
N |
H(2345678)αβ |
H(2345678)βα |
2 |
H(3456789)αβ |
H(3456789)βα |
3 |
根据表10,可以确定上述交集中对应的各个排序号中的极值排序号,例如,当求最大保险分时,极值排序号可以是最大的排序号。本步骤的极值排序号是3。
在步骤218中,合作数据方将所述极值排序号发送至所述统计数据方。
例如,数据源B可以将上述极值排序号N=3发送至数据源A。
在步骤220中,统计数据方根据所述极值排序号得到对应的作为极值的第一数据。
例如,数据源A在接收到极值排序号N=3时,可以根据表5,确定与排序号3对应的第一数据是530,即530是所要统计得到的最大保险分。
本例子的数据统计方法,在极值统计时通过将排序号发送至对端,使得只暴露一个排序号给对端,有效保护了本端的数据安全;并且,采用了密钥交换协议保护所有过滤筛选字段的隐私安全。本方案既实现了对极值的统计,又保护了参与统计的双方的数据安全。比如,在上述的例子中,保险机构不能知道某个idcard_no的车主的保险分的具体分数,同时数据机构也不能知道某个idcard_no的车主在上述保险机构的理赔次数等信息。
为了实现上述的方法,本说明书一个或多个实施例还提供了一种数据统计装置,该装置应用于联合本地数据方和合作数据方的数据进行数据统计,本地数据方具有待求取极值的多个第一数据,所述多个第一数据分别对应不同的数据标识,合作数据方具有所述数据标识对应的多个第二数据。如图3所示,该装置可以包括:数据发送模块31、序号接收模块32和数据确定模块33。
数据发送模块31,用于将所述多个第一数据分别对应的数据标识和排序号,发送至所述合作数据方,所述排序号用于标识多个第一数据之间的排序位置;
序号接收模块32,用于接收所述合作数据方返回的极值排序号,所述极值排序号是合作数据方由标识交集中的各个数据标识对应的多个排序号中获取,所述标识交集是由所述多个第一数据对应的多个数据标识中选择的对应合作数据方参与数据统计的第二数据的标识;
数据确定模块33,用于根据所述极值排序号,获取对应所述极值排序号的本地数据方的第一数据。
为了实现上述的方法,本说明书一个或多个实施例还提供了一种数据统计装置,该装置应用于联合本地数据方和统计数据方的数据进行数据统计,统计数据方具有待求取极值的多个第一数据,所述多个第一数据分别对应不同的数据标识,本地数据方具有所述数据标识对应的多个第二数据。如图4所示,该装置可以包括:数据接收模块41、交集确定模块42、序号确定模块43和序号发送模块44。
数据接收模块41,用于接收统计数据方发送的数据标识和排序号,所述数据标识是统计数据方参与数据统计的多个第一数据对应的标识,所述排序号用于标识多个第一数据之间的排序位置;
交集确定模块42,用于根据本地数据方参与数据统计的多个第二数据对应的数据标识、以及所述多个第一数据的数据标识,确定标识交集;
序号确定模块43,用于根据所述标识交集中的各个数据标识对应的排序号,获取极值排序号;
序号发送模块44,用于将所述极值排序号发送至统计数据方,以使得统计数据方根据极值排序号得到对应的作为极值的第一数据。
为了实现上述的方法,本说明书一个或多个实施例还提供了一种数据统计装置,如图5所示,该装置可以包括:私钥处理模块51、序号发送模块52、标识接收模块53、密钥合作模块54、序号接收模块55和极值确定模块56。
私钥处理模块51,用于将本地参与数据统计的多个第一数据分别对应的数据标识,根据密钥交换协议进行本地私钥处理,得到多个第一处理标识;
序号发送模块52,用于将所述多个第一数据分别对应的第一处理标识和排序号,发送至所述合作数据方,以使得所述合作数据方对所述第一处理标识进行对端私钥处理后生成第一密钥处理标识,并存储所述第一密钥处理标识和排序号的对应关系,所述排序号用于标识所述多个第一数据之间的排序位置;
标识接收模块53,用于接收所述合作数据方发送的第二处理标识,所述第二处理标识是所述合作数据方对参与数据统计的第二数据的数据标识进行对端私钥处理得到;
密钥合作模块24,用于对所述第二处理标识进行本地私钥处理后,生成第二密钥处理标识,并将所述第二密钥处理标识发送至所述合作数据方;
序号接收模块25,用于接收所述合作数据方发送的极值排序号,所述极值排序号是所述合作数据方由第一密钥处理标识和第二密钥处理标识的交集对应的各个排序号中获得;
极值确定模块26,用于根据极值排序号,得到对应的作为极值的第一数据。
在一个例子中,该装置还可以包括:
序号生成模块,用于将本地参与数据统计的多个第一数据,按照大小顺序进行排序;并根据排序结果,生成分别与所述多个第一数据对应的排序号。
数据过滤模块,用于根据预定的数据过滤条件,选择得到所述本地参与数据统计的多个第一数据。
为了实现上述的方法,本说明书一个或多个实施例还提供了一种数据统计装置,如图6所示,该装置可以包括:数据接收模块61、密钥处理模块62、标识处理模块63、合作处理模块64、极值获取模块65和极值发送模块66。
数据接收模块61,用于接收所述统计数据方发送的第一处理标识和排序号,所述第一处理标识是所述统计数据方对数据标识根据密钥交换协议进行对端私钥处理得到,所述数据标识对应参与数据统计的第一数据,所述排序号用于标识所述第一数据的排序位置;
密钥处理模块62,用于对第一处理标识根据密钥交换协议进行本地私钥运算,生成第一密钥处理标识,并存储第一密钥处理标识和排序号的对应关系;
标识处理模块63,用于将本地参与数据统计的多个第二数据分别对应的数据标识,根据密钥交换协议进行本地私钥处理,得到多个第二处理标识;
合作处理模块64,用于将所述第二处理标识发送至统计数据方,并接收所述统计数据方返回的第二密钥处理标识,所述第二密钥处理标识是所述统计数据方对第二处理标识进行对端私钥处理得到;
极值获取模块45,用于获取所述第一密钥处理标识和第二密钥处理标识的交集对应的各个排序号,并确定所述各个排序号中的极值排序号;
极值发送模块46,用于将所述极值排序号发送至所述统计数据方,以使得所述统计数据方根据所述极值排序号得到对应的作为极值的第一数据。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述方法实施例所示流程中的各个步骤,其执行顺序不限制于流程图中的顺序。此外,各个步骤的描述,可以实现为软件、硬件或者其结合的形式,例如,本领域技术人员可以将其实现为软件代码的形式,可以为能够实现所述步骤对应的逻辑功能的计算机可执行指令。当其以软件的方式实现时,所述的可执行指令可以存储在存储器中,并被设备中的处理器执行。
例如,对应于上述方法,本说明书一个或多个实施例同时提供一种数据统计设备,该设备可以包括处理器、存储器、以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器通过执行所述指令,用于实现如下步骤:
将所述多个第一数据分别对应的数据标识和排序号,发送至所述合作数据方,所述排序号用于标识所述多个第一数据之间的排序位置;
接收所述合作数据方返回的极值排序号,所述极值排序号是合作数据方由标识交集中的各个数据标识对应的多个排序号中获取,所述标识交集是由所述多个第一数据对应的多个数据标识中选择的对应合作数据方参与数据统计的第二数据的标识;
根据所述极值排序号,获取对应所述极值排序号的本地数据方的第一数据。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、***、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于服务端设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。