数据交互方法、装置和电子设备
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据交互方法、装置和电子设备。
背景技术
大数据时代,存在非常多的数据孤岛。数据通常分散存于不同的企业中,企业与企业之间由于竞争关系和隐私保护的考虑,并不是完全的互相信任。在一些情况下,企业与企业之间需要进行合作安全建模,以便在充分保护企业数据隐私的前提下,利用各方的数据对数据处理模型进行协作训练。
在对数据处理模型进行协作训练的过程中,合作建模的各方通常需要协作确定多项式的取值。因此如何在充分保护数据隐私的前提下,快速地确定出多项式的取值,是当前亟需解决的技术问题。
发明内容
本说明书实施例的目的是提供一种数据交互方法、装置和电子设备,以在充分保护数据隐私的前提下,提高多项式取值的确定效率。
为实现上述目的,本说明书中一个或多个实施例提供的技术方案如下。
根据本说明书一个或多个实施例的第一方面,提供了一种数据交互方法,包括:第一数据方基于业务数据的第一份额,确定第一因数的取值,所述第一因数为多项式的数据项中目标变量的指数项因数,所述目标变量为多项式中与所述第一份额相关联的变量;第二数据方基于业务数据的第二份额,确定第二因数的取值,所述第二因数包括多项式的数据项中除所述第一因数以外的其它因数;第一数据方基于第一因数的取值,第二数据方基于第二因数的取值,以并行的方式秘密分享多项式中各个数据项的取值,第一数据方获得各个数据项取值的第一份额,第二数据方获得各个数据项取值的第二份额;第一数据方基于数据项取值的第一份额,确定所述多项式取值的第一份额;第二数据方基于数据项取值的第二份额,确定所述多项式取值的第二份额。
根据本说明书一个或多个实施例的第二方面,提供了一种数据交互方法,应用于第一数据方,包括:基于自身拥有的业务数据的份额,确定目标因数的取值,所述目标因数为多项式的数据项中目标变量的指数项因数,所述目标变量为多项式中与所述份额相关联的变量;基于目标因数的取值,以并行的方式与合作方秘密分享多项式中各个数据项的取值,得到各个数据项取值的份额;基于数据项取值的份额,确定所述多项式取值的份额。
根据本说明书一个或多个实施例的第三方面,提供了一种数据交互装置,设置于第一数据方,包括:第一确定单元,用于基于自身拥有的业务数据的份额,确定目标因数的取值,所述目标因数为多项式的数据项中目标变量的指数项因数,所述目标变量为多项式中与所述份额相关联的变量;秘密分享单元,用于基于目标因数的取值,以并行的方式与合作方秘密分享多项式中各个数据项的取值,得到各个数据项取值的份额;第二确定单元,用于基于数据项取值的份额,确定所述多项式取值的份额。
根据本说明书一个或多个实施例的第四方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第二方面所述的方法步骤。
根据本说明书一个或多个实施例的第五方面,提供了一种数据交互方法,应用于第二数据方,包括:基于自身拥有的业务数据的份额,确定目标因数的取值,所述目标因数包括多项式的数据项中除目标变量的指数项因数以外的其它因数,所述目标变量为多项式中与合作方拥有的业务数据的份额相关联的变量;基于目标因数的取值,以并行的方式与合作方秘密分享多项式中各个数据项的取值,得到各个数据项取值的份额;基于数据项取值的份额,确定所述多项式取值的份额。
根据本说明书一个或多个实施例的第六方面,提供了一种数据交互装置,设置于第二数据方,包括:第一确定单元,用于基于自身拥有的业务数据的份额,确定目标因数的取值,所述目标因数包括多项式的数据项中除目标变量的指数项因数以外的其它因数,所述目标变量为多项式中与合作方拥有的业务数据的份额相关联的变量;秘密分享单元,用于基于目标因数的取值,以并行的方式与合作方秘密分享多项式中各个数据项的取值,得到各个数据项取值的份额;第二确定单元,用于基于数据项取值的份额,确定所述多项式取值的份额。
根据本说明书一个或多个实施例的第七方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第五方面所述的方法步骤。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中,第一数据方和第二数据方可以利用秘密分享算法,在***漏自身所拥有业务数据的份额的前提下,以并行的方式秘密分享多项式中各个数据项的取值,减少了第一数据方和第二数据方之间的交互次数,从而减少了秘密分享过程中由于进行网络交互所占用的时间,提高了多项式取值的确定效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例一种数据交互方法的流程图;
图2为本说明书实施例一种数据交互方法的流程图;
图3为本说明书实施例一种数据交互方法的流程图;
图4为本说明书实施例一种数据交互装置的功能结构示意图;
图5为本说明书实施例一种数据交互装置的功能结构示意图;
图6为本说明书实施例一种电子设备的功能结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
在相关技术的一个示例中,合作建模的各方可以包括第一数据方和第二数据方,第一数据方可以拥有业务数据的第一份额,第二数据方可以拥有业务数据的第二份额。在对数据处理模型进行协作训练的过程中,第一数据方和第二数据方需要协作确定多项式w0+w1(e+f)+w2(e+f)2+w3(e+f)3+w4(e+f)4的取值。在所述多项式中,e表示所述第一份额,f表示所述第二份额,w0、w1、w2、w3和w4表示所述多项式的系数。所述第一数据方和所述第二数据方均拥有多项式的系数w0、w1、w2、w3和w4。
所述第一数据方可以在本地确定w1e。所述第二数据方可以在本地确定w1f。
所述第一数据方可以基于e,所述第二数据方可以基于f,利用秘密分享算法协作确定w2(e+f)2的取值。所述第一数据方可以获得w2(e+f)2取值的第一份额<w2(e+f)2>0,所述第二数据方可以获得w2(e+f)2取值的第二份额<w2(e+f)2>1。
接下来,所述第一数据方可以基于w1e和<w2(e+f)2>0,所述第二数据方可以基于w1f和<w2(e+f)2>1,利用秘密分享算法协作确定w3(e+f)3的取值。所述第一数据方可以获得w3(e+f)3取值的第一份额<w3(e+f)3>0,所述第二数据方可以获得w3(e+f)3取值的第二份额<w3(e+f)3>1。
接下来,所述第一数据方可以基于w1e和<w3(e+f)3>0,所述第二数据方可以基于w1f和<w3(e+f)3>1,利用秘密分享算法协作确定w4(e+f)4的取值。所述第一数据方可以获得w4(e+f)4取值的第一份额<w4(e+f)4>0,所述第二数据方可以获得w4(e+f)4取值的第二份额<w4(e+f)4>1。
所述第一数据方可以将w1e、<w2(e+f)2>0、<w3(e+f)3>0和<w4(e+f)4>0相加,得到所述多项式取值的第一份额。所述第二数据方可以将w0、w1f、<w2(e+f)2>1、<w3(e+f)3>1和<w4(e+f)4>1相加,得到所述多项式取值的第二份额。所述多项式取值的第一份额和第二份额的和等于所述多项式的取值。
由以上协作确定多项式取值的过程可知,高次数据项的计算过程依赖于低次数据项的计算结果。所述第一数据方和所述第二数据方需要按照次数从低到高的顺序,逐个确定数据项的取值。这样所述第一数据方和所述第二数据方需要经过多次交互,才能够协作确定出多项式的取值。网络交互是比较耗费时间的,从而造成多项式取值的确定效率低下。
以下介绍本说明书实施例涉及的技术术语。
若多个第一数据的乘积为第二数据,则可以将每个所述第一数据作为所述第二数据的一个因数。例如,若z0×z1=z,则z0和z1分别为z的因数。
多方安全计算(Secure Muti-Party Computation,MPC)是一种保护数据隐私安全的算法。多个参与方可以在***漏自身数据的前提下,使用多方安全计算技术进行协作计算,得到计算结果。例如,采用多方安全计算,参与方P1,…,Pn可以协作计算函数f(x1,…,xn)=(y1,…,yn)=y。其中,n≥2;x1,...,xn分别为参与方P1,…,Pn拥有的数据;y为计算结果;y1,…,yn分别为参与方P1,…,Pn在计算后所拥有的计算结果y的份额。
多方安全计算在业务实际中获得了广泛应用。例如,在合作安全建模的场景中,出于保护数据隐私的考虑,多个数据方可以在***漏自身所拥有的数据的前提下,利用多方安全计算技术对数据处理模型进行协作训练。
秘密分享(SS,Secret Sharing)是一种用于实现多方安全计算的算法。秘密分享算法的思想是:将秘密信息以适当的方式进行拆分;拆分后的份额由不同的参与方管理;单个参与方无法恢复秘密信息;只有若干个参与方一同协作才能恢复秘密信息。例如,参与方P1拥有数据x1,参与方P2拥有数据x2。采用秘密分享算法,参与方P1和参与方P2可以进行协作计算,得到计算结果y=y1+y2=f(x1,x2)=x1x2。参与方P1在计算后可以获得计算结果y的份额y1,参与方P2在计算后可以获得计算结果y的份额y2。
为了便于理解本说明书实施例的技术方案,以下首先介绍一个应用场景示例。需要说明的是,该应用场景示例的目的仅在于更好地理解本说明书的实施例,并不构成对本说明书实施例的不当限定。
激励函数(Activation Function),又称为激活函数,可以用于构建数据处理模型。激励函数定义了在给定输入下的输出。激励函数通常为非线性函数。这样通过激励函数可以在所述数据处理模型中加入非线性因素,提高所述数据处理模型的表达能力。所述激励函数可以包括Sigmoid函数、Tanh函数和ReLU函数等。所述数据处理模型可以包括逻辑回归模型、线性回归模型和神经网络模型等。
在合作安全建模的场景中,出于保护数据隐私的考虑,多个数据方可以在***漏自身所拥有的数据的前提下,基于自身拥有的数据,利用秘密分享算法对所述数据处理模型进行协作训练。在对数据处理模型进行协作训练的过程中,所述多个数据方需要利用秘密分享算法协作计算激励函数的取值。由于激励函数涉及的运算为非线性运算,导致其取值无法直接利用秘密分享算法进行计算。为此在实际应用中,可以使用多项式来拟合所述数据处理模型中的激励函数,进而可以使用所述多项式代替所述激励函数构建数据处理模型。这样在对数据处理模型进行协作训练的过程中,所述多个数据方便可以利用秘密分享算法协作确定所述多项式的取值,从而实现了对数据处理模型的协作训练。
本说明书提供一种数据交互***的实施例。
在该实施例中,所述数据交互***可以包括第一数据方和第二数据方。所述第一数据方和所述第二数据方均可以为个人计算机、服务器、手持设备、便携式设备、平板型设备、多处理器装置;或者,还可以为包括由以上任何多个装置或设备所构成的集群等。所述第一数据方和所述第二数据方可以为进行多方安全计算的双方。具体地,所述第一数据方和所述第二数据方可以分别拥有业务数据的一份份额。为了便于描述,可以将所述第一数据方拥有的份额作为第一份额,可以将所述第二数据方拥有的份额作为第二份额。所述业务数据的第一份额和第二份额的和等于所述业务数据。所述第一数据方可以基于自身拥有的业务数据的第一份额,所述第二数据方可以基于自身拥有的业务数据的第二份额,利用秘密分享算法,协作确定多项式的取值。在此过程中,所述第一数据方不能够泄漏自身拥有的业务数据的第一份额,所述第二数据方不能够泄漏自身拥有的业务数据的第二份额。
本说明书提供一种数据交互方法的实施例。
请参阅图1,该实施例可以包括以下步骤。
步骤S11:第一数据方基于业务数据的第一份额,确定第一因数的取值,所述第一因数为多项式的数据项中目标变量的指数项因数,所述目标变量为多项式中与所述第一份额相关联的变量。
步骤S13:第二数据方基于业务数据的第二份额,确定第二因数的取值,所述第二因数包括多项式的数据项中除所述第一因数以外的其它因数。
步骤S15:第一数据方基于第一因数的取值,第二数据方基于第二因数的取值,以并行的方式秘密分享多项式中各个数据项的取值,第一数据方获得各个数据项取值的第一份额,第二数据方获得各个数据项取值的第二份额。
步骤S17:第一数据方基于数据项取值的第一份额,确定所述多项式取值的第一份额。
步骤S19:第二数据方基于数据项取值的第二份额,确定所述多项式取值的第二份额。
在一些实施例中,所述业务数据可以为任意类型的数据,例如可以为交易数据或资产数据等。所述第一数据方可以拥有所述业务数据的第一份额,所述第二数据方可以拥有所述业务数据的第二份额。业务数据的第一份额和第二份额的和等于所述业务数据。所述第二数据方可以独自拥有所述多项式的系数。或者,所述第一数据方和所述第二数据方均可以拥有所述多项式的系数。
所述多项式可以包括多个变量。所述多个变量可以包括与所述业务数据的第一份额相关联的变量和至少一个其它变量。变量与业务数据的份额相关联可以理解为:变量用于表示业务数据的该份额。例如,所述多项式可以包括两个变量,所述两个变量中的一个变量可以与所述业务数据的第一份额相关联,另一个变量可以与所述业务数据的第二份额相关联。为了便于描述,在后续过程中可以将与所述业务数据的第一份额相关联的变量作为目标变量。
所述多项式可以包括多个数据项,所述多个数据项的和等于所述多项式。所述数据项可以包括第一因数和第二因数,所述第一因数和所述第二因数的乘积等于该数据项。所述第一因数可以为数据项中目标变量的指数项因数,所述第二因数可以包括数据项中除所述第一因数以外的其它因数。值得说明的是,在实际应用中,所述多项式可以有多种不同的表达方式,不同的表达方式中数据项的表现形式不同。这里多项式的表达式可以包括按照目标变量的次数来划分数据项的表达方式,因而不同数据项中目标变量的次数不同。
在一些场景示例中,多项式p可以表示如下。
x表示业务数据;
a表示业务数据的第一份额;
b表示业务数据的第二份额;
a和b为多项式中的两个变量;
n表示多项式的最高次数;
wi表示多项式的系数;
多项式p按照目标变量a的次数来划分数据项,aifi(b)表示数据项;
ai为数据项aifi(b)中目标变量a的指数项因数,即,ai为数据项aifi(b)的第一因数;值得说明的是,数据项f0(b)中的第一因数可以理解为a0=1;
fi(b)为数据项aifi(b)的第二因数。
在一些实施例中,步骤S11中,所述第一数据方可以基于自身拥有的业务数据的第一份额,计算多项式中数据项的第一因数的取值。延续前面的场景示例,在实际应用中,由于a0=1和a1=a能够直接确定,所述第一数据方可以根据a,计算除a0和a1以外其它第一因数的取值,诸如an、…、ai、…、a2的取值。
在一些实施例中,步骤S13中,所述第二数据方可以基于自身拥有的业务数据的第二份额,计算多项式中数据项的第二因数的取值。延续前面的场景示例,所述第二数据方可以根据b,计算第二因数fn(b)、…、fi(b)、…、f2(b)、f1(b)和f0(b)的取值。
在一些实施例中,各个数据项的第一因数取值是相互独立的(每个数据项的第一因数取值不依赖于其它数据项的第一因数取值),并且各个数据项的第二因数取值也是相互独立的(每个数据项的第二因数取值不依赖于其它数据项的第二因数取值)。因此在步骤S15中,所述第一数据方可以基于第一因数的取值,所述第二数据方可以基于第二因数的取值,以并行的方式秘密分享多项式中各个数据项的取值。所述第一数据方和所述第二数据方可以分别获得多项式中各个数据项取值的一份份额。为了便于描述,可以将所述第一数据方获得的数据项取值的份额作为第一份额,可以将所述第二数据方获得的数据项取值的份额作为第二份额。每个数据项取值的第一份额和第二份额的和等于该数据项的取值。通过并行的方式,可以减少第一数据方和第二数据方之间的交互次数,进而能够提高多项式取值的计算效率。
所述第一数据方和所述第二数据方可以采用任意方式,并行秘密分享多项式中各个数据项的取值。考虑到将多项式中各个数据项的第一因数的取值作为整体参与秘密分享计算、并且将多项式中各个数据项的第二因数的取值作为整体参与秘密分享计算,便于以并行的方式秘密分享多项式中各个数据项的取值,在实际应用中,所述第一数据方可以基于多项式中各个数据项的第一因数的取值,构建第一因数取值向量。所述第二数据方可以基于多项式中各个数据项的第二因数的取值,构建第二因数取值向量。这样所述多项式的取值可以表示为所述第一因数向量和所述第二因数向量之间的点积。所述第一数据方可以基于所述第一因数取值向量,所述第二数据方可以基于所述第二因数取值向量,秘密分析多项式中各个数据项的取值。所述第一数据方可以获得各个数据项取值的第一份额,所述第二数据方可以获得各个数据项取值的第二份额。这样利用向量的方式,所述第一数据方和所述第二数据方通过一次交互,便实现协作确定多项式的取值。
延续前面的场景示例,所述第一数据方可以构建第一因数取值向量v1=[an,...,ai,...,a2,a1,1],所述第二数据方可以构建第二因数取值向量v2=[fn(b),...,fi(b),...,f2(b),f1(b),f0(b)]。所述第一数据方可以基于所述第一因数取值向量,所述第二数据方可以基于所述第二因数取值向量,秘密分析多项式中各个数据项的取值。所述第一数据方可以获得各个数据项取值的第一份额<anfn(b)>0、…、<aifi(b)>0、…、<a2f2(b)>0、<af1(b)>0和<f0(b)>0,所述第二数据方可以获得各个数据项取值的第二份额<anfn(b)>1、…、<aifi(b)>1、…、<a2f2(b)>1、<af1(b)>1和<f0(b)>1。其中,<anfn(b)>0+<anfn(b)>1=anfn(b),<aifi(b)>0+<aifi(b)>1=aifi(b),<a2f2(b)>0+<a2f2(b)>1=a2f2(b),<af1(b)>0+<af1(b)>1=af1(b),<f0(b)>0+<f0(b)>1=f0(b)。
在一些实施例中,步骤S17中,所述第一数据方可以将所述多项式中各个数据项取值的第一份额相加,得到所述多项式取值的第一份额。
延续前面的场景示例,所述第一数据方可以将所述多项式中数据项取值的第一份额<anfn(b)>0、…、<aifi(b)>0、…、<a2f2(b)>0、<af1(b)>0和<f0(b)>0相加,得到多项式取值的第一份额<p>0。
<p>0=<anfn(b)>0+…+<aifi(b)>0+…+<a2f2(b)>0+<af1(b)>0+<f0(b)>0。
在一些实施例中,步骤S19中,所述第二数据方可以将所述多项式中各个数据项取值的第二份额相加,得到所述多项式取值的第二份额。
延续前面的场景示例,所述第二数据方可以将所述多项式中数据项取值的第二份额<anfn(b)>1、…、<aifi(b)>1、…、<a2f2(b)>1、<af1(b)>1和<f0(b)>1相加,得到多项式取值的第二份额<p>1。<p>0+<p>1=p。
<p>1=<anfn(b)>1+…+<aifi(b)>1+…+<a2f2(b)>1+<af1(b)>1+<f0(b)>1。
本实施例的数据交互方法,第一数据方和第二数据方可以利用秘密分享算法,在***漏自身所拥有业务数据的份额的前提下,以并行的方式秘密分享多项式中各个数据项的取值,减少了第一数据方和第二数据方之间的交互次数,从而减少了秘密分享过程中由于进行网络交互所占用的时间,提高了多项式取值的计算效率。
基于同样的发明构思,本说明书还提供一种数据交互方法的另一个实施例。该实施例以第一数据方为执行主体。所述第一数据方可以拥有业务数据的一份份额。请参阅图2,该实施例可以包括以下步骤。
步骤S21:基于自身拥有的业务数据的份额,确定目标因数的取值,所述目标因数为多项式的数据项中目标变量的指数项因数,所述目标变量为多项式中与所述份额相关联的变量。
关于所述目标因数的介绍可以参见前面实施例中有关第一因数的介绍。所述第一数据方可以基于自身拥有的业务数据的份额,计算多项式中数据项的目标因数的取值。具体过程可以参见前面实施例中的步骤S11。
步骤S23:基于目标因数的取值,以并行的方式与合作方秘密分享多项式中各个数据项的取值,得到各个数据项取值的份额。
所述合作方可以理解为与所述第一数据方进行协作确定多项式取值的数据方,具体可以为前面的第二数据方。所述第一数据方可以基于目标因数的取值,以并行的方式秘密分享多项式中各个数据项的取值。所述第一数据方可以获得多项式中各个数据项取值的份额。具体过程可以参见前面实施例中的步骤S15。
步骤S25:基于数据项取值的份额,确定所述多项式取值的份额。
所述第一数据方可以将所述多项式中各个数据项取值的份额相加,得到所述多项式取值的份额。具体过程可以参见前面实施例中的步骤S17。
本实施例的数据交互方法,第一数据方可以利用秘密分享算法,在***漏自身所拥有业务数据的份额的前提下,以并行的方式与合作方秘密分享多项式中各个数据项的取值,减少了与第二数据方之间的交互次数,从而减少了秘密分享过程中由于进行网络交互所占用的时间,提高了多项式取值的计算效率。
基于同样的发明构思,本说明书还提供一种数据交互方法的另一个实施例。该实施例以第二数据方为执行主体。所述第二数据方可以拥有业务数据的一份份额。请参阅图3,该实施例可以包括以下步骤。
步骤S31:基于自身拥有的业务数据的份额,确定目标因数的取值,所述目标因数包括多项式的数据项中除目标变量的指数项因数以外的其它因数,所述目标变量为多项式中与合作方拥有的业务数据的份额相关联的变量。
关于所述目标因数的介绍可以参见前面实施例中有关第二因数的介绍。所述第二数据方可以基于自身拥有的业务数据的份额,计算多项式中数据项的目标因数的取值。具体过程可以参见前面实施例中的步骤S13。
步骤S33:基于目标因数的取值,以并行的方式与合作方秘密分享多项式中各个数据项的取值,得到各个数据项取值的份额。
所述合作方可以理解为与所述第二数据方进行协作确定多项式取值的数据方,具体可以为前面的第一数据方。所述第二数据方可以基于目标因数的取值,以并行的方式秘密分享多项式中各个数据项的取值。所述第二数据方可以获得多项式中各个数据项取值的份额。具体过程可以参见前面实施例中的步骤S15。
步骤S35:基于数据项取值的份额,确定所述多项式取值的份额。
所述第二数据方可以将所述多项式中各个数据项取值的份额相加,得到所述多项式取值的份额。具体过程可以参见前面实施例中的步骤S19。
本实施例的数据交互方法,第二数据方可以利用秘密分享算法,在***漏自身所拥有业务数据的份额的前提下,以并行的方式与合作方秘密分享多项式中各个数据项的取值,减少了与第一数据方之间的交互次数,从而减少了秘密分享过程中由于进行网络交互所占用的时间,提高了多项式取值的计算效率。
基于同样的发明构思,本说明书还提供一种数据交互装置的实施例。请参阅图4,该实施例可以设置于第一数据方,具体可以包括以下单元。
第一确定单元41,用于基于自身拥有的业务数据的份额,确定目标因数的取值,所述目标因数为多项式的数据项中目标变量的指数项因数,所述目标变量为多项式中与所述份额相关联的变量;
秘密分享单元43,用于基于目标因数的取值,以并行的方式与合作方秘密分享多项式中各个数据项的取值,得到各个数据项取值的份额;
第二确定单元45,用于基于数据项取值的份额,确定所述多项式取值的份额。
基于同样的发明构思,本说明书还提供一种数据交互装置的实施例。请参阅图5,该实施例可以设置于第二数据方,具体可以包括以下单元。
第一确定单元51,用于基于自身拥有的业务数据的份额,确定目标因数的取值,所述目标因数包括多项式的数据项中除目标变量的指数项因数以外的其它因数,所述目标变量为多项式中与合作方拥有的业务数据的份额相关联的变量;
秘密分享单元53,用于基于目标因数的取值,以并行的方式与合作方秘密分享多项式中各个数据项的取值,得到各个数据项取值的份额;
第二确定单元55,用于基于数据项取值的份额,确定所述多项式取值的份额。
下面介绍本说明书电子设备的一个实施例。图6是该实施例中一种电子设备的硬件结构示意图。如图6所示,所述电子设备可以包括一个或多个(图中仅示出一个)处理器、存储器和传输模块。当然,本领域普通技术人员可以理解,图6所示的硬件结构仅为示意,其并不对上述电子设备的硬件结构造成限定。在实际中所述电子设备还可以包括比图6所示更多或者更少的组件单元;或者,具有与图6所示不同的配置。
所述存储器可以包括高速随机存储器;或者,还可以包括非易失性存储器,例如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。当然,所述存储器还可以包括远程设置的网络存储器。所述远程设置的网络存储器可以通过诸如互联网、企业内部网、局域网、移动通信网等网络连接至所述电子设备。所述存储器可以用于存储应用软件的程序指令或模块,例如本说明书图2所对应实施例的程序指令或模块;和/或,本说明书图3所对应实施例的程序指令或模块。
所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以读取并执行所述存储器中的程序指令或模块。
所述传输模块可以用于经由网络进行数据传输,例如经由诸如互联网、企业内部网、局域网、移动通信网等网络进行数据传输。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。