一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据处理的方法和装置与流程

2022-11-02 16:24:37 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种数据处理的方法和装置。


背景技术:

2.随着互联网技术的快速发展,数据的共享和数据的隐私保护已受到工业界和学术界的高度关注。例如企业需要获取多方用户提供的数据,进行数据统计和分析,然而企业或用户并不希望因此暴露自身的个人隐私和商业隐私。因此,多个计算方需要在保护各方数据的隐私的同时,还可以联合使用多方提供的数据,计算出最终输出的结果。
3.安全多方计算是一个重要技术,该方案可以在保证不泄露各方输入数据的情况下,多个参与的计算方能够完成某个指定的计算任务。然而,针对较大任务量的数据计算,采用安全多方计算协议,普遍存在通信轮数过多或通信量过大的问题,从而造成完成所有数据计算任务所需要的时间开销较大。


技术实现要素:

4.一种数据处理的方法和装置,用于实现多个计算方高效的完成数据处理任务。
5.第一方面,本技术实施提供一种数据处理的方法,在本技术中,以由主节点执行该方法为例进行描述。主节点可以是参与计算的多个计算节点中的一个节点,也可以是独立于多个计算节点之外的一个独立节点。该方法的步骤包括:主节点获取数据提供方提供的n个加密隐私数据,并为n个加密隐私数据确定对应的n个加密随机数据;所述n为正整数;所述主节点将所述n个加密随机数据中的每个加密随机数据分别划分成p个第一分片,并将所述n个加密隐私数据中的每个加密隐私数据分别划分成p个第二分片;所述p为所述主节点管理的计算节点的数量;所述主节点将所述每个加密随机数据中的p个第一分片,分别发送给p个计算节点,并将所述每个加密隐私数据中的p个第二分片,分别发送给所述p个计算节点,使得每个计算节点接收到n个所述第一分片和n个所述第二分片;所述主节点分别向所述p个计算节点发送目标任务,所述目标任务用于指示对应的计算节点使用预设的计算方式对接收的所述第一分片和所述第二分片进行计算,得到目标结果分片;所述主节点获取所述p个计算节点执行所述目标任务后得到的所述目标结果分片;所述主节点根据所述p个计算节点执行所述目标任务后得到的所述目标结果分片,得到目标结果数据。
6.通过该设计,主节点可以根据数据提供方提供的n个加密隐私数据,同时确定相应数量的n个加密随机数据,主节点根据管理的计算节点的个数p,将n个加密隐私数据和n个加密随机数据中每个加密隐私数据和每个加密随机数据均分成p份,将每个加密隐私数据的一个分片和每个加密随机数据的一个分片发送给每个计算节点。然后,主节点将目标任务发送给每个计算节点,使得每个计算节点使用预设的计算方式对接收的加密随机数据的分片和加密隐私数据的分片进行计算,得到目标结果分片,并根据每个计算节点得到的目标结果分片得到目标结果数据。该方案针对多个加密隐私数据时,相比采用现有安全多方计算,该方案无需通过多轮通信实现任意多项式计算,从而可减少了执行目标任务的通信
轮数,可提高数据的计算效率。
7.在一种可能的实施方式中,所述方法还包括:所述主节点向所述p个计算节点中的任意一个计算节点发送所述任意一个计算节点的辅助数据和/或差值;其中,所述任意一个计算节点的辅助数据中包括:所述n个加密随机数据中任意一个加密随机数据的一个分片和至少两个加密随机数据之间乘积的一个分片以及任意一个加密随机数据次幂的一个分片;所述任意一个计算节点的n个差值为所述主节点发送给所述任意一个计算节点的所述n个第一分片中每个所述第一分片和对应的所述第二分片的差值。
8.通过该设计,所述任意一个计算节点可以使用差值和加密随机数据代替加密隐私数据,将目标函数转成为关于加密随机数据的函数;进一步的,所述任意一个计算节点可以根据所述辅助数据,计算出加密随机数据的函数的各项乘积的值,从而可以有效得到该函数的结果值。因此,该方案中任意一个计算节点针对多个加密隐私数据且无论目标函数多复杂时,仅需要执行一轮通信即可完成目标函数的计算,从而可提高数据处理的效率,也减少了数据处理所需的开销。
9.在一种可能的实施方式中,所述目标结果分片可以符合以下函数:
10.[f(x
1j
,x
2j
,......x
nj
)]_j
[0011]
[f(x
1j
,x
2j
,......x
nj
)]_j的值表示第j个计算节点得到的目标结果分片,x
ij
表示第j个计算节点获取第i个加密隐私数据的一个第二分片,j为小于或等于p的正整数,i表示小于或等于n的正整数;f(.)中各项式的系数均已知;所述第j个计算节点得到的目标结果分片由所述计算方将所述n个第二差值和函数f(.)的系数相乘得到函数g(.)的每个系数,并将函数g(.)的每个系数与所述辅助数据中对应的分片相乘得到多项乘积后,再将所述多项乘积相加得到的;所述函数g(.)为关于加密随机数据的函数。
[0012]
通过该设计,所述任意一个计算节点使用该公式,可以有效的得到目标任务的结果,由于所述任意一个计算节点以输入值为分片形式代入该目标函数中,因此,最后得到的结果为任意一个计算节点的目标结果分片。
[0013]
在一种可能的实施方式中,所述主节点根据所述p个计算节点执行所述目标任务后得到的所述目标结果分片,得到目标结果数据,包括:所述主节点将所述p个计算节点执行所述目标任务后得到的所述目标结果分片相加,得到所述目标结果数据。
[0014]
通过该设计,主节点可以将接收到的p个计算节点得到的目标结果分片作为一个新的加密隐私数据的p个分片,可以直接用于目标任务的下一次计算中。显然可知,在目标任务中涉及的加密隐私数据较多时,采用这种方式可以灵活的分配每次执行目标任务所涉及的加密隐私数据,既可保证最终完成目标任务,也可减少执行目标任务的通信轮数。
[0015]
第二方面,本技术实施提供一种数据处理的方法,在本技术中,以由p个计算节点中任意一个计算节点执行该方法进行描述。该方法的步骤包括:计算节点接收主节点发送的n个第一分片,所述n个第一分片为所述主节点对生成的n个加密随机数据中的每个加密随机数据划分成p个第一分片,并将所述每个加密随机数据中的p个第一分片分别发送给p个计算节点得到的;所述p为所述主节点管理的计算节点的数量;所述n为正整数;所述计算节点接收所述主节点发送的n个第二分片,所述n个第二分片为所述主节点对数据提供方提供的n个加密隐私数据中的每个加密隐私数据划分成p个第二分片,并将所述每个加密隐私数据中的p个第二分片分别发送给所述p个计算节点得到的;所述计算节点接收所述主节点
发送的目标任务,所述目标任务用于指示所述计算节点使用预设的计算方式对接收的所述n个第一分片和所述n个第二分片进行计算;所述计算节点使用所述预设的计算方式,对所述n个第一分片和所述n个第二分片进行计算,得到目标结果分片,并将所述目标结果分片发送给所述主节点。
[0016]
通过该设计,p个计算节点中任意一个计算节点接收主节点发送的n个加密隐私数据中每个加密隐私数据的一个分片和n个加密随机数据中每个加密隐私数据的一个分片,然后,所述任意一个计算节点接收主节点发送的目标任务,所述任意一个计算节点使用预设的计算方式对接收的加密随机数据的分片和加密隐私数据的分片进行计算,得到目标结果分片。该方案针对多个加密隐私数据时,相比采用现有安全多方计算,该方案无需通过多轮通信实现任意多项式计算,从而可减少执行目标任务的通信轮数,可提高数据的计算效率。
[0017]
在一种可能的实施方式中,所述方法还包括:所述计算节点获取辅助数据,所述辅助数据根据所述n个第一分片得到的;所述计算节点使用所述预设的计算方式,对所述n个第一分片和所述n个第二分片进行计算,得到计算结果,包括:所述计算节点使用所述预设的计算方式,对所述n个第一分片和所述n个第二分片,以及所述辅助数据进行计算,得到目标结果分片。
[0018]
通过该设计,所述任意一个计算节点获取到所述辅助数据,由于所述辅助数据是根据n个加密随机数据的第一分片得到的,因此,该方案中,主节点将所述辅助数据发送给任意一个计算节点,使得所述任意一个计算节点可以有效的计算得到目标结果分片。
[0019]
在一种可能的实施方式中,所述计算节点获取多个辅助数据,包括:所述计算节点接收由所述主节点使用多方乘法协议算法,对所述n个加密随机数据进行计算得到的辅助数据;所述辅助数据中包括:所述n个加密随机数据中任意一个加密随机数据的一个分片和至少两个加密随机数据之间乘积的一个分片以及任意一个加密随机数据次幂的一个分片。
[0020]
通过该设计,辅助数据可以由可信的主节点使用多方乘法协议算法,对所述n个加密随机数据进行计算得到的,所述任意一个计算节点获取到的该辅助数据具体包括:所述n个加密随机数据中任意一个加密随机数据的一个分片和至少两个加密随机数据之间乘积的一个分片以及任意一个加密随机数据次幂的一个分片,因此,该方案中所述任意一个计算节点可以借助获取的辅助数据,保证有效的计算得到目标结果分片,同时也可减少计算目标结果分片所需的通信轮数。
[0021]
在一种可能的实施方式中,所述计算节点使用所述预设的计算方式,对所述n个第一分片和所述n个第二分片,以及所述辅助数据进行计算,得到目标结果分片,包括:
[0022]
所述计算节点确定所述n个第一分片中每个所述第一分片和对应的所述第二分片之间的差值,得到n个第一差值;或者所述计算节点接收由所述主节点确定的所述n个第一分片中每个所述第一分片和对应的所述第二分片之间的第一差值;
[0023]
所述计算节点获取其它p-1个计算节点分别发送的n个第一差值,所述p-1个计算节点中任意一个计算节点的n个第一差值为所述任意一个计算节点接收的所述n个第一分片中每个所述第一分片和对应的所述第二分片的差值;或者所述p-1个计算节点中任意一个计算节点的n个第一差值为所述主节点确定的所述任意一个计算节点接收到的所述n个第一分片中每个所述第一分片和对应的所述第二分片的差值;
[0024]
所述计算节点将p*n个第一差值中来自相同加密随机数据和加密隐私数据的第一差值进行叠加,得到n个第二差值;所述n个第二差值用于表示所述n个加密隐私数据与所述n个加密随机数据之间的差值;所述计算节点使用所述预设的计算方式,对获取的所述辅助数据和所述n个第二差值,得到所述目标结果分片。
[0025]
通过该设计,p个计算节点中任意一个计算节点,获取p个计算节点中每个计算节点的n个第一差值,进一步可以根据p*n个第一差值,得到n个第二差值,该n个第二差值为所述n个加密隐私数据与所述n个加密随机数据之间的差值。所述任意一个计算节点可以使用所述n个第二差值和n个加密随机数据代替n个加密隐私数据,将目标函数转成为关于加密随机数据的函数。进一步,所述任意一个计算节点可以借助获取的所述辅助数据,确定加密随机数据的函数中各项的乘积值并相加各项的乘积值,得到加密随机数据的函数的结果值,将该加密随机数据的函数的结果值作为该计算节点的目标结果分片。显然该方案中任意一个计算节点针对多个加密隐私数据且无论目标函数多复杂时,仅需要执行一轮通信即可完成目标函数的计算,从而可提高数据处理的效率,也可减少数据处理所需的开销。
[0026]
在一种可能的实施方式中,所述目标结果分片符合以下函数:
[0027]
[f(x
1j
,x
2j
,......x
nj
)]_j
[0028]
[f(x
1j
,x
2j
,......x
nj
)]_j的值表示第j个计算节点得到的目标结果分片,x
ij
表示第j个计算节点获取第i个加密隐私数据的一个第二分片,j为小于或等于p的正整数,i表示小于或等于n的正整数;f(.)中各项式的系数均已知;所述第j个计算节点得到的目标结果分片由所述计算方将所述n个第二差值和函数f(.)的系数相乘得到函数g(.)的每个系数,并将函数g(.)的每个系数与所述辅助数据中对应的分片相乘得到多项乘积后,再将所述多项乘积相加得到的;所述函数g(.)为关于加密随机数据的函数。
[0029]
通过该设计,所述任意一个计算节点使用该公式,可以有效的得到目标任务的结果,由于所述任意一个计算节点以输入值为分片形式代入该目标函数中,因此,最后得到的结果为该意一个计算节点的目标结果分片。
[0030]
第三方面,本技术实施例提供了一种数据处理的装置,该装置可应用于主节点,具有实现上述第一方面或上述第一方面的任意一种可能的设计中第一种方案的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元。比如包括通信单元和处理单元。
[0031]
第四方面,本技术实施例提供了一种数据处理的装置,该装置可应用于由主节点管理的任意一个计算节点,具有实现上述第二方面或上述第二方面的任意一种可能的设计中第一种方案的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元。比如包括通信单元和处理单元。
[0032]
第五方面,本技术实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现第一方面或其中任意一种设计提供的第一种方案,或者可实现第二方面或其中任意一种设计提供的第一种方案。
[0033]
第六方面,本技术实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得上述第一方面或其中任一种设计提供的第一方案被执行,或者使得上述第二方面或其中任一种设计提供的第一方案被执行。
[0034]
第七方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持
车载设备实现上述第一方面中所涉及的功能,或者实现上述第三方面中所涉及的功能。
[0035]
第八方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持第一路侧设备实现上述第二方面中所涉及的功能,或者实现上述第四方面中所涉及的功能。
[0036]
在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存通信装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
[0037]
第九方面,本技术实施例还提供一种通信系统,该通信系统包括用于执行上述第一方面或其中任一种设计提供的方法的主节点,和主节点管理的多个计算节点中每个计算节点用于执行上述第二方面或其中任一种设计提供的方法的计算节点,和用于实现所述主节点和主节点管理的计算节点之间的传输信道,以及主节点管理的多个计算节点之间的传输信道。
[0038]
上述第三方面和第三方面中可以达到的技术效果,可以参照上述第一方面或第一方面中任意一种设计可以达到的技术效果说明;上述第四方面和第四方面中可以达到的技术效果,可以参照上述第二方面或第二方面中任意一种设计可以达到的技术效果说明,这里不再重复赘述。
附图说明
[0039]
图1a为本技术实施例中提供的一种应用场景示意图;
[0040]
图1b为本技术实施例中提供的一种应用场景示意图;
[0041]
图1c为本技术实施例中提供的一种ai推理场景的示意图;
[0042]
图2为本技术实施例中提供一种数据处理的方法的流程示意图;
[0043]
图3a为本技术实施例中提供的一种数据处理的结构示意图;
[0044]
图3b为本技术实施例中提供的另一种数据处理的结构示意图;
[0045]
图4为本技术实施例中提供的一种数据处理装置的结构示意图;
[0046]
图5为本技术实施例中提供的一种数据处理设备的结构示意图。
具体实施方式
[0047]
本技术实施例提供一种数据处理的方法和装置。其中,方法和装置是基于相同或相似技术构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
[0048]
以下,首先对本技术实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
[0049]
1)、本技术实施例中涉及的安全多方计算(secure multi-party computation,smpc):n个计算方在不泄露各自输入值的情况下,完成与各方输入值有关的某个指定函数的计算,并保证结果的正确性。
[0050]
2)、本技术实施例中涉及的辅助数据,属于数据秘密分享。数据秘密分享主要包括加法秘密分享(additive secret sharing,ass)、shamir秘密分享(shamir’s secret sharing,sss)、异或运算的秘密分享。
[0051]
加法秘密分享(ass):对于加法群g,秘密值a属于g,并在g上选取随机数据a1,a2,

