数据统计方法和装置与流程

文档序号:20029825发布日期:2020-02-28 10:15阅读:208来源:国知局
数据统计方法和装置与流程
本说明书涉及互联网
技术领域
,尤其涉及一种数据统计方法和装置。
背景技术
:大数据时代,存在非常多的数据孤岛。例如,一个自然人的数据,可以分散存储于不同的企业中,而企业与企业之间由于竞争关系和用户隐私保护的考虑,并不是完全的互相信任,这就为涉及企业之间数据合作的统计工作造成了障碍。如何在充分保护企业核心数据隐私的前提下,既能够利用双方拥有的数据完成一些数据统计计算,又不会泄露企业各自的数据隐私安全,成为一个亟待解决的迫切问题。技术实现要素:有鉴于此,本说明书提供一种数据统计方法和装置。具体地,本说明书是通过如下技术方案实现的:一种数据统计方法,所述方法应用于联合多个数据持有方之间的数据进行数据统计,所述数据持有方持有待计算统计值的数据,所述方法包括:将持有的数据拆分成n份子数据,n是小于数据持有方数量的自然数,且n大于等于2;根据交换规则,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换;在完成数据交换后,对持有的子数据进行求和,得到求和结果;联合所述多个数据持有方的求和结果计算所述统计值。一种数据统计装置,所述装置应用于联合多个数据持有方之间的数据进行数据统计,所述数据持有方持有待计算统计值的数据,所述装置包括:拆分单元,将持有的数据拆分成n份子数据,n是小于数据持有方数量的自然数,且n大于等于2;交换单元,根据交换规则,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换;求和单元,在完成数据交换后,对持有的子数据进行求和,得到求和结果;统计单元,联合所述多个数据持有方的求和结果计算所述统计值。一种数据统计装置,所述方法应用于联合多个数据持有方之间的数据进行数据统计,所述数据持有方持有待计算统计值的数据,所述装置包括:处理器;用于存储机器可执行指令的存储器;其中,通过读取并执行所述存储器存储的与数据统计逻辑对应的机器可执行指令,所述处理器被促使:将持有的数据拆分成n份子数据,n是小于数据持有方数量的自然数,且n大于等于2;根据交换规则,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换;在完成数据交换后,对持有的子数据进行求和,得到求和结果;联合所述多个数据持有方的求和结果计算所述统计值。由以上描述可以看出,本说明书各个数据持有方可将拆分后的n份子数据中的n-1份子数据与其他数据持有方进行数据交换,并可在完成数据交换后,对持有的子数据进行求和,然后联合多个数据持有方的求和结果计算统计值,从而在不泄露本端真实数据的基础上,实现多方安全计算。并且,n的取值小于数据持有方数量,通过对n的取值进行控制,可大大减少数据交换过程中的通信量,提高计算效率。附图说明图1是本说明书一示例性实施例示出的一种数据统计方法的流程示意图。图2是本说明书一示例性实施例示出的另一种数据统计方法的流程示意图。图3是本说明书一示例性实施例示出的一种虚拟环形结构示意图。图4是本说明书一示例性实施例示出的一种用于数据统计装置的一结构示意图。图5是本说明书一示例性实施例示出的一种数据统计装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。在大数据时代,多个数据持有方可以持有同一个统计对象的数据,在这种情况下,在对数据进行统计计算时,可能会涉及多个数据持有方,需要多个数据持有方合作完成数据统计。然而,由于不同企业之间的竞争关系或者隐私保护的考虑,在统计过程中不能泄露企业各自的数据。例如,同一个自然人可以在不同的p2p(peer-to-peer,互联网金融点对点借贷)平台借款,各p2p平台存储有该自然人在本平台的借款数额。在统计该自然人总共的借款数额时,往往需要联合多个p2p平台合作完成统计计算。在这个例子中,p2p平台是数据持有方,该自然人的借款数额是数据持有方持有的数据,该自然人总共的借款数额是待计算的统计值。又例如,每个共享单车平台都可以为用户提供单车使用服务,各共享单车平台存储有该平台每天共享单车的使用量。在统计某一天共享单车的使用总量时,往往需要联合多个共享单车平台完成统计计算。在这个例子中,共享单车平台是数据持有方,这一天共享单车的使用量是数据持有方持有的数据,这一天共享单车的使用总量是待计算的统计值。图1是本说明书一示例性实施例示出的一种数据统计方法的流程示意图。请参考图1,所述数据统计方法可以应用于数据持有方,包括有以下步骤:步骤102,将持有的数据拆分成n份子数据,n是小于数据持有方数量的自然数,且n大于等于2。在本实施例中,n的取值可由第三方指定,各数据持有方可根据秘密共享(secretsharing,ss)协议将自身持有的数据拆分成n份子数据。步骤104,根据交换规则,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换。在本实施例中,所述交换规则也可由第三方指定,基于所述交换规则,数据持有方可将拆分后的n份子数据中的n-1份子数据与其他数据持有方的子数据进行交换。例如,数据持有方可将拆分后的n份子数据中的n-1份子数据发送给其他数据持有方,并可接收其他数据持有方发送来的n-1份子数据,以完成数据交换。在完成数据交换后,每个数据持有方仍持有n份子数据。在本实施例中,第三方可在数据统计前,为每个数据持有方指定n-1个下游数据持有方。每个数据持有方在将持有的数据拆分成n份子数据之后,可以将其中n-1份子数据分别发送给所述n-1个下游数据持有方。假设,n的取值是3,数据持有方1的两个下游数据持有方是数据持有方2和数据持有方3。数据持有方1可将其持有的数据拆分成3份子数据,得到第一份子数据、第二份子数据和第三份子数据。数据持有方1可以保留第一份子数据,然后将第二份子数据和第三份子数据发送给两个下游数据持有方,例如,将第二份子数据发送给数据持有方2,将第三份子数据发送给数据持有方3。当然,也可以将第二份子数据发送给数据持有方3,将第三份子数据发送给数据持有方2,本说明书对此不作特殊限制。在本实施例中,根据数据走向,可将与数据持有方1进行数据交换的数据持有方分为两类,一类是前述下游数据持有方,可以接收数据持有方1发送的子数据;另一类可称之为上游数据持有方,可以向数据持有方1发送子数据。在本实施例中,每个数据持有方在将拆分后的n份子数据中的n-1份子数据分别发送给n-1个下游数据持有方的基础上,还可接收到n-1个上游数据持有方发送的子数据,以完成数据交换。所述数据持有方的n-1个上游数据持有方和n-1个下游数据持有方可以完全相同,也可以完全不同,也可以有部分交集,本说明书对此不作特殊限制。步骤106,在完成数据交换后,对持有的子数据进行求和,得到求和结果。在本实施例中,在完成数据交换后,各个数据持有方可对持有的n个子数据进行求和运算,得到求和结果。步骤108,联合所述多个数据持有方的求和结果计算统计值。由以上描述可以看出,本实施例各个数据持有方可将拆分后的n份子数据中的n-1份子数据与其他数据持有方进行数据交换,并可在完成数据交换后,对持有的子数据进行求和,然后联合多个数据持有方的求和结果计算统计值,从而在不泄露本端真实数据的基础上,实现多方安全计算。并且,n的取值小于数据持有方数量,通过对n的取值进行控制,可大大减少数据交换过程中的通信量,提高计算效率。下面以n的取值是3,联合6个数据持有方进行数据统计为例,对本说明书的实现过程进行详细描述。在本实施例中,可将这6个数据持有方称为数据持有方1、数据持有方2、…、数据持有方6。请参考图2,本实施例数据统计过程可以包括以下步骤:步骤202,第三方为每个数据持有方指定2个邻居数据持有方。在本实施例中,所述第三方独立于各个数据持有方,可为各个数据持有方指定上下游数据持有方,还可以联合所有数据持有方的求和结果计算统计值。在实际实现中,所述第三方提供的上述功能可以由一个平台来实现,也可以由不同的平台来实现,例如:由分配平台为各个数据持有方指定上下游数据持有方,由计算平台以联合所有数据持有方的求和结果计算统计值等,本说明书对此不作特殊限制。在本实施例中,第三方可以以数据持有方为节点,根据预定算法对数据持有方进行排列,将所有数据持有方排列成虚拟环形结构,然后根据该虚拟环形结构确定各个数据持有方的邻居数据持有方。所述邻居数据持有方既是上游数据持有方,又是下游数据持有方。所述预定算法可以是随机算法、也可以是基于ip地址的算法、也可以是基于节点id的算法等,本说明书对此不作特殊限制。请参考图3所示的虚拟环形结构,数据持有方1的邻居是数据持有方2和数据持有方6,数据持有方2的邻居是数据持有方1和数据持有方3,依次类推。在一个例子中,第三方可为各个数据持有方指定固定的邻居数据持有方。例如,第三方可将所有数据持有方组成图3所示的固定虚拟环形结构,在联合这6个数据持有方进行数据统计时,各个数据持有方的邻居数据持有方固定不变。采用固定邻居数据持有方的实现方式,第三方仅需对数据持有方进行一次排列,实现便捷。在另一个例子中,第三方可以在每次进行数据统计前,都重新为各个数据持有方指定邻居数据持有方。例如,第三方可在每次进行数据统计前,都根据随机算法将所有数据持有方组成随机的虚拟环形结构。又例如,第三方可以在第一次进行数据统计前,基于ip地址的算法将所有数据持有方组成虚拟环形结构a,在第二次进行数据统计前,基于节点id的算法将所有数据持有方组成虚拟环形结构b等。采用非固定邻居数据持有方的实现方式,可有效防止数据持有方之间的窜谋,确保数据持有方的数据隐私安全。步骤204,各数据持有方将持有的数据拆分成3份子数据。在本实施例中,各个数据持有方可根据秘密共享协议将其持有的数据拆分成3份子数据。例如,可通过构造多项式、取模等算法将其持有的数据拆分成3份子数据。表1请参考表1的示例,数据持有方1可将其持有的数据拆分成a1、a2和a3,数据持有方2可将其持有的数据拆分成b1、b2和b3等。步骤206,各数据持有方将3份子数据中的2份子数据分别发送给2个邻居数据持有方,以进行数据交换。在本实施例中,假设各个数据持有方均保留第一份子数据,将第二份子数据和第三方子数据发送给邻居数据持有方。仍以图3所示的虚拟环形结构为例,数据持有方1将a2发送给数据持有方2,将a3发送给数据持有方6,数据持有方2将b2发送给数据持有方3,将b3发送给数据持有方1,依次类推,在完成数据交换后,可形成表2所示的子数据持有示例。第一份子数据第二份子数据第三份子数据数据持有方1a1f2b3数据持有方2b1a2c3数据持有方3c1b2d3数据持有方4d1c2e3数据持有方5e1d2f3数据持有方6f1e2a3表2步骤208,各数据持有方对持有的子数据进行求和,得到求和结果。仍以表2为例,数据持有方1对a1、f2和b3进行求和得到s1,数据持有方对b1、a2和c3进行求和得到s2,依次类推,可形成表3的示例。表3步骤210,各数据持有方将所述求和结果发送给第三方。步骤212,第三方根据所有数据持有方的求和结果计算统计值。在本实施例中,数据持有方1将其求和结果s1发送给第三方,数据持有方2将其求和结果s2发送给第三方,依次类推,第三方可以接收到求和结果s1至s6。在本实施例中,第三方可以对s1至s6进行求和,然后根据秘密共享协议对求和结果进行计算,以得到最终统计值。采用第三方进行统计值计算的实现方式,计算效率较高。当然,在实际实现中,各个数据持有方也可以将其求和结果广播给其他数据持有方。这样,每个数据持有方都持有所有数据持有方的求和结果s1至s6,每个数据持有方都可对s1至s6进行求和,然后根据秘密共享协议对求和结果进行计算,以得到最终统计值。采用广播求和结果的实现方案,各个数据持有方可自行计算统计值,无需第三方进行统计计算。由以上描述可以看出,本实施例第三方可将各个数据持有方组成虚拟环形结构,然后根据该虚拟环形结构确定各个数据持有方的邻居数据持有方。在进行数据交换时,各个数据持有方与邻居数据持有方进行数据交换即可,在确保数据隐私安全的基础上,还可大大减少数据交换过程中的通信量,提高计算效率。在另一个例子中,仍以n的取值是3,联合6个数据持有方进行数据统计为例,第三方也可不为各个数据持有方指定邻居数据持有方,仅为各个数据持有方指定下游数据持有方即可。对于每个数据持有方而言,其上游数据持有方和下游数据持有方不相同。下游数据持有方数据持有方1数据持有方3、数据持有方6数据持有方2数据持有方4、数据持有方1数据持有方3数据持有方5、数据持有方2数据持有方4数据持有方6、数据持有方3数据持有方5数据持有方1、数据持有方4数据持有方6数据持有方2、数据持有方5表4请参考表4的示例,数据持有方1的下游数据持有方是数据持有方3和数据持有方6,其上游数据持有方是数据持有方2和数据持有方5等。基于表1和表4,仍假设各个数据持有方均保留第一份子数据,将第二份子数据和第三方子数据发送给下游数据持有方,可形成表5所示的子数据持有示例。第一份子数据第二份子数据第三份子数据数据持有方1a1e2b3数据持有方2b1f2c3数据持有方3c1a2d3数据持有方4d1b2e3数据持有方5e1c2f3数据持有方6f1d2a3表5基于表5的示例,各个数据持有方对交换后持有的子数据进行求和,再将求和结果发送给第三方,由第三方对各个数据持有方的求和结果进行计算,仍可得到最终的统计值。可选的,在联合6个数据持有方进行数据统计时,n的取值也可以是4,第三方可为每个数据持有方指定3个下游数据持有方。类似的,n的取值也可以是5,第三方可为每个数据持有方指定4个下游数据持有方等,本说明书对此不作特殊限制。与前述数据统计方法的实施例相对应,本说明书还提供了数据统计装置的实施例。本说明书数据统计装置的实施例可以应用在数据持有方部署的服务器或者服务器集群上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在服务器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书数据统计装置所在服务器的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的服务器通常根据该服务器的实际功能,还可以包括其他硬件,对此不再赘述。图5是本说明书一示例性实施例示出的一种数据统计装置的框图。请参考图5,所述数据统计装置400可以应用在前述图4所示的服务器中,包括有:拆分单元401、交换单元402、求和单元403和统计单元404。其中,拆分单元401,将持有的数据拆分成n份子数据,n是小于数据持有方数量的自然数,且n大于等于2;交换单元402,根据交换规则,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换;求和单元403,在完成数据交换后,对持有的子数据进行求和,得到求和结果;统计单元404,联合所述多个数据持有方的求和结果计算所述统计值。可选的,所述交换单元402,将所述n份子数据中的n-1份子数据分别发送给n-1个下游数据持有方;接收n-1个上游数据持有方发送的子数据,以完成数据交换。可选的,所述n-1个下游数据持有方和所述n-1个上游数据持有方由第三方在数据统计前根据预定算法指定。可选的,当n等于3时,所述交换单元402,将3份子数据中的2份子数据分别发送给邻居数据持有方;接收所述邻居数据持有方发送的子数据,以完成数据交换;其中,所述邻居数据持有方由第三方在将所有数据持有方组成虚拟环形结构后确定。可选的,所述统计单元404,广播所述求和结果,并接收其他数据持有方广播的求和结果;对所有数据持有方的求和结果进行计算,得到所述统计值。可选的,所述统计单元404,将所述求和结果发送给第三方,由第三方对所有数据持有方的求和结果进行计算,得到所述统计值。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。与前述数据统计方法的实施例相对应,本说明书还提供一种数据统计装置,该数据统计装置包括:处理器以及用于存储机器可执行指令的存储器。其中,处理器和存储器通常借由内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。在本实施例中,通过读取并执行所述存储器存储的与数据统计逻辑对应的机器可执行指令,所述处理器被促使:将持有的数据拆分成n份子数据,n是小于数据持有方数量的自然数,且n大于等于2;根据交换规则,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换;在完成数据交换后,对持有的子数据进行求和,得到求和结果;联合所述多个数据持有方的求和结果计算所述统计值。可选的,所述根据交换规则,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换,包括:将所述n份子数据中的n-1份子数据分别发送给n-1个下游数据持有方;接收n-1个上游数据持有方发送的子数据,以完成数据交换。可选的,所述n-1个下游数据持有方和所述n-1个上游数据持有方由第三方在数据统计前根据预定算法指定。可选的,当n等于3时,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换,包括:将3份子数据中的2份子数据分别发送给邻居数据持有方;接收所述邻居数据持有方发送的子数据,以完成数据交换;其中,所述邻居数据持有方由第三方在将所有数据持有方组成虚拟环形结构后确定。可选的,所述联合所述多个数据持有方的求和结果计算所述统计值,包括:广播所述求和结果,并接收其他数据持有方广播的求和结果;对所有数据持有方的求和结果进行计算,得到所述统计值。可选的,所述联合所述多个数据持有方的求和结果计算所述统计值,包括:将所述求和结果发送给第三方,由第三方对所有数据持有方的求和结果进行计算,得到所述统计值。与前述数据统计方法的实施例相对应,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下步骤:将持有的数据拆分成n份子数据,n是小于数据持有方数量的自然数,且n大于等于2;根据交换规则,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换;在完成数据交换后,对持有的子数据进行求和,得到求和结果;联合所述多个数据持有方的求和结果计算所述统计值。可选的,所述根据交换规则,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换,包括:将所述n份子数据中的n-1份子数据分别发送给n-1个下游数据持有方;接收n-1个上游数据持有方发送的子数据,以完成数据交换。可选的,所述n-1个下游数据持有方和所述n-1个上游数据持有方由第三方在数据统计前根据预定算法指定。可选的,当n等于3时,将所述n份子数据中的n-1份子数据与指定的数据持有方进行数据交换,包括:将3份子数据中的2份子数据分别发送给邻居数据持有方;接收所述邻居数据持有方发送的子数据,以完成数据交换;其中,所述邻居数据持有方由第三方在将所有数据持有方组成虚拟环形结构后确定。可选的,所述联合所述多个数据持有方的求和结果计算所述统计值,包括:广播所述求和结果,并接收其他数据持有方广播的求和结果;对所有数据持有方的求和结果进行计算,得到所述统计值。可选的,所述联合所述多个数据持有方的求和结果计算所述统计值,包括:将所述求和结果发送给第三方,由第三方对所有数据持有方的求和结果进行计算,得到所述统计值。上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1