多方协同向量内积计算方法、设备、介质及系统与流程
未命名
08-29
阅读:85
评论:0

1.本发明涉及数据处理技术领域,尤其涉及一种多方协同向量内积计算方法、数据提供方设备、计算方设备、计算机可读存储介质及多方协同向量内积计算系统。
背景技术:
2.随着数据产业的发展,许多业务需要借助多方的数据才能更好的开展,比如多方协同的ai建模、联合数据分析挖掘等。但基于隐私保护和数据安全考虑或受限于法律法规等对数据共享的限制,企业间无法直接共享数据。在这一背景下,需要借助技术手段来实现支持隐私保护的数据协同。向量内积计算是ai模型训练、数据挖掘、数据分析领域的一种基本运算。
3.目前实现多方协同向量内积计算的方案大多是基于通用的隐私计算技术,例如,基于传统加法秘密分享机制来实现的,加法秘密分享技术涉及到beaver三元组的生成和分发,需要的计算量较大,或者需要借助半可信的第三方节点,在实际场景中面临较大制约。
技术实现要素:
4.本发明所要解决的技术问题是针对现有技术的上述不足,提供一种多方协同向量内积计算方法、数据提供方设备、计算方设备、计算机可读存储介质及多方协同向量内积计算系统,以解决现有技术多方协同向量内积计算的方案面临较大制约的问题。
5.第一方面,本发明提供一种多方协同向量内积计算方法,应用于数据提供方设备a/b,所述方法包括:
6.将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个第一向量分片xi/yi以及第二向量分片xi′
/yi′
,xi/yi以及xi′
/yi′
至少之一携带验证信息,i∈[1...p];
[0007]
将p个xi/yi以及xi′
/yi′
分别发送给p个计算方设备ci,以使:
[0008]
p个ci各自接收来自a和b的xi和yi以及xi′
和yi′
,并根据xi和yi以及xi′
和yi′
进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个ci将o以及o
′
发送给a和b;
[0009]
接收来自某个ci的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。
[0010]
可选地,所述方法中:
[0011]
x=(x1...xn)/y=(y1...yn),x和y的内积
[0012]
xi/yi是与b/a协商,对x/y在相同随机位置插入随机验证数获得扩充向量x/y后,根据乘法秘密分享模式将x/y分解为p个分片而获得的扩充向量分片;
[0013]
xi′
/yi′
是与b/a协商,对x/y在相同随机位置插入随机验证数,并将随机验证数之外的每一元素xj/yj乘以随机系数获得扩充系数向量x
′
/y
′
后,根据乘法秘密分享模式将x
′
/y
′
分解为p个分片而获得的扩充系数向量分片;
[0014]
o是由p个ci根据xi和yi协同计算而获得的扩充向量内积,o
′
是由p个ci根据xi′
和yi′
协同计算而获得的扩充系数向量内积。
[0015]
可选地,根据o以及o
′
获得并验证x和y的内积,具体包括:
[0016]
根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数z
′
,并根据z
′
和随机系数验证z,其中o以及o
′
由p个ci按照以下步骤获得:
[0017]
p个ci各自根据自身接收到的xi和yi计算扩充向量元素积分片si,以及根据自身接收到的xi′
和yi′
计算扩充系数向量元素积分片si′
,
[0018]
使某个ci获取到来自p个ci的si以及si′
,并根据p个si计算o,以及根据p个si′
计算o
′
。
[0019]
可选地,将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个第一向量分片xi/yi以及第二向量分片xi′
/yi′
,具体包括:
[0020]
获取与b/a相同的随机验证数r、随机位置数k、随机系数α;
[0021]
将r按照k插入x/y以获得x=(x1...x
k-1
...r...x
k+1
...xn)/y=(y1...y
k-1
...r...y
k+1
...yn);
[0022]
将xj/yj乘以α以获得x
′
=(αx1...αxk-1
...r...αx
k+1
...αxn)/y
′
=(αy1...αy
k-1
...r...αy
k+1
...αyn);
[0023]
按照或,
[0024]
将x/y分解为xi=(x
1i
...r
ix
...x
ni
)/yi=(y
1i
...r
iy
...y
ni
),以及将x
′
/y
′
分解为xi′
=(αx
1i
...r
′
ix
...ax
ni
)/yi′
=(αy
1i
...r
′
iy
...αy
ni
)。
[0025]
可选地,获取与b/a相同的随机验证数r、随机位置数k、随机系数α,具体包括:
[0026]
生成随机验证数r、随机位置数k、随机系数α,并将r、k、α发送给b/a;或者,接收来自b/a的随机验证数r、随机位置数k、随机系数α。
[0027]
可选地,根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数z
′
,并根据z
′
和随机系数验证z,具体包括:
[0028]
根据o和r计算z=o-rr,其中o由某个ci按照下式获得:
[0029]
其中si由p个ci各自按照下式获得:
[0030]
si=(x
1iy1i
,...,r
ixriy
,...,x
niyni
);
[0031]
根据o
′
和r计算z
′
=o
′‑
rr,其中o
′
由某个ci按照下式获得:
[0032]
其中si′
由p个ci各自按照下式获得:
[0033]
si′
=(αx
1i
αy
1i
,...,r
′
ixr′
iy
,...,αx
ni
αy
ni
);
[0034]
验证z
′
与α
2p
z是否相等,如果相等,则z验证通过。
[0035]
第二方面,本发明提供一种多方协同向量内积计算方法,应用于计算方设备ci,i∈[1...p],所述方法包括:
[0036]
接收来自数据提供方设备a和b的第一向量分片xi和yi以及第二向量分片xi′
和yi′
,其中:
[0037]
由a/b分别将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个xi/yi以及xi′
/yi′
,并分别发送给p个ci,xi/yi以及xi′
/yi′
至少之一携带验证信息,i∈
[1...p];
[0038]
根据xi和yi以及xi′
和yi′
与其余(p-1)个ci进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个ci将o以及o
′
发送给a和b,以使:
[0039]
a和b接收来自某个ci的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。
[0040]
可选地,所述方法中:
[0041]
x=(x1...xn)/y=(y1...yn),x和y的内积
[0042]
xi/yi是由a/b与b/a协商,对x/y在相同随机位置插入随机验证数获得扩充向量x/y后,根据乘法秘密分享模式将x/y分解为p个分片而获得的扩充向量分片;
[0043]
xi′
/yi′
是由a/b与b/a协商,对x/y在相同随机位置插入随机验证数,并将随机验证数之外的每一元素xj/yj乘以随机系数获得扩充系数向量x
′
/y
′
后,根据乘法秘密分享模式将x
′
/y
′
分解为p个分片而获得的扩充系数向量分片;
[0044]
o是由p个ci根据xi和yi协同计算而获得的扩充向量内积,o
′
是由p个ci根据xi′
和yi′
协同计算而获得的扩充系数向量内积。
[0045]
可选地,根据xi和yi以及xi′
和yi′
与其余(p-1)个ci进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个ci将o以及o
′
发送给a和b,具体包括:
[0046]
根据自身接收到的xi和yi计算扩充向量元素积分片si,以及根据自身接收到的xi′
和yi′
计算扩充系数向量元素积分片si′
;
[0047]
使某个ci获取到来自p个ci的si以及si′
,并根据p个si计算o,以及根据p个si′
计算o
′
,且将o以及o
′
发送给a和b,以使:
[0048]
a和b根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数z
′
,并根据z
′
和随机系数验证z。
[0049]
可选地,使某个ci获取到来自p个ci的si以及si′
,具体包括:
[0050]
获取自身计算获得的si以及si′
,并接收来自其余(p-1)个ci的si以及si′
,以使自身获取到来自p个ci的si以及si′
;或者,向其余(p-1)个ci中的某个ci发送si以及si′
,以使其余(p-1)个ci中的某个ci获取到来自p个ci的si以及si′
。
[0051]
可选地,根据自身接收到的xi和yi计算扩充向量元素积分片si,以及根据自身接收到的xi′
和yi′
计算扩充系数向量元素积分片si′
,具体包括:
[0052]
根据自身接收到的xi和yi计算si=(x
1iy1i
,...,r
ixriy
,...,x
niyni
),以及根据自身接收到的xi′
和yi′
计算si′
=(αx
1i
αy
1i
,...,r
′
ixr′
iy
,...,αx
ni
αy
ni
),其中xi/yi以及xi′
/yi′
分别由a/b按照以下步骤获得:
[0053]
获取与b/a相同的随机验证数r、随机位置数k、随机系数α;
[0054]
将r按照k插入x/y以获得x=(x1...x
k-1
...r...x
k+1
...xn)/y=(y1...y
k-1
...r...y
k+1
...yn);
[0055]
将xj/yj乘以α以获得x
′
=(αx1...αx
k-1
...r...αx
k+1
...αxn)/y
′
=(αy1...αy
k-1
...r...αy
k+1
...αyn);
[0056]
按照或,
[0057]
将x/y分解为xi=(x
1i
...r
ix
...x
ni
)/yi=(y1i...r
iy
...y
ni
),以及将x
′
/y
′
分解为xi′
=(αx
1i
...r
′
ix
...αx
ni
)/yi′
=(αy
1i
...r
′
iy
...αy
ni
)。
[0058]
可选地,根据p个si计算o,以及根据p个si′
计算o
′
,且将o以及o
′
发送给a和b,具体包括:
[0059]
根据p个si计算以及根据p个si′
计算
[0060]
将o以及o
′
发送给a和b,以使:a和b根据o和r计算z=o-rr,以及根据o
′
和r计算z
′
=o
′‑
rr,并验证z
′
与α
2p
z是否相等,如果相等,则z验证通过。
[0061]
第三方面,本发明提供一种数据提供方设备a/b,所述设备包括:
[0062]
分片处理模块,用于将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个第一向量分片xi/yi以及第二向量分片xi′
/yi′
,xi/yi以及xi′
/yi′
至少之一携带验证信息,i∈[1...p];
[0063]
第一计算开启模块,与分片处理模块连接,用于将p个xi/yi以及xi′
/yi′
分别发送给p个计算方设备ci,以使:
[0064]
p个ci各自接收来自a和b的xi和yi以及xi′
和yi′
,并根据xi和yi以及xi′
和yi′
进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个ci将o以及o
′
发送给a和b;
[0065]
内积验算模块,与第一计算开启模块连接,用于接收来自某个ci的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。
[0066]
第四方面,本发明提供一种计算方设备ci,i∈[1...p],所述设备包括:
[0067]
第二计算开启模块,用于接收来自数据提供方设备a和b的第一向量分片xi和yi以及第二向量分片xi′
和yi′
,其中:
[0068]
由a/b分别将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个xi/yi以及xi′
/yi′
,并分别发送给p个ci,xi/yi以及xi′
/yi′
至少之一携带验证信息,i∈[1...p];
[0069]
协同计算模块,与第二计算开启模块连接,用于根据xi和yi以及xi′
和yi′
与其余(p-1)个ci进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个ci将o以及o
′
发送给a和b,以使:
[0070]
a和b接收来自某个ci的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。
[0071]
第五方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器运行时,实现如上所述的多方协同向量内积计算方法。
[0072]
第六方面,本发明提供一种多方协同向量内积计算系统,所述系统包括:
[0073]
数据提供方设备a和b,用于分别执行如上第一方面所述的多方协同向量内积计算方法;
[0074]
p个计算方设备ci,i∈[1...p],与数据提供方设备a和b连接,用于协同执行如上第二方面所述的多方协同向量内积计算方法。
[0075]
本发明提供一种多方协同向量内积计算方法、数据提供方设备、计算方设备、计算机可读存储介质及多方协同向量内积计算系统,通过多个计算方设备协同计算两个数据提供方设备提供的两个向量的内积,为了确保数据隐私安全,数据提供方设备分别将自身的
原始向量加入验证信息并处理成分片后,发送给多个计算方设备,任意一个计算方设备均无法获取完整的向量,并由多个计算方设备协同完成对向量分片的计算,根据向量分片协同计算结果,基于对原始向量加入的验证信息,还原获得原始向量内积计算结果,以及对原始向量内积计算结果进行验证,以避免某个计算方设备的欺骗行为,确保计算结果的准确性,具有计算量小,运算速度快,计算结果易于验证,计算和通信效率高等优点,具有广阔的应用前景。
附图说明
[0076]
图1是本发明实施例的一种多方协同向量内积计算方法的流程图;
[0077]
图2是本发明实施例的一种多方协同向量内积计算系统的结构示意图;
[0078]
图3是本发明实施例的另一种多方协同向量内积计算方法的流程图;
[0079]
图4是本发明实施例的再一种多方协同向量内积计算方法的流程图;
[0080]
图5是本发明实施例的一种数据提供方设备的结构示意图;
[0081]
图6是本发明实施例的一种计算方设备的结构示意图。
具体实施方式
[0082]
为使本领域技术人员更好地理解本发明的技术方案,下面将结合附图对本发明实施方式作进一步地详细描述。
[0083]
可以理解的是,此处描述的具体实施例和附图仅仅用于解释本发明,而非对本发明的限定。
[0084]
可以理解的是,在不冲突的情况下,本发明中的各实施例及实施例中的各特征可相互组合。
[0085]
可以理解的是,为便于描述,本发明的附图中仅示出了与本发明相关的部分,而与本发明无关的部分未在附图中示出。
[0086]
可以理解的是,本发明的实施例中所涉及的每个单元、模块可仅对应一个实体结构,也可由多个实体结构组成,或者,多个单元、模块也可集成为一个实体结构。
[0087]
可以理解的是,在不冲突的情况下,本发明的流程图和框图中所标注的功能、步骤可根据不同于附图中所标注的顺序发生。
[0088]
可以理解的是,本发明的流程图和框图中,示出了根据本发明各实施例的系统、装置、设备、方法的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可代表一个单元、模块、程序段、代码,其包含用于实现规定的功能的可执行指令。而且,框图和流程图中的每个方框或方框的组合,可用实现规定的功能的基于硬件的系统实现,也可用硬件与计算机指令的组合来实现。
[0089]
可以理解的是,本发明实施例中所涉及的单元、模块可通过软件的方式实现,也可通过硬件的方式来实现,例如单元、模块可位于处理器中。
[0090]
实施例1:
[0091]
如图1所示,本发明实施例1提供一种多方协同向量内积计算方法,可应用于如图2所示的数据提供方设备a/b,所述方法至少包括如图1所示的步骤:
[0092]
s11、将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个第
一向量分片xi/yi以及第二向量分片xi′
/yi′
,xi/yi以及xi′
/yi′
至少之一携带验证信息,i∈[1...p];
[0093]
s12、将p个xi/yi以及xi′
/yi′
分别发送给p个计算方设备ci,以使:
[0094]
p个ci各自接收来自a和b的xi和yi以及xi′
和yi′
,并根据xi和yi以及xi′
和yi′
进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个ci将o以及o
′
发送给a和b;
[0095]
s13、接收来自某个ci的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。
[0096]
具体而言,在本实施例中,首先构建如图2所示的多方协同向量内积计算系统,该系统包括数据提供方设备a和b,以及p个计算方设备ci(c1...c
p
),a和b分别持有原始向量x和y,双方希望通过计算得到两个向量的内积,为防止单一计算方可获知数据提供方隐私的问题,由p个计算方设备ci(i=1,2,...p)共同计算以获得向量内积。为了实现p个ci对x和y向量内积的协同计算并保护隐私,需要对x和y分别分解为p个分片,每个ci各自接收其中一个分片,任意一个ci均无法获取到完整的向量,为了避免ci可能存在欺骗行为,同时还设计了一套验证机制,a和b对自身的原始向量加入验证信息后,分别分解为两个不同的分片xi/yi以及xi
′
/yi′
,使p个ci基于a和b分别提供的两个不同的向量分片xi和yi以及xi′
和yi′
相互进行协同计算,a和b再根据协同计算的结果以及验证机制,还原出x和y的向量内积,并实现对向量内积的验证,本实施例的方法能够确保数据隐私安全,同时确保计算结果的准确性,具有计算量小,运算速度快,计算结果易于验证,计算和通信效率高等优点,具有广阔的应用前景。
[0097]
可选地,所述方法中:
[0098]
x=(x1...xn)/y=(y1...yn),x和y的内积
[0099]
xi/yi是与b/a协商,对x/y在相同随机位置插入随机验证数获得扩充向量x/y后,根据乘法秘密分享模式将x/y分解为p个分片而获得的扩充向量分片;
[0100]
xi′
/yi′
是与b/a协商,对x/y在相同随机位置插入随机验证数,并将随机验证数之外的每一元素xj/yj乘以随机系数获得扩充系数向量x
′
/y
′
后,根据乘法秘密分享模式将x
′
/y
′
分解为p个分片而获得的扩充系数向量分片;
[0101]
o是由p个ci根据xi和yi协同计算而获得的扩充向量内积,o
′
是由p个ci根据xi′
和yi′
协同计算而获得的扩充系数向量内积。
[0102]
具体而言,在本实施例中,一种在数据提供方与计算方之间交互实现向量内积计算的示例如图3所示,首先在a和b上执行的步骤包括:s001、数据提供方根据随机数在向量中添加验证位,s002、数据提供方按照乘法模式分解向量分片,基于乘法秘密分享的方案,能够提升两方向量内积运算的速度;更具体地,a和b分别持有的待计算内积的向量x=(x1...xn)和y=(y1...yn),待计算的向量内积xj和yj分别为x和y中的元素,j∈[1...n],所设计的验证机制为,a和b对自身的原始向量进行扩充和扩充后乘系数两种处理手段,然后对扩充和扩充后乘系数的向量分别分解为分片,使p个ci基于扩充和扩充后乘系数的向量分片进行协同计算,a和b再根据协同计算的结果以及扩充和扩充后乘系数的规则,还原出x和y的向量内积,并实现对向量内积的验证,a和b扩充原始向量的方式通过在向量的随机位置插入随机数实现,扩充原始向量并加入系数的方式通过在随机位置插入随机数后将原始向量的元素乘系数实现,但插入的随机数不乘系数,这样随机数在后续还
原获得原始向量内积时可以用于验证内积结果的正确性,将向量分解为分片的方式基于乘法秘密分享模式实现,在后续计算内积时也是以乘法计算,因此无需第三方参与即可获得原始向量内积,进一步提高了计算效率。需要说明的是,随机位置、随机验证数和随机系数由a和b协商确定,对x和y插入随机验证数的位置要求相同,后续这个位置上的随机验证数会获得乘积结果,在还原获得z时减去这个乘积结果即可,可见这两个随机验证数只需a和b均知道即可,而不要求一定相同,对xi′
和yi′
亦是如此,而且x/y与xi′
/yi′
不进行运算,因此二者的随机位置也可以不同。
[0103]
可选地,根据o以及o
′
获得并验证x和y的内积,具体包括:
[0104]
根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数z
′
,并根据z
′
和随机系数验证z,其中o以及o
′
由p个ci按照以下步骤获得:
[0105]
p个ci各自根据自身接收到的xi和yi计算扩充向量元素积分片si,以及根据自身接收到的xi′
和yi′
计算扩充系数向量元素积分片si′
,
[0106]
使某个ci获取到来自p个ci的si以及si′
,并根据p个si计算o,以及根据p个si′
计算o
′
。
[0107]
具体而言,在本实施例中,在如图3所示的示例中,在p个ci上执行的步骤包括:s003、计算方根据向量分片在本地计算中间结果,s004、计算方将中间结果汇聚到其中一个计算节点,s005、其中一个计算节点根据中间结果计算汇聚结果;更具体地,p个ci基于各自接收到的向量分片进行协同计算的方法是,首先在自身对接收到的向量分片xi和yi以及xi′
和yi′
中的每个元素进行元素乘积计算,计算后将每个元素乘积结果仍然保持在对应位置形成新的向量分片si以及si′
,然后将自身新的向量分片si以及si′
发送给预先约定的某个ci,由这个ci对接收到的p个si以及si′
进行计算获得扩充向量内积o以及扩充系数向量内积o
′
。在如图3所示的示例中,p个ci获得o以及o
′
并发送给a和b后,最终由a和b执行步骤s006、数据提供方验证汇聚结果的正确性,如果通过验证,则a和b执行步骤s007、得到向量内积计算结果,否则判定s008、计算方未诚实执行计算;更具体地,基于上述运算获得的o中包含了x和y的内积和随机验证数的乘积,以及o
′
中包含了x和y的内积、随机验证数的乘积和随机系数乘积,因此,a和b在接收到o以及o
′
后,可以还原出x和y的内积,并验证该内积结果的正确性,通过算法设计即实现了对计算结果正确性的验证,更进一步提升了计算和通信的效率。
[0108]
可选地,将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个第一向量分片xi/yi以及第二向量分片xi′
/yi′
,具体包括:
[0109]
获取与b/a相同的随机验证数r、随机位置数k、随机系数α;
[0110]
将r按照k插入x/y以获得x=(x1...x
k-1
...r...x
k+1
...xn)/y=(y1...y
k-1
...r...y
k+1
...yn);
[0111]
将xj/yj乘以α以获得x
′
=(αx1...αx
k-1
...r...αx
k+1
...αxn)/y
′
=(αy1...αy
k-1
...r...αy
k+1
...αyn);
[0112]
按照或,
[0113]
将x/y分解为xi=(x
1i
...r
ix
...x
ni
)/yi=(y
1i
...r
iy
...y
ni
),以及将x
′
/y
′
分解为
xi′
=(αx
1i
...r
′
ix
...αx
ni
)/yi′
=(αy
1i
...r
′
iy
...αy
ni
)。
[0114]
具体而言,在本实施例中,一种对原始向量进行扩充、乘系数和分片处理的具体方式是,由a选取随机数r、k、α,将随机数r插入到向量x的k位置,将n维向量x扩充为n+1维,获得x=(x1...x
k-1
...r...x
k+1
...xn),r具体可以在xk之前或之后,但要求与b约定相同的插入方式,对x中除外r的每个元素xj乘以α,获得x
′
=(αx1...αx
k-1
...r...αx
k+1
...αxn),同时,a将r、k和α告知b,b按同样的流程扩充向量y=(y1...y
k-1
...r...y
k+1
...yn),并计算y
′
=(αy1...αy
k-1
...r...αy
k+1
...αyn)。a将向量x和x
′
按照乘法模式分成p份:(x
11
...r
1x
...x
n1
),(x
12
...r
2x
...x
n2
),...,(x
1p
...r
px
...x
np
)和(αx
11
...r
′
1x
...αx
n1
),(αx
12
...r
′
2x
...αx
n2
),...,(αx
1p
...r
′
px
...αx
np
),其中将向量分片xi=(x
1i
...r
ix
...x
ni
)和x
′i=(αx
1i
...r
′
ix
...αx
ni
)发送给对应的ci,b也按照类似的方法分解向量y和y
′
并发送相应的分片到ci。
[0115]
可选地,获取与b/a相同的随机验证数r、随机位置数k、随机系数α,具体包括:
[0116]
生成随机验证数r、随机位置数k、随机系数α,并将r、k、α发送给b/a;或者,接收来自b/a的随机验证数r、随机位置数k、随机系数α。
[0117]
具体而言,在本实施例中,r、k、α可由a/b任意一方生成,然后发送给另一方。
[0118]
可选地,根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数z
′
,并根据z
′
和随机系数验证z,具体包括:
[0119]
根据o和r计算z=o-rr,其中o由某个ci按照下式获得:
[0120]
其中si由p个ci各自按照下式获得:
[0121]
si=(x
1iy1i
,...,r
ixriy
,...,x
niyni
);
[0122]
根据o
′
和r计算z
′
=o
′‑
rr,其中o
′
由某个ci按照下式获得:
[0123]
其中si′
由p个ci各自按照下式获得:
[0124]
si′
=(αx
1i
αy
1i
,...,r
′
ixr′
iy
,...,αx
ni
αy
ni
);
[0125]
验证z
′
与α
2p
z是否相等,如果相等,则z验证通过。
[0126]
具体而言,在本实施例中,每个ci在本地计算:
[0127]
si=(x
1iy1i
,x
2iy2i
,...,r
ixriy
,...,x
niyni
);
[0128]
si′
=(αx
1i
αy
1i
,αx
2i
αy
2i
,...,r
′
ixr′
iy
,...,αx
ni
αy
ni
);
[0129]
每个ci都将自己计算出的si、s
′
i发送给第一个计算方c1,c1计算:
[0130][0131][0132]
并将o和o
′
发送给a和b。
[0133]
a、b计算z=o-rr,z
′
=o
′‑
rr,并验证z
′
与α
2p
z是否相等,如果相等,则验证通过,否则,可以判断出计算方存在欺骗行为,验证不通过。验证的原理是,假设某个计算方ci想欺骗a和b,伪造本地计算结果si和si′
,显然,如果随机伪造si和si′
,无法通过验证。若想伪造结果并通过验证,只有一种方法,即同比例放缩向量中的元素同时保证位置k的元素不变,
但由于位置k是保密的,只有a、b才知道,所以计算方无法伪造计算结果并通过验证。
[0134]
实施例2:
[0135]
如图4所示,本发明实施例2提供一种多方协同向量内积计算方法,可应用于如图2所示的任一计算方设备ci,i∈[1...p],所述方法至少包括如图4所示的步骤:
[0136]
s21、接收来自数据提供方设备a和b的第一向量分片xi和yi以及第二向量分片xi′
和yi′
,其中:
[0137]
由a/b分别将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个xi/yi以及xi′
/yi′
,并分别发送给p个ci,xi/yi以及xi′
/yi′
至少之一携带验证信息,i∈[1...p];
[0138]
s22、根据xi和yi以及xi′
和yi′
与其余(p-1)个ci进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个ci将o以及o
′
发送给a和b,以使:
[0139]
a和b接收来自某个ci的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。
[0140]
可选地,所述方法中:
[0141]
x=(x1...xn)/y=(y1...yn),x和y的内积
[0142]
xi/yi是由a/b与b/a协商,对x/y在相同随机位置插入随机验证数获得扩充向量x/y后,根据乘法秘密分享模式将x/y分解为p个分片而获得的扩充向量分片;
[0143]
xi′
/yi′
是由a/b与b/a协商,对x/y在相同随机位置插入随机验证数,并将随机验证数之外的每一元素xj/yj乘以随机系数获得扩充系数向量x
′
/y
′
后,根据乘法秘密分享模式将x
′
/y
′
分解为p个分片而获得的扩充系数向量分片;
[0144]
o是由p个ci根据xi和yi协同计算而获得的扩充向量内积,o
′
是由p个ci根据xi′
和yi′
协同计算而获得的扩充系数向量内积。
[0145]
可选地,根据xi和yi以及xi′
和yi′
与其余(p-1)个ci进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个ci将o以及o
′
发送给a和b,具体包括:
[0146]
根据自身接收到的xi和yi计算扩充向量元素积分片si,以及根据自身接收到的xi′
和yi′
计算扩充系数向量元素积分片si′
;
[0147]
使某个ci获取到来自p个ci的si以及si′
,并根据p个si计算o,以及根据p个si′
计算o
′
,且将o以及o
′
发送给a和b,以使:
[0148]
a和b根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数z
′
,并根据z
′
和随机系数验证z。
[0149]
可选地,使某个ci获取到来自p个ci的si以及si′
,具体包括:
[0150]
获取自身计算获得的si以及si′
,并接收来自其余(p一1)个ci的si以及si′
,以使自身获取到来自p个ci的si以及si′
;或者,向其余(p-1)个ci中的某个ci发送si以及si′
,以使其余(p-1)个ci中的某个ci获取到来自p个ci的si以及si′
。
[0151]
可选地,根据自身接收到的xi和yi计算扩充向量元素积分片si,以及根据自身接收到的xi′
和yi′
计算扩充系数向量元素积分片si′
,具体包括:
[0152]
根据自身接收到的xi′
和yi计算si=(x
1iy1i
,...,r
ixriy
,...,x
niyni
),以及根据自身接收到的xi′
和yi′
计算si′
=(αx
1i
αy
1i
,...,r
′
ixr′
iy
,...,αx
ni
αy
ni
),其中xi/yi以及xi′
/yi′
分别由a/b按照以下步骤获得:
[0153]
获取与b/a相同的随机验证数r、随机位置数k、随机系数
α
;
[0154]
将r按照k插入x/y以获得x=(x1...x
k-1
...r...x
k+1
...xn)/y=(y1...y
k-1
...r...y
k+1
...yn);
[0155]
将xj/yj乘以α以获得x
′
=(αx1...αx
k-1
...r...αx
k+1
...αxn)/y
′
=(αy1...αy
k-1
...r...αy
k+1
...αyn);
[0156]
按照或,
[0157]
将x/y分解为xi=(x
1i
...r
ix
...x
ni
)/yi=(y
1i
...r
iy
...y
ni
),以及将x
′
/y
′
分解为xi′
=(αx
1i
...r
′
ix
...αx
ni
)/yi′
=(αy
1i
...r
′
iy
...αy
ni
)。
[0158]
可选地,根据p个si计算o,以及根据p个si′
计算o
′
,且将o以及o
′
发送给a和b,具体包括:
[0159]
根据p个si计算以及根据p个si′
计算
[0160]
将o以及o
′
发送给a和b,以使:a和b根据o和r计算z=o-rr,以及根据o
′
和r计算z
′
=o
′‑
rr,并验证z
′
与α
2p
z是否相等,如果相等,则z验证通过。
[0161]
具体而言,在本实施例中,任一计算方设备ci在根据自身接收到的向量分片计算获得中间结果后,或者通过接收其余(p-1)个ci发送的中间结果,由自身充当某个ci完成对中间结果的汇聚计算,或者向其余(p-1)个ci中的某个ci发送自身的中间结果,由这个ci完成对中间结果的汇聚计算;ci与a和b之间的交互,在实施例1中已详细说明,在此不再重复。本实施例通过p个计算方设备协同计算两个数据提供方设备提供的两个向量的内积,能够确保数据隐私安全,同时确保计算结果的准确性,具有计算量小,运算速度快,计算结果易于验证,计算和通信效率高等优点,具有广阔的应用前景。
[0162]
实施例3:
[0163]
如图2和5所示,本发明实施例3提供一种数据提供方设备a/b,所述设备a/b包括:
[0164]
分片处理模块11,用于将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个第一向量分片xi/yi以及第二向量分片xi′
/yi′
,xi/yi以及xi′
/yi′
至少之一携带验证信息,i∈[1...p];
[0165]
第一计算开启模块12,与分片处理模块11连接,用于将p个xi/yi以及xi′
/yi′
分别发送给p个计算方设备ci,以使:
[0166]
p个ci各自接收来自a和b的xi和yi以及xi′
和yi′
,并根据xi和yi以及xi′
和yi′
进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个ci将o以及o
′
发送给a和b;
[0167]
内积验算模块13,与第一计算开启模块12连接,用于接收来自某个ci的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。
[0168]
可选地,所述设备a/b中:
[0169]
x=(x1...xn)/y=(y1...yn),x和y的内积
[0170]
xi/yi是与b/a协商,对x/y在相同随机位置插入随机验证数获得扩充向量x/y后,根据乘法秘密分享模式将x/y分解为p个分片而获得的扩充向量分片;
[0171]
xi′
/yi′
是与b/a协商,对x/y在相同随机位置插入随机验证数,并将随机验证数之外的每一元素xj/yj乘以随机系数获得扩充系数向量x
′
/y
′
后,根据乘法秘密分享模式将x
′
/y
′
分解为p个分片而获得的扩充系数向量分片;
[0172]
o是由p个ci根据xi和yi协同计算而获得的扩充向量内积,o
′
是由p个ci根据xi′
和yi′
协同计算而获得的扩充系数向量内积。
[0173]
可选地,内积验算模块13,具体用于:
[0174]
根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数z
′
,并根据z
′
和随机系数验证z,其中o以及o
′
由p个ci按照以下步骤获得:
[0175]
p个ci各自根据自身接收到的xi和yi计算扩充向量元素积分片si,以及根据自身接收到的xi′
和yi′
计算扩充系数向量元素积分片si′
,
[0176]
使某个ci获取到来自p个ci的si以及si′
,并根据p个si计算o,以及根据p个si′
计算o
′
。
[0177]
可选地,分片处理模块11,具体包括:
[0178]
协商单元,用于获取与b/a相同的随机验证数r、随机位置数k、随机系数α;
[0179]
扩充单元,与协商单元连接,用于将r按照k插入x/y以获得x=(x1...x
k-1
...r...x
k+1
...xn)/y=(y1...y
k-1
...r...y
k+1
...yn);
[0180]
系数单元,与扩充单元连接,用于将xj/yj乘以α以获得x
′
=(αx1...αx
k-1
...r...αx
k+1
...αxn)/y
′
=(αy1...αy
k-1
...r...αy
k+1
...αyn);
[0181]
分解单元,与系数单元连接,用于按照分解单元,与系数单元连接,用于按照
[0182]
将x/y分解为xi=(x
1i
...r
ix
...x
ni
)/yi=(y
1i
...r
iy
...y
ni
),以及将x
′
/y
′
分解为xi′
=(αx
1i
...r
′
ix
...αx
ni
)/yi′
=(αy
1i
...y...αy
ni
)。
[0183]
可选地,协商单元,具体包括:
[0184]
第一发送单元,用于生成随机验证数r、随机位置数k、随机系数α,并将r、k、α发送给b/a;或者,第一接收单元,用于接收来自b/a的随机验证数r、随机位置数k、随机系数α。
[0185]
可选地,内积验算模块13,具体包括:
[0186]
原始内积计算单元,用于根据o和r计算z=o-rr,其中o由某个ci按照下式获得:
[0187]
其中si由p个ci各自按照下式获得:
[0188]
si=(x
1iy1i
,...,r
ixriy
,...,x
niyni
);
[0189]
验证参数计算单元,用于根据o
′
和r计算z
′
=o
′‑
rr,其中o
′
由某个ci按照下式获得:
[0190]
其中si′
由p个ci各自按照下式获得:
[0191]
si′
=(αx
1i
αy
1i
,...,r
′
ixr′
iy
,...,αx
ni
αy
ni
);
[0192]
验证判断单元,与原始内积计算单元和验证参数计算单元连接,用于验证z
′
与α
2p
z是否相等,如果相等,则z验证通过。
[0193]
实施例4:
[0194]
如图2和6所示,本发明实施例4提供一种计算方设备ci,i∈[1...p],所述设备ci包括:
[0195]
第二计算开启模块21,用于接收来自数据提供方设备a和b的第一向量分片xi和yi以及第二向量分片xi′
和yi′
,其中:
[0196]
由a/b分别将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个xi/yi以及xi′
/yi′
,并分别发送给p个ci,xi/yi以及xi′
/yi′
至少之一携带验证信息,i∈[1...p];
[0197]
协同计算模块22,与第二计算开启模块21连接,用于根据xi和yi以及xi′
和yi′
与其余(p-1)个ci进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个ci将o以及o
′
发送给a和b,以使:
[0198]
a和b接收来自某个ci的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。
[0199]
可选地,所述设备ci中:
[0200]
x=(x1...xn)/y=(y1...yn),x和y的内积
[0201]
xi/yi是由a/b与b/a协商,对x/y在相同随机位置插入随机验证数获得扩充向量x/y后,根据乘法秘密分享模式将x/y分解为p个分片而获得的扩充向量分片;
[0202]
xi′
/yi′
是由a/b与b/a协商,对x/y在相同随机位置插入随机验证数,并将随机验证数之外的每一元素xj/yj乘以随机系数获得扩充系数向量x
′
/y
′
后,根据乘法秘密分享模式将x
′
/y
′
分解为p个分片而获得的扩充系数向量分片;
[0203]
o是由p个ci根据xi和yi协同计算而获得的扩充向量内积,o
′
是由p个ci根据xi′
和yi′
协同计算而获得的扩充系数向量内积。
[0204]
可选地,协同计算模块22,具体包括:
[0205]
元素积计算单元,用于根据自身接收到的xi和yi计算扩充向量元素积分片si,以及根据自身接收到的xi′
和yi′
计算扩充系数向量元素积分片si′
;
[0206]
向量积计算单元,与元素积计算单元连接,用于使某个ci获取到来自p个ci的si以及si′
,并根据p个si计算o,以及根据p个si′
计算o
′
,且将o以及o
′
发送给a和b,以使:
[0207]
a和b根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数z
′
,并根据z
′
和随机系数验证z。
[0208]
可选地,向量积计算单元包括协同单元,具体包括:
[0209]
第二接收单元,用于获取自身计算获得的si以及si′
,并接收来自其余(p-1)个ci的si以及si′
,以使自身获取到来自p个ci的si以及si′
;或者,第二发送单元,用于向其余(p-1)个ci中的某个ci发送si以及si′
,以使其余(p-1)个ci中的某个ci获取到来自p个ci的si以及si′
。
[0210]
可选地,元素积计算单元,具体用于:
[0211]
根据自身接收到的xi和yi计算si=(x
1iy1i
,...,r
ixriy
,...,x
niyni
),以及根据自身接收到的xi′
和yi′
计算si′
=(αx
1i
αy
1i
,...,r
′
ixr′
iy
,...,αx
ni
αy
ni
),其中xi/yi以及xi′
/yi′
分别由a/b按照以下步骤获得:
[0212]
获取与b/a相同的随机验证数r、随机位置数k、随机系数α;
[0213]
将r按照k插入x/y以获得x=(x1...x
k-1
...r...x
k+1
...xn)/y=(y1...y
k-1
...r...y
k+1
...yn);
[0214]
将xj/yj乘以α以获得x
′
=(αx1...αx
k-1
...r...αx
k+1
...αxn)/y
′
=(αy1...αy
k-1
...r...αy
k+1
...αyn);
[0215]
按照或,
[0216]
将x/y分解为xi=(x
1i
...r
ix
...x
ni
)/yi=(y
1i
...r
iy
...y
ni
),以及将x
′
/y
′
分解为xi′
=(αx
1i
...r
′
ix
...αx
ni
)/yi′
=(αy
1i
...r
′
iy
...αy
ni
)。
[0217]
可选地,向量积计算单元,具体用于:
[0218]
根据p个si计算以及根据p个si′
计算
[0219]
将o以及o
′
发送给a和b,以使:a和b根据o和r计算z=o-rr,以及根据o
′
和r计算z
′
=o
′‑
rr,并验证z
′
与α
2p
z是否相等,如果相等,则z验证通过。
[0220]
实施例5:
[0221]
本发明实施例5提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器运行时,实现如实施例1或实施例2所述的多方协同向量内积计算方法。
[0222]
具体而言,在本实施例中,所述计算机程序可以运行于电子设备中,所述电子设备可以是数据提供方设备a或b,或者任一计算方设备ci,i∈[1...p],通过p个计算方设备协同计算两个数据提供方设备提供的两个向量的内积,能够确保数据隐私安全,同时确保计算结果的准确性,具有计算量小,运算速度快,计算结果易于验证,计算和通信效率高等优点,具有广阔的应用前景。所述计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于ram(random access memory,随机存取存储器),rom(read-only memory,只读存储器),eeprom(electrically erasable programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、cd-rom(compact disc read-only memory,光盘只读存储器),数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
[0223]
另外,本发明还可以提供一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行如实施例1或实施例2所述的多方协同向量内积计算方法。
[0224]
其中,存储器与处理器连接,存储器可采用闪存或只读存储器或其他存储器,处理器可采用中央处理器或单片机。
[0225]
实施例6:
[0226]
如图2所示,本发明实施例6提供一种多方协同向量内积计算系统,所述系统包括:
[0227]
数据提供方设备a和b,用于分别执行如实施例1所述的多方协同向量内积计算方法;
[0228]
p个计算方设备ci,i∈[1...p],与数据提供方设备a和b连接,用于协同执行如实施例2所述的多方协同向量内积计算方法。
[0229]
具体而言,在本实施例中,数据提供方设备a和b之间相互连接,实现对原始向量处理规则的协商,例如商定随机验证数r、随机位置数k和随机系数α,a和b分别均与p个计算方设备ci(c1,c2...c
p
)连接,用于分别向每个ci发送处理后对应的向量分片,p个ci之间相互均连接,以实现对向量分片协同计算,并在协同计算完成后获得包含原始向量内积信息和验证信息的最终结果,由其中某个ci将最终结果发送给a和b,由a和b还原和验证原始向量内积,更详细的实施过程参见实施例1的说明;通过p个计算方设备协同计算两个数据提供方设备提供的两个向量的内积,能够确保数据隐私安全,同时确保计算结果的准确性,具有计算量小,运算速度快,计算结果易于验证,计算和通信效率高等优点,具有广阔的应用前景。
[0230]
本发明实施例1-6提供一种多方协同向量内积计算方法、数据提供方设备、计算方设备、计算机可读存储介质及多方协同向量内积计算系统,通过多个计算方设备协同计算两个数据提供方设备提供的两个向量的内积,为了确保数据隐私安全,数据提供方设备分别将自身的原始向量加入验证信息并处理成分片后,发送给多个计算方设备,任意一个计算方设备均无法获取完整的向量,并由多个计算方设备协同完成对向量分片的计算,根据向量分片协同计算结果,基于对原始向量加入的验证信息,还原获得原始向量内积计算结果,以及对原始向量内积计算结果进行验证,以避免某个计算方设备的欺骗行为,确保计算结果的准确性,具有计算量小,运算速度快,计算结果易于验证,计算和通信效率高等优点,具有广阔的应用前景。
[0231]
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
技术特征:
1.一种多方协同向量内积计算方法,其特征在于,应用于数据提供方设备a/b,所述方法包括:将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个第一向量分片x
i
/y
i
以及第二向量分片x
′
i
/y
i
′
,x
i
/y
i
以及x
′
i
/y
i
′
至少之一携带验证信息,i∈[1
…
p];将p个x
i
/y
i
以及x
′
i
/y
i
′
分别发送给p个计算方设备c
i
,以使:p个c
i
各自接收来自a和b的x
i
和y
i
以及x
′
i
和y
i
′
,并根据x
i
和y
i
以及x
′
i
和y
i
′
进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个c
i
将o以及o
′
发送给a和b;接收来自某个c
i
的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。2.根据权利要求1所述的方法,其特征在于,所述方法中:x=(x1...x
n
)/y=(y1…
y
n
),x和y的内积x
i
/y
i
是与b/a协商,对x/y在相同随机位置插入随机验证数获得扩充向量x/y后,根据乘法秘密分享模式将x/y分解为p个分片而获得的扩充向量分片;x
′
i
/y
i
′
是与b/a协商,对x/y在相同随机位置插入随机验证数,并将随机验证数之外的每一元素x
j
/y
j
乘以随机系数获得扩充系数向量x
′
/y
′
后,根据乘法秘密分享模式将x
′
/y
′
分解为p个分片而获得的扩充系数向量分片;o是由p个c
i
根据x
i
和y
i
协同计算而获得的扩充向量内积,o
′
是由p个c
i
根据x
′
i
和y
i
′
协同计算而获得的扩充系数向量内积。3.根据权利要求2所述的方法,其特征在于,根据o以及o
′
获得并验证x和y的内积,具体包括:根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数z
′
,并根据z
′
和随机系数验证z,其中o以及o
′
由p个c
i
按照以下步骤获得:p个c
i
各自根据自身接收到的x
i
和y
i
计算扩充向量元素积分片s
i
,以及根据自身接收到的x
′
i
和y
i
′
计算扩充系数向量元素积分片s
′
i
,使某个c
i
获取到来自p个c
i
的s
i
以及s
′
i
,并根据p个s
i
计算o,以及根据p个s
′
i
计算o
′
。4.根据权利要求3所述的方法,其特征在于,将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个第一向量分片x
i
/y
i
以及第二向量分片x
′
i
/y
i
′
,具体包括:获取与b/a相同的随机验证数r、随机位置数k、随机系数α;将r按照k插入x/y以获得x=(x1...x
k-1
...r...x
k+1
...x
n
)/y=(y1...y
k-1
…
r
…
y
k+1
…
y
n
);将x
j
/y
j
乘以α以获得x
′
=(αx1...αx
k-1
...r...αx
k+1
...αx
n
)/y
′
=(αy1…
αy
k-1
…
r
…
αy
k+1
...αy
n
);按照或,将x/y分解为x
i
=(x
1i
...r
ix
...x
ni
)/y
i
=(y
1i
...r
iy
...y
ni
),以及将x
′
/y
′
分解为x
′
i
=(αx
1i
...r
′
ix
…
αx
ni
)/y
i
′
=(αy
1i
...r
′
iy
...αy
ni
)。5.根据权利要求4所述的方法,其特征在于,获取与b/a相同的随机验证数r、随机位置数k、随机系数α,具体包括:
生成随机验证数r、随机位置数k、随机系数α,并将r、k、α发送给b/a;或者,接收来自b/a的随机验证数r、随机位置数k、随机系数α。6.根据权利要求4或5所述的方法,其特征在于,根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数z
′
,并根据z
′
和随机系数验证z,具体包括:根据o和r计算z=o-rr,其中o由某个c
i
按照下式获得:其中s
i
由p个c
i
各自按照下式获得:s
i
=(x
1i
y
1i
,...,r
ix
r
iy
,...,x
ni
y
ni
);根据o
′
和r计算z
′
=o
′‑
rr,其中o
′
由某个c
i
按照下式获得:其中s
′
i
由p个c
i
各自按照下式获得:s
′
i
=(αx
1i
αy
1i
,...,r
′
ix
r
′
iy
,...,αx
ni
αy
ni
);验证z
′
与α
2p
z是否相等,如果相等,则z验证通过。7.一种多方协同向量内积计算方法,其特征在于,应用于计算方设备c
i
,i∈[1...p],所述方法包括:接收来自数据提供方设备a和b的第一向量分片x
i
和y
i
以及第二向量分片x
′
i
和y
i
′
,其中:由a/b分别将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个x
i
/y
i
以及x
′
i
/y
i
′
,并分别发送给p个c
i
,x
i
/y
i
以及x
′
i
/y
i
′
至少之一携带验证信息,i∈[1
…
p];根据x
i
和y
i
以及x
′
i
和y
i
′
与其余(p-1)个c
i
进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个c
i
将o以及o
′
发送给a和b,以使:a和b接收来自某个c
i
的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。8.根据权利要求7所述的方法,其特征在于,所述方法中:x=(x1…
x
n
)/y=(y1…
y
n
),x和y的内积x
i
/y
i
是由a/b与b/a协商,对x/y在相同随机位置插入随机验证数获得扩充向量x/y后,根据乘法秘密分享模式将x/y分解为p个分片而获得的扩充向量分片;x
′
i
/y
i
′
是由a/b与b/a协商,对x/y在相同随机位置插入随机验证数,并将随机验证数之外的每一元素x
j
/y
j
乘以随机系数获得扩充系数向量x
′
/y
′
后,根据乘法秘密分享模式将x
′
/y
′
分解为p个分片而获得的扩充系数向量分片;o是由p个c
i
根据x
i
和y
i
协同计算而获得的扩充向量内积,o
′
是由p个c
i
根据x
′
i
和y
i
′
协同计算而获得的扩充系数向量内积。9.根据权利要求8所述的方法,其特征在于,根据x
i
和y
i
以及x
′
i
和y
i
′
与其余(p-1)个c
i
进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个c
i
将o以及o
′
发送给a和b,具体包括:根据自身接收到的x
i
和y
i
计算扩充向量元素积分片s
i
,以及根据自身接收到的x
′
i
和y
i
′
计算扩充系数向量元素积分片s
′
i
;使某个c
i
获取到来自p个c
i
的s
i
以及s
′
i
,并根据p个s
i
计算o,以及根据p个s
′
i
计算o
′
,且将o以及o
′
发送给a和b,以使:a和b根据o和随机验证数计算z,以及根据o
′
和随机验证数计算x和y的内积验证参数
z
′
,并根据z
′
和随机系数验证z。10.根据权利要求9所述的方法,其特征在于,使某个c
i
获取到来自p个c
i
的s
i
以及s
′
i
,具体包括:获取自身计算获得的s
i
以及s
′
i
,并接收来自其余(p-1)个c
i
的s
i
以及s
′
i
,以使自身获取到来自p个c
i
的s
i
以及s
′
i
;或者,向其余(p-1)个c
i
中的某个c
i
发送s
i
以及s
′
i
,以使其余(p-1)个c
i
中的某个c
i
获取到来自p个c
i
的s
i
以及s
′
i
。11.根据权利要求9或10所述的方法,其特征在于,根据自身接收到的x
i
和y
i
计算扩充向量元素积分片s
i
,以及根据自身接收到的x
′
i
和y
i
′
计算扩充系数向量元素积分片s
′
i
,具体包括:根据自身接收到的x
i
和y
i
计算s
i
=(x
1i
y
1i
,...,r
ix
r
iy
,...,x
ni
y
ni
),以及根据自身接收到的x
′
i
和y
i
′
计算s
′
i
=(αx
1i
αy
1i
,...,r
′
ix
r
′
iy
,...,αx
ni
αy
ni
),其中x
i
/y
i
以及x
′
i
/y
i
′
分别由a/b按照以下步骤获得:获取与b/a相同的随机验证数r、随机位置数k、随机系数α;将r按照k插入x/y以获得x=(x1…
x
k-1
…
r
…
x
k+1
…
x
n
)/y=(y1…
y
k-1
…
r
…
y
k+1
...y
n
);将x
j
/y
j
乘以α以获得x
′
=(αx1...αx
k-1
...r...αx
k+1
…
αx
n
)/y
′
=(αy1…
αy
k-1
…
r
…
αy
k+1
…
αy
n
);按照或,将x/y分解为x
i
=(x
1i
…
r
ix
…
x
ni
)/y
i
=(y
1i
...r
iy
...y
ni
),以及将x
′
/y
′
分解为x
′
i
=(αx
1i
...r
′
ix
...αx
ni
)/y
i
′
=(αy
1i
...r
′
iy
...αy
ni
)。12.根据权利要求11所述的方法,其特征在于,根据p个s
i
计算o,以及根据p个s
′
i
计算o
′
,且将o以及o
′
发送给a和b,具体包括:根据p个s
i
计算以及根据p个s
′
i
计算将o以及o
′
发送给a和b,以使:a和b根据o和r计算z=o-rr,以及根据o
′
和r计算z
′
=o
′‑
rr,并验证z
′
与α
2p
z是否相等,如果相等,则z验证通过。13.一种数据提供方设备a/b,其特征在于,所述设备包括:分片处理模块,用于将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个第一向量分片x
i
/y
i
以及第二向量分片x
′
i
/y
i
′
,x
i
/y
i
以及x
′
i
/y
i
′
至少之一携带验证信息,i∈[1
…
p];第一计算开启模块,与分片处理模块连接,用于将p个x
i
/y
i
以及x
′
i
/y
i
′
分别发送给p个计算方设备c
i
,以使:p个c
i
各自接收来自a和b的x
i
和y
i
以及x
′
i
和y
i
′
,并根据x
i
和y
i
以及x
′
i
和y
i
′
进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个c
i
将o以及o
′
发送给a和b;内积验算模块,与第一计算开启模块连接,用于接收来自某个c
i
的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。14.一种计算方设备c
i
,i∈[1
…
p],其特征在于,所述设备包括:
第二计算开启模块,用于接收来自数据提供方设备a和b的第一向量分片x
i
和y
i
以及第二向量分片x
′
i
和y
i
′
,其中:由a/b分别将自身待与b/a的原始向量y/x进行内积计算的x/y,与b/a协商处理成p个x
i
/y
i
以及x
′
i
/y
i
′
,并分别发送给p个c
i
,x
i
/y
i
以及x
′
i
/y
i
′
至少之一携带验证信息,i∈[1
…
p];协同计算模块,与第二计算开启模块连接,用于根据x
i
和y
i
以及x
′
i
和y
i
′
与其余(p-1)个c
i
进行协同计算,获得第一向量内积o以及第二向量内积o
′
,且由某个c
i
将o以及o
′
发送给a和b,以使:a和b接收来自某个c
i
的o以及o
′
,并根据o以及o
′
获得并验证x和y的内积。15.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被处理器运行时,实现如权利要求1-6或7-12任一项所述的多方协同向量内积计算方法。16.一种多方协同向量内积计算系统,其特征在于,所述系统包括:数据提供方设备a和b,用于分别执行如权利要求1-6任一项所述的多方协同向量内积计算方法;p个计算方设备c
i
,i∈[1
…
p],与数据提供方设备a和b连接,用于协同执行如权利要求7-12任一项所述的多方协同向量内积计算方法。
技术总结
本发明提供一种多方协同向量内积计算方法、设备、介质及系统,涉及数据处理技术领域,用于解决现有向量内积计算方案面临较大制约的问题,所述方法包括:数据提供方设备A/B将自身待与B/A的原始向量y/x进行内积计算的x/y,与B/A协商处理成p个第一向量分片X
技术研发人员:任思颖 刘晶 刘颖慧 张作凤
受保护的技术使用者:中国联合网络通信集团有限公司
技术研发日:2023.06.06
技术公布日:2023/8/28
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/