,a
n-1
,并计算an=a

(a1 a2

a
n-1
),则{a1,a2,

,an}是秘密值a的一组加法秘密分享,满足a=a1 a2

an,且每一个ai被称为秘密值a的秘密分享的分片。在使用加法秘密分享时,把a1,a2,

,an分别分配给n个参与方。当需要恢复出秘密值a时,需要收集所有分片a1,a2,

,an,才能恢复处秘密值a。
[0052]
加法秘密分享可以扩展到整数环、素数域、矩阵环、有限域、多项式剩余类环等。
[0053]
shamir秘密分享(sss):对于秘密值a,随机选取t-1个随机数据a
t-1
,a
t-2
,

,a1,构造多项式f(x)=b
t-1
x
t-1
b
t-2
x
t-2


b
1 x a,其中a为f(x)的常数项。设有n个参与方,他们的id分别是id1,id2,

,idn,计算f(id1),f(id2),

,f(idn),将f(idi)分发给第i个参与方。f(id1),f(id2),

,f(idn)被称为秘密值a的shanir秘密分享,每个f(idi)被称为一个shanir秘密分享的分片。当需要恢复秘密值a时,必须收集到至少t个分片,才可会恢复处秘密值a。恢复过程如下:
[0054]
不妨设收集到的分片为f(id1),f(id2),...,f(id
t
)。利用拉格朗日插值公式可以恢复处多项式f(x),之后f(0)就是秘密值a。
[0055]
异或运算的秘密分享:秘密值a为0或1,ai为0或1,如果a=a0xora1xor...xorak,{a0,a1,...,ak}被称为秘密值a的一组异或运算的秘密分享。
[0056]
其中,拉格朗日插值公式:
[0057]
[a]:表示秘密值a的秘密分享(例如本技术中的加密隐私数据的分片),其是包含a的秘密分享的所有分片的集合。这种表示秘密分享的方法可以应用于“加法秘密分享”、“shamir秘密分享”或“异或运算的秘密分享”。例如,如果a=a1 a2 ... an,则[a]={a1,a2,...,an};如果f(x)=b
t-1
x
t-1
b
t-2
x
t-2
... b1x a,则[a]={f(id1),f(id2),...,f(idn)};如果a=a0xora1xor...xorak,则[a]={a0,a1,...,ak}。
[0058]
3)、本技术实施例中涉及的多方乘法协议:t个计算方p1,p2,...,p
t
执行多方乘法协议,pi的输入{a_i,b_i}执行乘法协议,每个计算方pi得到输出c_i,满足:
[0059]
c_1 c_2 ... c_t=(a_1 a_2 ... a_t)*(b_1 b_2 ... b_t)
[0060]
其中,a_i表示a的第i个分片,b_i表示b的第i个分片。
[0061]
整数环zn上的算术运算:a,b属于zn,a b=a b(nod n),a*b=a*b(nod n)。
[0062]
素数域fq上的算术运算:a,b属于zn,a b=a b(nod q),a*b=a*b(nod q)。对于任意fq上的非零元素c,那么fq上必然存在一个元素d,满足c*d=1,那么“a除以c”可以通过“a*d(nod q)”得出。
[0063]
逻辑运算:输入值是0或1,输入值之间的逻辑运算包含“与”、“或”、“非”和“异或”等。
[0064]
4)、本技术实施例中涉及的主节点和计算节点,可以为一个连接点,表示一个再分发或一个通信端点。通信端点,比如一些终端设备、车载设备或路侧设备等。本技术实施例涉及的节点,还可以但不限于为物理网络节点,物理网络节点通常为连接到网络的由源电子设备。例如,物理网络节点可以是数据电路端接设备,如调制解调器,集线器、桥接器或交换器。
[0065]
在本技术实施例中,主节点具有数据传输、数据存储、以及管理计算节点的功能。
计算节点也具有数据传输、数据计算、数据存储的功能。主节点可以为多个计算节点中的任意一个节点,即也可以和其他计算节点参与多任务的协同计算,也可以为独立于多个计算节点之外的一个独立节点。
[0066]
本技术实施例中,对主节点和计算节点不做具体限定。可以包括但不限于通信网络中的物理网络节点。例如主节点和计算节点还可以为通信系统中相互独立的管理设备和由管理设备管理的多个计算设备。
[0067]
应理解,本技术的主节点或管理设备为可信的,它接收到数据提供方提供的数据,以及相关隐私数据时,不能直接向外界或任何其它计算方泄露。
[0068]
需要说明的是,本技术实施例中,[a]_j表示秘密分享[a]的第j个分片,yj不表示秘密分享的分片,而是表示第j个输入值或加密值。
[0069]
本技术实施例的描述中,“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。“连接”,描述两个对象的连接关系,可以表示两种连接关系,例如,a和b连接,可以表示:a与b直接连接,a通过c和b连接这两种情况。
[0070]
字符“/”一般表示前后关联对象是一种“或”的关系。本技术中所涉及的至少一个是指一个或多个;多个,是指两个或两个以上。
[0071]
另外,需要理解的是,在本技术的描述中,“第一”、“第二”、“第三”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
[0072]
在本说明书中描述的参考“一种实施方式”或“一些实施方式”等意味着在本技术的一个或多个实施方式中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0073]
下面对本技术实施例的应用场景进行介绍。如图1a-1b所示,为本技术实施例提供的一种数据处理的应用场景。
[0074]
参考图1a所示,多个数据提供方:企业、政府,以及用户个人,他们希望通过多个计算(例如计算方1、计算方2......计算方n),使用多方的数据进行分析并完成指定的目标任务,但是数据提供方在提供数据的同时,又不想暴露自己的数据隐私。在现有的安全多方计算方案中,可以实现保证不泄漏各方输入的数据的情况下,还可以联合多方的数据,保证正确的完成某个指定的目标任务。
[0075]
现有的安全多方计算方法,广泛应用于大数据分析、ai训练和ai推理中。例如,基于安全多方计算的机器学习,能够在保护各方数据集的情况下,联合训练模型;基于安全多方计算的ai推理,可以在保护服务方的模型和客户方的数据情况下,完成推理任务;基于安全多方计算的密码算法,能够在不暴露密钥的情况下完成对数据的加密和解密等。因此,安全多方计算将会对数据的共享与公用提供有力支撑,保障各方的隐私。安全多方计算。
[0076]
1)、ai训练的场景:多家企业各自持有来自各自业务的数据集,如图1b所示,企业的服务器1、服务器2......服务器n对应存储相应的数据集1、数据集2......数据集n。如果这些企业希望使用他们服务器中存储的数据集进行联合训练,得到精度比较高的ai模型。然而,在实际情况下,各企业的数据集都是商业机密,不能对外暴露。因此,这种情况下,使用多方计算的方案,可以保证在不暴露各个企业数据集隐私的情况下,利用全部数据集,完
成联合的ai训练,最终得到ai模型。
[0077]
2)、ai推理场景:如图1c所示,在客户端,用户想使用企业的服务器中存储的ai模型,对自己本地图片进行ai推理。但是ai模型是企业的资产,不能直接发送给用户。并且用户也不希望向企业暴露自己的图片。因此,用户和企业可以利用两方计算协议(属于安全多方计算技术),在保护企业和用户各自的ai模型和图片的隐私情况下,完成ai推理任务,得到最终的ai推理结果。
[0078]
然而,当计算任务比较复杂时,采用现有的安全多方计算方案中,随着目标任务对应的设定目标函数的乘法阶数越高,通信的轮数越多或通信量越大的问题。因此,当计算任务较为复杂,采用现有安全多方计算方案完成所有计算任务的时间开销也较大。
[0079]
因此,本技术提供了一种数据处理的方法,首先,主节点获取数据提供方提供的n个加密隐私数据,并为n个加密隐私数据确定对应的n个加密随机数据;然后,主节点将n个加密随机数据中的每个加密随机数据分别划分成p个第一分片,并将n个加密隐私数据中的每个加密隐私数据分别划分成p个第二分片,主节点再将每个加密随机数据中的p个第一分片和每个加密隐私数据中的p个第二分片,分别发送给p个计算节点,使得每个计算节点接收到n个第一分片和n个第二分片;进一步主节点分别向p个计算节点发送目标任务,该目标任务用于指示对应的计算节点使用预设的计算方式对接收的第一分片和第二分片进行计算,得到目标结果分片;最后主节点分别接收p个计算节点执行该目标任务后得到的目标结果分片。该方法可以保证在不泄露数据提供方提供的数据前提下,使得完成目标任务所需要的通信轮数较少,从而可以高效完成目标任务。
[0080]
本技术实施例提供一种数据处理的方法,该方法可适用于但不限于如图1a所示的应用场景。参阅图2所示,为本技术实施例提供的一种数据处理的方法流程图,该方法包括如下步骤:
[0081]
s201:主节点获取数据提供方提供的n个加密隐私数据,并为每个加密隐私数据确定对应的n个加密随机数据;n为正整数。
[0082]
其中,加密隐私数据为数据提供方提供的非明文公开数据,数据提供方可以为企业、政府、用户等,主要用于提供目标任务所需要的实际数据。各数据提供方提供的完整加密隐私数据仅为各数据提供方自身所持有,不能被泄露,例如不能被任何计算节点知道。
[0083]
应理解,本技术中的加密隐私数据和加密随机数据可以但不限于为具体的某个数值。
[0084]
可选的,主节点获取数据提供方提供的n个加密隐私数据之前,可以预先生成m个加密随机数据,m为大于或等于n的正整数。主节点在获取数据提供方提供的n的加密隐私数据时,可以从上述预先存储的m个加密随机之中,选取n个加密随机数据。
[0085]
s202:主节点将n个加密随机数据中的每个加密随机数据分别划分成p个第一分片,并将n个加密隐私数据中的每个加密隐私数据分别划分成p个第二分片;p为所述主节点管理的计算节点的数量。
[0086]
示例性的,主节点管理的计算节点数量为2个,获取3个加密随机数据a1、a2、a3,对3个加密随机数据进行划分,包括以下:
[0087]
主节点将a1划分成a1_1和a1_2,其中,a1_1为加密随机数据a1的一个第一分片,a1_2为加密随机数据a1的另外一个第一分片。主节点将a2划分成a2_1和a2_2,其中,a2_1为
加密随机数据a2的一个第一分片,a2_2为加密随机数据a2的另外一个第一分片。主节点将a3划分成a3_1和a3_2,其中,a3_1为加密随机数据a3的一个第一分片,a3_2为加密随机数据a3的另外一个第一分片。
[0088]
主节点获取3个加密隐私数据b1、b2、b3,对3个加密隐私数据进行划分,包括以下:
[0089]
将b1划分成b1_1和b1_2,其中,b1_1为加密隐私数据b1的一个第二分片,b1_2为加密随机数据b1的另外一个第一分片。将b2划分成b2_1和b2_2,其中,b2_1为加密隐私数据b2的一个第二分片,b2_2为加密隐私数据b2的另外一个第二分片。将b3划分成b3_1和b3_2,其中,b3_1为加密隐私数据b3的一个第二分片,b3_2为加密隐私数据b3的另外一个第二分片。
[0090]
应理解,本技术中,分片可以为某个值的一部分,或者某段话的一部分,或者某bit数据包中的部分等。
[0091]
例如,一个数值10,将该数值10分成2个分片,将该数值10划分成2个分片的具体方式,本技术不做具体限定,只要该2个分片加和为10即可。第一分片和第二分片可以为但不限于为:2和8,或者3和7,或者4和6,或者5和5。
[0092]
再例如,一段话“这是我曾经热爱的事业”,将该段话分成2个分片的具体方式,本技术不做具体限定,只要该2个分片组合成该段话即可。第一分片和第二分片可以为但不限于为:“这是我”和“曾经热爱的事业”,或者“这是我曾经热爱的”和“事业”。
[0093]
再例如,10bit数据包,将该10bit数据包分成2个分片的具体方式,本技术不做具体限定,只要该2个分片bit数之和等于10即可。第一分片和第二分片可以为但不限于为:2bit数据包和8bit数据包,或者3bit数据包和7bit数据包,或者4bit数据包和6bit数据包,或者5bit数据包和5bit数据包。
[0094]
s203:主节点将每个加密随机数据中的p个第一分片,分别发送给p个计算节点,并将每个加密隐私数据中的p个第二分片,分别发送给p个计算节点,使得每个计算节点接收到n个第一分片和n个第二分片。
[0095]
如图3a或3b所示,在计算阶段中,第二步骤:依次向第1、2、3、4个计算节点发送第1个数据提供方提供的加密隐私数据的一个分片(第二分片)和该加密隐私数据对应的加密随机数据的一个分片(第一分片)(每个计算节点获取的分片不一样)。第三步骤:依次向第1、2、3、4个计算节点发送第2个数据提供方提供的加密隐私数据的一个分片和该加密隐私数据对应的加密随机数据的一个分片(第一分片)(每个计算节点获取的分片不一样)。
[0096]
示例性的,基于上述s202中的例子,主节点将每个加密随机数据的一个第一分片a1_1、a2_1、a3_1发送给第1个计算方,将每个加密随机数据的另一个第一分片a1_2、a2_2、a3_2发送给第2个计算方。主节点将每个加密隐私数据的一个第二分片b1_1、b2_1、b3_1发送给第1个计算方,将每个加密隐私数据的另一个第二分片b1_2、b2_2、b3_2发送给第2个计算方。
[0097]
因此,第1个计算节点获取随机数据的第一分片为:a1_1、a2_1、a3_1,第1个计算节点获取到的加密隐私数据的第二分片为:b1_1、b2_1、b3_1。
[0098]
第2个计算节点获取到的加密随机数据的第一分片为:a1_2、a2_2、a3_2,第2个计算节点获取到的加密隐私数据的第二分片为:b1_2、b2_2、b3_2。
[0099]
s204:主节点分别向p个计算节点发送目标任务,p个计算节点接收到主节点发送的目标任务,目标任务用于指示对应的计算节点使用预设的计算方式对接收的第一分片和
第二分片进行计算,得到目标结果分片。
[0100]
可选的,主节点向p个计算节点发送目标任务,该目标任务相同,预设的计算方式可以包括但不限于具体的目标公式或目标函数。
[0101]
s205:p个计算节点中任意一个计算节点使用预设的计算方式,对已接收的n个第一分片和n个第二分片进行计算,得到目标结果分片。
[0102]
在一种实施方式中,在执行步骤s205之前,还包括:主节点使用多方乘法协议算法,对n个加密随机数据进行计算得到第一辅助数据,主节点将第一辅助数据中包括的每项数据均划分成p个分片,然后,将第一辅助数据中每项数据的一个分片发送给p个计算节点中的任意一个计算节点。任意一个计算节点接收辅助数据中每项数据的一个分片(辅助数据)。其中,任意一个计算节点的辅助数据中包括:n个加密随机数据中任意一个加密随机数据的一个分片和至少两个加密随机数据之间乘积的一个分片以及任意一个加密随机数据次幂的一个分片。
[0103]
具体的,如图3a所示,在预计算阶段(第一步骤),可以通过可信的主节点或可信的三方使用多方乘法协议算法,对n个加密随机数据进行计算,得到次数小于或等于k次的所有单项式,作为第一辅助数据,将第一辅助数据划分成4份(以计算节点数量p为4为例)分别发送给4个计算节点。或者如图3b所示,在预计算阶段,4个计算节点之间使用多方乘法协议算法,对n个加密随机数据进行计算,得到次数小于或等于k次的所有单项式,作为第一辅助数据,每个计算节点从第一辅助数据中,选取自己拥有的加密随机数据分片对应的辅助数据。其中,k为正整数。
[0104]
需要注意的是,主节点在预先计算阶段,已提前根据加密随机数据得到辅助数据,或者各计算节点在预先计算阶段,已提前根据加密随机数据得到辅助数据。预先计算阶段在步骤s201之前。
[0105]
可选的,主节点使用多方乘法协议算法,对n个加密随机数据进行计算,得到次数小于或等于k次的所有单项式,作为第一辅助数据。
[0106]
例如,加密随机数据为:a1、a2、a3,主节点使用多方乘法协议算法,对3个加密随机数据进行计算得到第一辅助数据包括:a1、a2、a3、a1a1、a2a2、a3a3、a1a2、a1a3、a2a3、a1a1a1、a2a2a2、a3a3a3、a1a1a2、a1a1a3、a1a2a2、a2a2a3、a1a3a3、a2a3a3、a1a2a3。
[0107]
p个计算节点中任意一个计算节点接收辅助数据为上述第一辅助数据中每项数据的一个分片。例如,第1个计算节点获取的辅助数据为:[a1]_1、[a2]_1、[a3]_1、[a1a1]_1、[a2a2]_1、[a3a3]_1、[a1a2]_1、[a1a3]_1、[a2a3]_1、[a1a1a1]_1、[a2a2a2]_1、[a3a3a3]_1、[a1a1a2]_1、[a1a1a3]_1、[a1a2a2]_1、[a2a2a3]_1、[a1a3a3]_1、[a2a3a3]_1、[a1a2a3]_1。
[0108]
在一种实施方式中,在执行步骤s205之前,还包括:p个计算节点中任意一个计算节点获取n个第一差值,可以通过以下方式获取:
[0109]
第一种方式:p个计算节点中任意一个计算节点根据已接收到n个第一分片和n个第二分片,确定n个第一分片中每个第一分片和对应的第二分片的差值,得到n个第一差值。
[0110]
例如,第1个计算节点获取随机数据的第一分片为:[a1]_1、[a2]_1、[a3]_1,第1个计算节点获取到的加密隐私数据的第二分片为:[b1]_1、[b2]_1、[b3]_1。
[0111]
第1个计算节点获取3个第一差值分别为:[z1]_1、[z2]_1、[z3]_1。
[0112]
[z1]_1=[b1]_1-[a1]_1
[0113]
[z2]_1=[b2]_1-[a2]_1
[0114]
[z3]_1=[b3]_1-[a3]_1
[0115]
其中,[z1]_1为第1计算节点接收加密隐私数据b1的第一分片与第1个计算节点接收加密随机数据a1的第二分片的差值,[z2]_1为第1计算节点接收加密隐私数据b2的第一分片与第1个计算节点接收加密随机数据a2的第二分片的差值,[z3]_1为第1计算节点接收加密隐私数据b3的第一分片与第1个计算节点接收加密随机数据a3的第二分片的差值。
[0116]
第二种方式:p个计算节点中任意一个计算节点接收由主节点确定的n个第一分片中每个所述第一分片和对应的第二分片之间的第一差值。
[0117]
例如,由主节点计算出[z1]_1、[z2]_1、[z3]_1,并将计算得到的[z1]_1、[z2]_1、[z3]_1。发送给相应的第1个计算节点。
[0118]
基于上述的实施方式,p个计算节点中任意一个计算节点在通过上述两种方式获取n个第一差值时,还需要获取其它p-1个计算节点中每个计算节点的n个第一差值。具体可以通过以下方式:
[0119]
第一种方式:p个计算节点中任意一个计算节点可以与其它p-1个计算节点之间传输第一差值。p个计算节点中任意一个计算节点可以接收其它p-1个计算节点中每个计算节点分别发送的n个第一差值。同时,p个计算节点中任意一个计算节点也可以向其它p-1个计算节点中每个计算节点发送n个第一差值。在此之后,p个计算节点中任意一个计算节点拥有p*n个第一差值。
[0120]
如图3a或3b所示,第四步骤:各个计算节点之间传输第一差值,使得每个计算节点可以获取每个计算节点计算得到的全部第一差值。
[0121]
例如,主节点管理3个计算节点:第一计算节点q1、第二计算节点q2、第三计算节点q3。
[0122]
需要注意的是,下述的第一计算节点、第二计算节点、第三计算节点分别用q1、q2、q3表示。
[0123]
由q1计算出的3个第一差值为:[z1]_1、[z2]_1、[z3]_1;
[0124]
由q2计算节点计算出的3个第一差值为:[z1]_2、[z2]_2、[z3]_2;
[0125]
由q3计算出的3个第一差值为:[z1]_3、[z2]_3、[z3]_3。
[0126]
q1可以接收q2发送的3个第一差值,以及q3发送的3个第一差值。同时q1向q2和q3发送q1的3个第一差值。
[0127]
第二种方式:由主节点分别计算p个计算节点中每个计算节点的n个第一差值,然后将p*n个第一差值发送给p个计算节点。在此之后,p个计算节点中任意一个计算节点拥有p*n个第一差值。
[0128]
例如,主节点分别计算出q1的3个第一差值:[z1]_1、[z2]_1、[z3]_1;
[0129]
主节点分别计算出q2的3个第一差值:[z1]_2、[z2]_2、[z3]_2;
[0130]
主节点分别计算出q3的3个第一差值:[z1]_3、[z2]_3、[z3]_3。
[0131]
主节点将q1的3个第一差值和q2的3个第一差值以及q3的3个第一差值,均发送给q1、q2、q3。那么q1、q2、q3均获取到q1的3个第一差值和q2的3个第一差值以及q3的3个第一差值。
[0132]
在一种实施方式中,在执行步骤s205时,p个计算节点中任意一个计算节点使用预
设的计算方式,对已接收的n个第一分片和n个第二分片进行计算,得到目标结果分片,并将目标结果分片发送给主节点,(如图3a或图3b中的第五步骤)。具体实现步骤如下:
[0133]
第一步骤:p个计算节点中任意一个计算节点将接收到的p*n个第一差值中来自相同加密随机数据和加密隐私数据的第一差值进行叠加,得到n个第二差值,所述n个第二差值用于表示n个加密隐私数据与n个加密随机数据之间的差值。
[0134]
示例性的,第一计算节点获取n个加密随机数据a1,a2......,an的一个分片分别为[a1]
_1
,[a2]
_1
,......,[an]
_
,第一计算节点获取n个加密隐私数据b1,b2......,bn的一个分片分别为[b1]
_1
,[b2]
_1
,......,[bn]
_1
,那么第一计算节点获取的n第一差值分别为:[z1]
_1
,[z2]
_1
,......,[zn]
_1
,[z1]
_1
,[z2]
_1
,......,[zn]
_1
分别满足以下:
[0135]
[z1]
_1
=[b1]
_1-[a1]
_1
[0136]
[z2]
_1
=[b2]
_1-[a2]
_1
[0137][0138]
[zn]
_1
=[bn]
_1-[an]
_1
[0139]
应理解,上述公式中的省略号表达依次类推的意思。
[0140]
第i个计算节点的n个第一出差值分别为:[z1]
_i
,[z2]
_i
,......,[zn]
_i
,i为小于或等于p的正整数。[z1]
_i
,[z2]
_i
,......,[zn]
_i
分别满足以下:
[0141]
[z1]
_i
=[b1]
_i-[a1]
_i
[0142]
[z2]
_i
=[b2]
_i-[a2]
_i
[0143][0144]
[zn]
_i
=[bn]
_i-[an]
_i
[0145]
第1个计算节点计算n个第二差值,具体包括以下:
[0146]
第1个计算节点获取n*p个第一差值包括:第一个计算节点的n个第一差值,第2个计算节点的n个第一差值,

,第p个计算节点的n个第一差值。
[0147]
第一个计算节点的n个第一差值分别为:[z1]
_1
=[b1]
_1-[a1]
_1
,[z2]
_1
=[b2]
_1-[a2]
_1
,

[zn]
_1
=[bn]
_1-[an]
_1

[0148]
第二个计算节点的n个第一差值分别为:[z1]
_2
=[b1]
_2-[a1]
_2
、[z2]
_2
=[b2]
_2-[a2]
_2

[zn]
_1
=[bn]
_1-[an]
_1

[0149][0150]
第p个计算节点的n个第一差值分别为:[z1]
_p
=[b1]
_p-[a1]
_p
、[z2]
_p
=[b2]
_p-[a2]
_p

[zn]
_p
=[bn]
_p-[an]
_p

[0151]
p个计算节点中任意一个计算节点,可以通过以下方式进行叠加得到n个第二差值,n个第二差值分别为z1,z2,......,zn,z1,z2,......,zn分别满足以下公式:
[0152]
z1=[z1]
_1
[z1]
_2
... [z1]
_p
=([b1]
_1-[a1]
_1
) ([b1]
_2-[a1]
_2
) ... ([b1]
_p-[a1]
_p
)
[0153]
z2=[z2]
_1
[z2]
_2
... [z2]
_p
=([b2]
_1-[a2]
_1
) ([b2]
_2-[a2]
_2
) ... ([b2]
_p-[a2]
_p
)
[0154][0155]zn
=[zn]
_1
[zn]
_2
... [zn]
_p
=([bn]
_1-[an]
_1
) ([bn]
_2-[an]
_2
) ... ([bn]
_p-[an]
_p
)
[0156]
进一步的,整理得到下面公式:
[0157]
z1=([b1]
_1
[b1]
_2
... [b1]
_p
)-([a1]
_1
[a1]
_2
... [a1]
_p
)=b
1-a1[0158]
z2=([b2]
_1
[b2]
_2
... [b2]
_p
)-([a2]
_1
[a2]
_2
... [a2]
_p
)=b
2-a2[0159][0160]zn
=([bn]
_1
[bn]
_2
... [bn]
_p
)-([an]
_1
[an]
_2
... [an]
_p
)=b
n-an[0161]
例如,第一计算节点获取第一计算节点的3个第一差值为[z1]1、[z2]1、[z3]1,获取第2个计算节点的3个第一差值为[z1]
_2
、[z2]
_2
、[z3]
_2
,获取第3个计算节点的3个第一差值为[z1]
_3
、[z2]
_3
、[z3]
_3

[0162]
第一计算节点将接收到的3*3个第一差值相应进行叠加计算出3个第二差值,分别为:z1、z2、z3。
[0163]
z1=[z1]
_1
[z1]
_2
[z1]
_3

[0164]
z2=[z2]
_1
[z2]
_2
[z2]
_3

[0165]
z3=[z3]
_1
[z3]
_2
[z3]
_3

[0166]
其中,第一差值[z1]
_1
,[z1]
_2
,[z1]
_3
分别为第二差值z1的分片,第一差值[z2]
_1
,[z2]
_2
,[z2]
_3
分别为第二差值z2的分片,第一差值[z3]
_1
,[z3]
_2
,[z3]
_3
分别为第二差值z3的一个分片。
[0167]
第二步骤:p个计算节点中任意一个计算节点使用预设的计算方式,对获取的辅助数据和n个第二差值,得到目标结果分片。
[0168]
其中,所述目标结果分片符合以下函数:
[0169]
[f(x
1j
,x
2j
,......x
nj
)]_j
[0170]
[f(x
1j
,x
2j
,......x
nj
)]_j的值表示第j个计算节点得到的目标结果分片,x
ij
表示第j个计算节点获取第i个加密隐私数据的一个第二分片,j为小于或等于p的正整数,i表示小于或等于n的正整数;f(.)中各项式的系数均已知;所述第j个计算节点得到的目标结果分片由所述计算方将所述n个第二差值和函数f(.)的系数相乘得到函数g(.)的每个系数,并将函数g(.)的每个系数与所述辅助数据中对应的分片相乘得到多项乘积后,再将所述多项乘积相加得到的;所述函数g(.)为关于加密随机数据的函数。
[0171]
示例性的,预设的计算方式对应设定目标函数符合以下:
[0172]
f(x1,x2,......xn)
[0173]
可以将n个加密隐私数据或n个加密隐私数据的一个分片作为目标函数中n个变量x的输入值。即可以用变量x表示加密隐私数据,其中,目标函数f(.)中的各项系数均为已知的。用变量y表示加密随机数据,变量z表示第二差值,由于z=x-y,那么令x=y z,即:
[0174]
f(x1,x2,......xn)=f(y1 z1,y2 z2,......yn zn)
[0175]
其中,p个计算节点中任意一个计算节点均可以通过上述步骤,确定出n个第二差值z1,z2,...,zn。
[0176]
因此,目标函数中只有y1,y2,...,yn为未知变量,进一步转换得到下面函数:
[0177]
f(y1 z1,y2 z2,......yn zn)=g(y1,y2,...,yn)
[0178]
其中,函数g(
·
)为关于变量y的函数,即函数g(
·
)为关于加密随机数据的函数。
[0179]
由于f(
·
)的各项式的系数均为已知的,且针对函数f(y1 z1,y2 z2,......yn zn)中的z1,z2,...,zn,p个计算节点中任意一个计算节点也可以计算出,因此,g(y1,y2,...,yn)
展开后的各项式的系数也可以计算得到。
[0180]
函数g(y1,y2,...,yn)的各项式中,包括:一个加密随机数据与该函数的系数的乘积,或至少一个加密随机数据与该函数的系数之间的乘积,以及至少一个加密随机数据的次幂与该函数系数的乘积。
[0181]
p个计算节点中任意一个计算节点计算得到的函数g(y1,y2,...,yn)的各项式乘积,可以在该计算节点获取的辅助数据找到,该计算节点可以将辅助数据中找到的各项式乘积值与函数g(y1,y2,...,yn)中相应的系数相乘,得到函数g(y1,y2,...,yn)的各项式的结果值,最后将函数g(y1,y2,...,yn)的各项式的结果值相加,得到函数g(y1,y2,...,yn)的结果值,即函数g(y1,y2,...,yn)的结果值为该计算节点的目标结果分片。最后,将该计算节点的目标结果分片作为设定目标函数下一次计算中的一个加密隐私数据的一个分片。
[0182]
例如,设定目标函数为f(x1,x2,x3)=λ1x1 λ2x
22
λ3x
33
,其中,λ1,λ2,λ3的值均为已知的,以第一个计算节点为例,其执行的计算过程如下:
[0183]
将目标函数f(x1,x2,x3)=λ1x1 λ2x
22
λ3x
33
转换得到下面公式:
[0184]
f(y1 z1,y2 z1,y3 z1)=λ1(y1 z1) λ2(y2 z2)2 λ3(y3 z3)3[0185]
=λ1y1 λ1z1 λ2(y
22
2y2z2 z
22
) λ3(y
32
2y3z3 z
32
)
[0186]
=λ1y1 λ1z1 λ2y
22
2λ2z2y2 λ2z
22
λ3y
32
2λ3z3y3 λ3z
32
[0187]
其中,令θ1=λ1z1,θ2=2λ2z2,θ3=λ2z
22
,θ4=2λ3z3,θ5=λ3z
32
,且θ1、θ2、θ3、θ4、θ5均可计算出。
[0188]
那么f(y1 z1,y2 z1,y3 z1)转换成以下函数公式:
[0189]
g(y1,y2,y3)=λ1y1 θ1 λ2y
22
θ2y2 θ3 λ3y
32
θ4y3 θ5[0190]
其中,第一计算节点获取到加密随机数据的第一分片,分别为:[a1]_1,[a2]_1,[a3]_1第一计算节点获取的辅助数据中包括:a1、a
22
、a2、a
32
、a3的分片,即[a1]_1、[a
22
]_1、[a2]_1、[a
32
]_1、[a3]_1的值。将[a1]_1、[a
22
]_1、[a2]_1、[a
32
]_1、[a3]_1的值分别替换函数g(y1,y2,y3)公式中的y1、y
22
、y2、y
32
、y3,最终计算得到函数g(
·
)的结果,即等于目标函数f(
·
)的结果。
[0191]
应理解,由于变量y输入的a值均为分片形式,因此,函数f(
·
)的结果值为目标结果分片。
[0192]
需要注意的是,p个计算节点中其它的p-1个计算节点的计算过程,具体可参考第一计算节点的计算过程,此处不再具体赘述。p个计算节点得到的目标结果分片可以表示为:f(
·
)_1,f(
·
)_2...,f(
·
)_p。
[0193]
s206:p个计算节点中任意一个计算节点将执行目标任务后得到的目标结果分片发送给主节点,主节点接收p个计算节点执行目标任务后得到的目标结果分片。
[0194]
s207:主节点根据所述p个计算节点执行所述目标任务后得到的所述目标结果分片,得到所述n个加密隐私数据的目标结果数据。
[0195]
在一种实施方式中,主节点根据p个计算节点执行目标任务后得到的目标结果分片,确定n个加密隐私数据的目标结果数据,可以通过以下但不限于以下方式实现:
[0196]
主节点将所述p个计算节点执行所述目标任务后得到的所述目标结果分片相加,得到所述n个加密隐私数据的目标结果数据。
[0197]
在另一种实施方式中,主节点可以将得到的目标结果数据作为一个新的加密隐私
数据,并且可以将p个计算节点执行目标任务后得到的目标结果分片,作为一个新的加密隐私数据的p个分片,该新的加密隐私数据用于目标任务的下一次计算中。
[0198]
例如,基于上述步骤s205中,加密隐私数据为b1、b2、b3,加密随机数据为a1、a2、a3。p个计算节点得到的p个目标结果分片分别为:[f(x1,x2,x3)]_1、[f(x1,x2,x3)]_2
……
[f(x1,x2,x3)]_p,每个计算节点均以a1,a2,a3的分片替换函数中的x1,x2,x3。具体如下:
[0199]
在第一计算节点中:[a1]_1作为x1值、[a2]_1作为x2值、[a3]_1作为x3值,计算得到函数[f(x1,x2,x3)]_1的值(即第一计算节点的目标结果分片)。
[0200]
同理,其它p-1个计算节点可根据第一计算节点的计算方式,得到函数[f(x1,x2,x3)]_2
……
[f(x1,x2,x3)]_p。
[0201]
最后,主节点节获取p个计算节点的目标结果分片,即[f(x1,x2,x3)]_1、[f(x1,x2,x3)]_2
……
[f(x1,x2,x3)]_p。主节点将[f(x1,x2,x3)]_1、[f(x1,x2,x3)]_1、[f(x1,x2,x3)]_2
……
[f(x1,x2,x3)]_p作为一个新的加密隐私数据b4的p个分片。
[0202]
具体可以表示为:
[0203]
[f(x1,x2,x3)]_1=[b4]_1
[0204]
[f(x1,x2,x3)]_2=[b4]_2
[0205][0206]
[f(x1,x2,x3)]_p=[b4]_p
[0207]
[b4]_1 [b4]_2 ... [b4]_p=b4[0208]
上述b4为一个完整数值,b4可以作为目标任务的下一次计算的一个加密隐私数据。
[0209]
例如,主节点确定目标任务下一次计算的加密隐私数据为b4,b5,b6,确定对应的加密随机数据为a4,a5,a6,主节点和p个计算节点执行目标任务的下一次计算时,具体计算过程与上述步骤s201-s206相同,此处不再具体赘述。
[0210]
需要注意的是,p个计算节点输出的p个目标结果最为该目标任务的最终输出。
[0211]
根据以上,显然可知,计算目标函数时,无论目标函数多复杂(乘法阶数高),计算阶段只需要一轮通信即可完成目标函数的计算。并且通信量只与目标函数的加密隐私数据的数量有关,无论目标函数多复杂,只要目标函数的加密输入数值是固定的,那么计算目标函数的阶段所涉及的通信量也是固定的(即计算阶段的通信量与目标函数的加密隐私数据的数量相关)。
[0212]
综上所述,本技术方案,首先,主节点获取数据提供方提供的n个加密隐私数据,并为每个加密隐私数据确定对应的n个加密随机数据;然后,主节点将n个加密随机数据中的每个加密随机数据分别划分成p个第一分片,并将n个加密隐私数据中的每个加密隐私数据分别划分成p个第二分片,主节点再将每个加密随机数据中的p个第一分片和每个加密隐私数据中的p个第二分片,分别发送给p个计算节点,使得每个计算节点接收到n个第一分片和n个第二分片;进一步,主节点分别向p个计算节点发送目标任务,该目标任务用于指示对应的计算节点使用预设的计算方式对接收的第一分片和第二分片进行计算,得到目标结果分片;最后,主节点分别接收p个计算节点执行该目标任务后得到的目标结果分片。由于目标函数的乘法阶数越高时,则计算阶段通信轮数就越多,本技术的方法可以保证在不泄露数据提供方提供的数据前提下,使得完成目标任务所需要的通信轮数较少,从而可以高效完成目标任务。
[0213]
基于以上实施例提供的一种数据处理的方案,还可以用于处理加密隐私数据的逻辑运算中。具体可以如下:
[0214]
例如,当主节点确定数据提供方提供的加密隐私数据都为0或1时,将每个加密输入的一个分片提供给p个计算节点中每个计算节点。若p个计算节点中任意一个计算节点从主节点接收到目标任务,该目标任务用于指示所述p个计算节点中任意一个计算节点计算加密隐私数据之间的逻辑运算(包括与、或、非、异或等)。
[0215]
所述任意一个计算节点可以利用二元域(素数域f2)的运算规律、加密隐私数据,以及加密隐私数据的分片,执行上述步骤s201-s206,以完成加密隐私数据之间的逻辑运算。具体理由:
[0216]
第一:上述步骤s201-s206中所处理的加密隐私数据和辅助数据可以是来自某个环(例如,整数环、矩阵环、多项式剩余类环等)。由于素数域是特殊的整数环,因此,在素数域上,可以执行上述步骤s201-s207。
[0217]
第二:由于逻辑运算“异或”和“与”通过组合可以表示处所有逻辑运算。
[0218]
第三:逻辑运算中的“异或”和“与”运算恰好是素数域f2上的“加法”和“乘法”。
[0219]
本技术方案,在针对完成一个逻辑运算的目标任务时,可以被转化为素数域f2上的算数运算任务。因此,当计算节点要计算一个逻辑运算的目标任务时,可以先将逻辑运算的计算任务转化为素数域f2上关于秘密输入值的多项式计算,之后只需按照上述本技术实施例的方法(可参考上述步骤s201-s206),即可完成逻辑运算任务的计算。
[0220]
因此,相比现有的逻辑运算任务的安全多方计算而言,本技术方案中,计算节点可以计算关于加密隐私数据(所有加密隐私数据都是0或1)的任意逻辑运算任务,而且可有效减少了计算过程中涉及通信量和通信轮数,从而有效提高数据处理效率,节省系统的计算所造成的开销。
[0221]
基于同一技术构思,本技术实施例提供一种数据处理的装置,具有上述方法实施例中主节点的行为功能。该数据处理的装置可以包括执行上述方法实施例中所描述的方法/操作/步骤/动作所一一对应的模块或单元,该模块或单元可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。该装置可以具有如图4所示的结构。
[0222]
如图4所示,该装置400可包括通信单元401、处理单元402、存储单元403,下面对各单元进行具体的介绍。
[0223]
通信单元401,用于获取数据提供方提供的n个加密隐私数据,并为n个加密隐私数据确定对应的n个加密随机数据;所述n为正整数;
[0224]
处理单元402,用于将所述n个加密随机数据中的每个加密随机数据分别划分成p个第一分片,并将所述n个加密隐私数据中的每个加密隐私数据分别划分成p个第二分片;所述p为所述主节点管理的计算节点的数量;
[0225]
所述通信单元401,还可以用于将所述每个加密随机数据中的p个第一分片,分别发送给p个计算节点,并将所述每个加密隐私数据中的p个第二分片,然后,分别发送给所述p个计算节点,使得每个计算节点接收到n个所述第一分片和n个所述第二分片;并分别向所述p个计算节点发送目标任务,所述目标任务用于指示对应的计算节点使用预设的计算方式对接收的所述第一分片和所述第二分片进行计算,得到目标结果分片;最后,获取所述p个计算节点执行所述目标任务后得到的所述目标结果分片;
[0226]
所述处理单元,还可以用于根据所述p个计算节点执行所述目标任务后得到的所述目标结果分片,得到所述n个加密隐私数据的目标结果数据。
[0227]
在一种可能的设计中,所述通信单元401,还用于向所述p个计算节点中的任意一个计算节点发送所述任意一个计算节点的辅助数据和/或差值;其中,所述任意一个计算节点的辅助数据中包括:所述n个加密随机数据中任意一个加密随机数据的一个分片和至少两个加密随机数据之间乘积的一个分片以及任意一个加密随机数据次幂的一个分片;所述任意一个计算节点的n个差值为所述主节点发送给所述任意一个计算节点的所述n个第一分片中每个所述第一分片和对应的所述第二分片的差值。
[0228]
在一种可能的设计中,所述目标结果分片符合以下函数:
[0229]
[f(x
1j
,x
2j
,......x
nj
)]_j
[0230]
[f(x
1j
,x
2j
,......x
nj
)]_j的值表示第j个计算节点得到的目标结果分片,x
ij
表示第j个计算节点获取第i个加密隐私数据的一个第二分片,j为小于或等于p的正整数,i表示小于或等于n的正整数;f(.)中各项式的系数均已知;所述第j个计算节点得到的目标结果分片由所述计算方将所述n个第二差值和函数f(.)的系数相乘得到函数g(.)的每个系数,并将函数g(.)的每个系数与所述辅助数据中对应的分片相乘得到多项乘积后,再将所述多项乘积相加得到的;所述函数g(.)为关于加密随机数据的函数。
[0231]
在一种可能的设计中,所述处理单元402,在根据所述p个计算节点执行所述目标任务后得到的所述目标结果分片,确定所述n个加密隐私数据的目标结果数据时,具体可以用于:将所述p个计算节点执行所述目标任务后得到的所述目标结果分片相加,得到所述n个加密隐私数据的目标结果数据。
[0232]
存储单元403,可以用于存储数据或指令。
[0233]
基于同一技术构思,本技术实施例提供一种数据处理的装置,具有上述方法实施例中计算节点的行为功能。该数据处理的装置可以包括执行上述方法实施例中所描述的方法/操作/步骤/动作所一一对应的模块或单元,该模块或单元可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。该装置也可以具有如图4所示的结构。
[0234]
如图4所示,该装置400可包括通信单元401、处理单元402、存储单元403,下面对各单元进行具体的介绍。
[0235]
通信单元401,用于接收主节点发送的n个第一分片,所述n个第一分片为所述主节点对生成的n个加密随机数据中的每个加密随机数据划分成p个第一分片,并将所述每个加密随机数据中的p个第一分片分别发送给p个计算节点得到的;所述p为所述主节点管理的计算节点的数量;所述n为正整数;
[0236]
接收所述主节点发送的n个第二分片,所述n个第二分片为所述主节点对数据提供方提供的n个加密隐私数据中的每个加密隐私数据划分成p个第二分片,并将所述每个加密隐私数据中的p个第二分片分别发送给所述p个计算节点得到的;
[0237]
接收所述主节点发送的目标任务,所述目标任务用于指示所述计算节点使用预设的计算方式对接收的所述n个第一分片和所述n个第二分片进行计算;
[0238]
处理单元402,用于使用所述预设的计算方式,对所述n个第一分片和所述n个第二分片进行计算,得到目标结果分片,并将所述目标结果分片发送给所述主节点。
[0239]
在一种可能的设计中,所述通信单元401,还用于获取多个辅助数据,所述多个辅
助数据根据所述n个第一分片得到的;
[0240]
所述处理单元402在使用所述预设的计算方式,对所述n个第一分片和所述n个第二分片进行计算,得到计算结果时,具体可以用于使用所述预设的计算方式,对所述n个第一分片和所述n个第二分片,以及所述辅助数据进行计算,得到目标结果分片。
[0241]
在一种可能的设计中,所述通信单元401在获取多个辅助数据时,具体用于:先接收由所述主节点使用多方乘法协议算法,然后对所述n个加密随机数据进行计算得到的辅助数据;所述辅助数据中包括:所述n个加密随机数据中任意一个加密随机数据的一个分片和至少两个加密随机数据之间乘积的一个分片以及任意一个加密随机数据次幂的一个分片。
[0242]
在一种可能的设计中,所述处理单元402,在使用所述预设的计算方式,对所述n个第一分片和所述n个第二分片,以及所述辅助数据进行计算,得到目标结果分片时,具体可以用于:首先,确定所述n个第一分片中每个所述第一分片和对应的所述第二分片之间的差值,得到n个第一差值;或者通过所述通信单元401接收由所述主节点确定的所述n个第一分片中每个所述第一分片和对应的所述第二分片之间的第一差值;
[0243]
然后,通过所述通信单元401获取其它p-1个计算节点分别发送的n个第一差值,所述p-1个计算节点中任意一个计算节点的n个第一差值为所述任意一个计算节点接收的所述n个第一分片中每个所述第一分片和对应的所述第二分片的差值;或者所述p-1个计算节点中任意一个计算节点的n个第一差值为所述主节点确定的所述任意一个计算节点接收到的所述n个第一分片中每个所述第一分片和对应的所述第二分片的差值;
[0244]
进一步的,将p*n个第一差值中来自相同加密随机数据和加密隐私数据的第一差值进行叠加,得到n个第二差值,所述n个第二差值用于表示所述n个加密隐私数据与所述n个加密随机数据之间的差值;
[0245]
最后,使用所述预设的计算方式,对获取的所述辅助数据和所述n个第二差值,得到所述目标结果分片。
[0246]
在一种可能的设计中,所述目标结果分片符合以下函数:
[0247]
[f(x
1j
,x
2j
,......x
nj
)]_j
[0248]
[f(x
1j
,x
2j
,......x
nj
)]_j的值表示第j个计算节点得到的目标结果分片,x
ij
表示第j个计算节点获取第i个加密隐私数据的一个第二分片,j为小于或等于p的正整数,i表示小于或等于n的正整数;f(.)中各项式的系数均已知;所述第j个计算节点得到的目标结果分片由所述计算方将所述n个第二差值和函数f(.)的系数相乘得到函数g(.)的每个系数,并将函数g(.)的每个系数与所述辅助数据中对应的分片相乘得到多项乘积后,再将所述多项乘积相加得到的;所述函数g(.)为关于加密随机数据的函数。
[0249]
存储单元403,可以用于存储数据或指令。
[0250]
此外,本技术实施例还提供一种本技术所使用的数据处理设备,该数据处理设备可以具有如图5所示的结构,所述数据处理设备可以作为主节点,也可以是能够支持主节点实现上述方法的芯片或芯片系统。如图5所示的数据处理设备500可以包括至少一个处理器502,所述至少一个处理器502用于与存储器503耦合,读取并执行所述存储器中的指令以实现本技术实施例提供的方法中主节点涉及的步骤。可选的,该装置500还可以包括通信模块501,所述通信模块501可以用于支持所述数据处理设备500进行信令或者数据的接收或发
送。设备500中的通信模块501,可用于实现上述主节点的通信单元401所具有的功能,例如,通信模块501可用于装置500执行如图2所示的数据处理方法中的s203、s204和s206,所示步骤,处理器502可用于实现上述处理单元402所具有的功能,例如,处理器502可用于设备500执行如图2所示的数据处理方法中的s201和s202、s207,所示步骤。此外,通信模块501可与天线耦合,用于支持该设备500进行通信。可选的,数据处理设备500还可以包括存储器503,其中存储有计算机程序、指令,存储器503可以与处理器502和/或通信模块501耦合,用于支持处理器502调用存储器503中的计算机程序、指令以实现本技术实施例提供的方法中主节点涉及的步骤;另外,存储器503还可以用于存储本技术方法实施例所涉及的数据,例如,用于存储支持通信模块501实现交互所必须的数据、信息。
[0251]
此外,本技术实施例还提供一种本技术所使用的数据处理设备,该数据处理设备也可以具有如图5所示的结构,所述数据处理设备可以作为主节点所管理的多个计算节点中任意一个节点,也可以是能够支持所述任意一个计算节点实现上述方法的芯片或芯片系统。如图5所示的数据处理设备500可以包括至少一个处理器502,所述至少一个处理器502用于与存储器503耦合,读取并执行所述存储器中的指令以实现本技术实施例提供的方法中计算节点涉及的步骤。可选的,该设备500还可以包括通信模块501,所述通信模块501可以用于支持所述数据处理设备500进行信令或者数据的接收或发送。设备500中的通信模块501,可用于实现上述计算节点的通信单元401所具有的功能,例如,通信模块501可用于装置500执行如图2所示的数据处理方法中的s203、s204和s206,所示步骤,处理器502可用于实现上述计算节点的处理单元402所具有的功能,例如,处理器502可用于设备500执行如图2所示的数据处理方法中的s205,所示步骤。此外,通信模块501可与天线耦合,用于支持该设备500进行通信。可选的,数据处理设备500还可以包括存储器503,其中存储有计算机程序、指令,存储器503可以与处理器502和/或通信模块501耦合,用于支持处理器502调用存储器503中的计算机程序、指令以实现本技术实施例提供的方法中主节点涉及的步骤;另外,存储器503还可以用于存储本技术方法实施例所涉及的数据,例如,用于存储支持通信模块501实现交互所必须的数据、信息。
[0252]
本技术实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于单元或模块之间的信息交互。本技术实施例中不限定上述通信模块、处理器和存储器之间的连接介质。例如,本技术实施例在图5中的通信模块501、处理器502、存储器503之间可以通过总线504连接,所述总线可以分为地址总线、数据总线、控制总线等。
[0253]
本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本技术各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0254]
本技术实施例提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序包括用于执行上述方法实施例的指令。
[0255]
本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例。
[0256]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术实施
例可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括ran、ron、电可擦可编程只读存储器(electrically erasable progrannable read only nenory,eepron)、只读光盘(conpact disc read-only nenory,cd-ron)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(digital subscriber line,dsl)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、dsl或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本技术实施例所使用的,盘(disk)和碟(disc)包括压缩光碟(conpact disc,cd)、激光碟、光碟、数字通用光碟(digital video disc,dvd)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
[0257]
总之,以上所述仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡根据本技术的揭露,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献