基于安全多方计算的数据处理方法、装置及电子设备与流程

文档序号:22256843发布日期:2020-09-18 13:49阅读:305来源:国知局
基于安全多方计算的数据处理方法、装置及电子设备与流程

本说明书涉及大数据安全与隐私保护技术领域,尤其是涉及一种基于安全多方计算的数据处理方法、装置及电子设备。



背景技术:

安全多方计算(securemulti-partycomputation,简称mpc)是一种密码学技术,主要解决多个参与方在互不透露各自输入的前提下,如何成功完成计算的问题。参与计算的多方可以通过执行一个安全多方计算算法,基于各自持有的私密数据来共同进行安全计算,得到出一个计算结果,同时不会向参与计算的其它各方泄露本方持有的私密数据。

目前,基于mpc的数据处理的应用前景越来越广泛,企业、政府、研究机构和个人间的协同业务(例如联合数据分析、机器学习训练等)需求日趋强烈。例如,一个典型的场景是,随着人工智能(artificialintelligence,简称ai)迅猛发展,数据隐私保护的需求愈加强烈。ai训练(例如机器学习训练)所需的数据,在很多应用场景里由于隐私合规性的原因无法获得,从而导致无法完成ai训练或者ai训练的效果不佳。随着技术的进步,当前已出现基于mpc解决ai训练中数据隐私保护问题的技术方案。然而,基于mpc的数据处理在实现数据隐私保护的同时,是以牺牲性能为代价的,即当前基于mpc的数据处理的效率较低。



技术实现要素:

本说明书实施方案的目的在于提供一种基于安全多方计算的数据处理方法、装置及电子设备,以提高基于安全多方计算的数据处理效率。

为达到上述目的,一方面,本说明书实施方案提供了一种基于安全多方计算的数据处理方法,包括:

确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;

当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。

另一方面,本说明书实施方案还提供了一种基于安全多方计算的数据处理装置,包括:

确认模块,用于确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;

复用模块,用于当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。

另一方面,本说明书实施方案还提供了一种电子设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时执行如下步骤:

确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;

当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。

由以上本说明书实施方案提供的技术方案可见,在本说明书的实施方案中,如果数据处理任务包括多个矩阵乘法操作,且目标矩阵乘法操作所涉及的第一隐私数据矩阵,与矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,则可以在执行目标矩阵乘法操作时复用第二隐私数据矩阵或其转置,而无需再行计算或获取。如此,则在实现隐私保护计算的同时,大大节省了参与方之间的通讯量,提高了基于mpc的数据处理效率。

附图说明

为了更清楚地说明本说明书实施方案或现有技术中的技术方案,下面将对实施方案或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施方案,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本说明书一些实施方案中基于mpc的数据处理系统的架构示意图;

图2为本说明书一些实施方案中基于mpc的数据处理方法(参与方侧)的流程图;

图3为本说明书一些实施方案中基于mpc的数据处理系统的交互示意图;

图4为本说明书一示例性实施方案中阵乘法序列的示意图;

图5为本说明书一些实施方案中基于mpc的数据处理装置的结构框图;

图6为本说明书一些实施方案中电子设备的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施方案中的附图,对本说明书实施方案中的技术方案进行清楚、完整地描述,显然,所描述的实施方案仅仅是本说明书一部分实施方案,而不是全部的实施方案。基于本说明书中的实施方案,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方案,都应当属于本说明书保护的范围。

参考图1所示,本说明书一些实施方案中基于mpc的数据处理系统可以包括一个或多个数据持有方(节点)、一个或多个参与方(节点)以及一个辅助方(节点)。各方之间可以进行通信,其中,各参与方之间基于mpc协议进行通信。应当指出的是,这里的mpc协议是指广义的mpc协议,即除了mpc本身外,还可以是不经意传输(oblivioustransfer),秘密共享(secretsharing)等,本说明书对此不作限定。

数据持有方是隐私数据(或称为秘密数据、私密数据)的拥有方,每个数据持有方所拥有的隐私数据,与其他数据持有方所拥有的隐私数据都是不同的。因此,当多个数据持有方协作时,可有利于从更多数据中挖掘出更大的价值。

参与方是指参与mpc计算的节点。在一些情况下,当数据持有方参与mpc计算时,数据持有方亦是参与方,即数据持有方和参与方在物理上可以为一个实体。在另一些情况下,当数据持有方不参与mpc计算(即基于mpc的数据处理计算)时,其所委托的参与mpc计算的节点即为参与方。

辅助方是数据持有方和参与方之外的第三方。辅助方可以对参与方的mpc计算进行协助,但不参与mpc计算。例如,当数据处理任务包含矩阵乘法操作时,辅助方可以向参与方提供三元组碎片,以实现mpc乘法计算。

在本说明书一些实施方案中,上述各方节点可以为具有一定实体的电子设备,也还可以为运行于上述电子设备中的软体。其中,所述的电子设备例如可以是台式电脑、平板电脑、笔记本电脑等。

本说明书的实施方案中,mpc计算涉及到秘密分享(secretsharing)技术和beavertriple技术。为便于理解,先对秘密分享(secretsharing)技术和beavertriple技术进行说明。

一、秘密分享技术

秘密分享技术是将秘密(即隐私数据)以适当的方式拆分为多份,拆分后的每一个份可以称为一个碎片(share),并由不同的参与方管理。因此,任何单个参与方无法独自恢复秘密,只有若干个参与方一同协作才能恢复秘密,从而提高了秘密的安全性。秘密分享算法通常可以分为两步:

分享算法(share):数据持有方将秘密x进行拆分成n个碎片后,分发给n个参与方。

重建算法(reconstruct):利用任意t(2≤t≤n)个碎片就可以恢复秘密x。

因此,秘密分享技术通常也记为(t,n)-秘密分享,t表示想要恢复秘密所需的最小参与方数,n表示秘密被拆分的份数。常见的秘密分享技术包括加法秘密分享,shamir秘密分享等。最简单的一个例子是加法秘密分享。在一个(n,n)-加法秘密分享中,秘密x的拥有者在share算法里,会生成一个随机数ri,作为参与方pi(1≤i≤n-1)的碎片值,用作为参与方pn的碎片值。因此在reconstruct算法里,只需要把所有碎片值相加,即可恢复出x。然而,对于乘法秘密分享,由于乘法的算术性质,在进行乘法秘密分享时需要参与方之间进行交互,以免数泄密;由此需要引入beavertriple技术(或类似技术)。

二、beavertriple技术

beavertriple技术是基于beaver的乘法三元组协议,通过离线构造乘法三元组(简称三元组),然后基于秘密分享技术将离线构造的三元组拆分为m+1片三元组碎片,并将其中的m片三元组碎片对应分发给m个参与方,以协助参与方的乘法秘密分享实现。例如,数据持有方alice和bob各自拥有私密矩阵x和y,目标是计算x·y。假设计算的参与方是{pi}(1≤i≤n)。一个典型例子是,alice和bob作为数据持有方,同时也可以是计算参与方,这样就退化为一个基于两方安全计算的矩阵乘法操作。

预处理阶段(即离线处理阶段):

1.alice和bob通知一个辅助方p0进行数据处理。

2.辅助方p0预先生成一个三元组(a,b,c),其中a,b,c均为随机生成的矩阵,且满足c=ab。这里生成三元组的方法可以选用不同的技术,由于不在本申请创新范围内,因此不作具体阐述。p0利用(n,n)-加法秘密分享技术,将(a,b,c)拆分,将碎片[a]i,[b]i,[c]i发给pi,i=1,...,n,符号[a]i表示矩阵a给pi的碎片,[b]i和[c]i可以参照解释。

3.alice和bob同样采用(n,n)-加法秘密分享技术,将各自的秘密矩阵拆分后,将碎片分发给所有参与方。分发完成后,pi拥有碎片xi和yi。

在线处理阶段:

1.对于pi(i=1,...,n),计算两个中间值e,f的碎片:[e]i=[x]i-[a]i,[f]i=[y]i-[b]i,然后将这两个中间值碎片发送给其他所有参与方。

2.对于pi(i=1,...,n),集齐其他参与方发送的中间值碎片后,在本地恢复中间值:随后,pi(i=1,...,n)计算目标值的碎片:[xy]i=-ef+[x]if+e[y]i+[c]i,然后将这个目标值碎片[xy]i发送给其他所有参与方。

3.对于pi(i=1,...,n),接收到所有其他参与方发送过来的目标值碎片后,在本地恢复目标值:注意,这里只需要减去一个中间值乘积项ef。

不难发现:

由此验证了其正确性。

在很多情况下,一个数据处理任务(例如神经网络训练任务)中可能包括多个矩阵乘法操作,而基于beavertriple技术的乘法秘密分享时需要参与方之间进行更多的交互。如此,参与方之间的通讯量和处理效率则会大幅增加。

有鉴于此,本说明书提供了一种基于mpc的数据处理方法,该方法的执行主体可以为参与方。参考图2所示,在本说明书一些实施方案中,所述基于mpc的数据处理方法可以包括如下步骤:

s201、确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置(即第二隐私数据矩阵的转置)相同。

s202、当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置(即第二隐私数据矩阵的转置)。

由此可见,在本说明书的实施方案中,如果数据处理任务包括多个矩阵乘法操作,且目标矩阵乘法操作所涉及的第一隐私数据矩阵,与矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,则可以在执行目标矩阵乘法操作时复用第二隐私数据矩阵或其转置,而无需再行计算或获取。如此,则在实现隐私保护计算的同时,大大节省了参与方之间的通讯量,提高了基于mpc的数据处理效率。

本领域技术人员应当理解,对于数据处理任务仅包含一个矩阵乘法操作以及数据处理任务不包含矩阵乘法操作的情况,本说明书的实施方案仍然可以实施,只是在这些情况下难以凸显其技术优势。

在本说明书的一些实施方案中,所述第一隐私数据矩阵和所述第二隐私数据矩阵可以为数据持有方提供的隐私数据碎片的矩阵形式。

在本说明书的一些实施方案中,所述确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,可以包括:判断是否接收到数据持有方在数据预处理阶段提供的操作数重复通知;所述操作数重复通知中包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容;当接收到所述操作数重复通知时,则可以确认所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同。本领域技术人员可以理解,这里仅是举例说明,而不应理解为对本申请的限制,在本说明书其他的实施方案,数据持有方可以以任何方式通知参与方。此外,在数据持有方亦作为参与方时,这种通知甚至可以省略。

在本说明书的一些实施方案中,前序矩阵乘法操作是指:矩阵乘法操作序列中位于目标矩阵乘法操作之前的矩阵乘法操作。例如,在图4所示的数据处理的逻辑计算图中,包括d=ab和e=dc两个矩阵乘法操作,这两个矩阵乘法操作可以形成矩阵乘法操作序列{d=ab→e=dc},则如果e=dc是目标矩阵乘法操作,则d=ab即为该目标矩阵乘法操作的前序矩阵乘法操作。

结合图3所示,在预处理阶段,每个数据持有方知晓数据处理任务的处理逻辑,当处理逻辑中包括由多个矩阵乘法操作组成的矩阵乘法操作序列时,对于每个数据持有方,需要判断目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,并可以通过消息通知的方式,将判断结果发送给辅助方和每个参与方,以告知重复的矩阵情况。例如,假设目标矩阵乘法操作为c=ab,前序矩阵乘法操作为d=ef,则需要判断a是否与e、f、e的转置或f的转置相同,以及b是否与e、f、e的转置或f的转置相同。

请继续参考图3所示,对于辅助方而言,当目标矩阵乘法操作所涉及的第一隐私数据矩阵,与前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同时,则在预处理阶段,辅助方提供的三元组碎片需要根据数据持有方提供的操作数重复通知生成。其中,所述操作数重复通知中可以包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容。在另一些情况下,当目标矩阵乘法操作所涉及的第一隐私数据矩阵,与前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置不同时,则在预处理阶段,辅助方可以直接基于beavertriple技术生成三元组碎片。

请继续参考图3所示,当目标矩阵乘法操作所涉及的第一隐私数据矩阵,与前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同时,则在预处理阶段,与第一隐私数据矩阵对应的数据持有方可以向所有参与方发送操作数重复通知;余下的数据持有方仍需要将自身隐私数据拆分成m份数据碎片对应发给m个参与方。在另一些情况下,当目标矩阵乘法操作所涉及的第一隐私数据矩阵,与前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置不同时,则每个数据持有方均需要将自身隐私数据拆分成m份数据碎片对应发给m个参与方。

在本说明书一些实施方案中,当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,所述执行所述目标矩阵乘法操作,可以如图3中的步骤4~6所示。

在本说明书一些实施方案中,复用所述第二隐私数据矩阵或其转置可以包括:当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,可以复用所述第二隐私数据矩阵;当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,可以先获取所述第二隐私数据矩阵的转置矩阵,再复用所述转置矩阵。

在本说明书另一些实施方案中,当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,根据需要,还以复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置。其中,所述第三数据矩阵可以包括三元组矩阵和中间值矩阵。也就是说,当第一隐私数据矩阵与第二隐私数据矩阵或其转置相同的情况下,在执行所述目标矩阵乘法操作时,不仅可以复用隐私数据矩阵,还可以复用三元组矩阵和中间值矩阵。其中,所述复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置,可以包括:当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,复用所述第三数据矩阵;当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,先获取所述第三数据矩阵的转置矩阵,再复用所述转置矩阵。

为了防止数据泄露,在任何情况下,目标矩阵乘法操作所涉及的两个隐私数据矩阵中,至多有一个与前续矩阵乘法操作所涉及的隐私数据矩阵或其转置相同。例如,假设计算任务包括矩阵乘法操作序列{mi},i=1,2,...,n;记矩阵乘法操作xy=mk∈{mi}是序列中的一个操作,对于任意的后续操作mt∈{mi},k<t≤n,记mt=mt1·mt2,如果满足条件:{mt1∈{x,y,xt,yt}或mt2∈{x,y,xt,yt}},其中xt表示x的转置矩阵,则可以采用本说明书实施方案的方法进行优化。

对于要计算的矩阵乘法操作mt=mt1·mt2,可以进行分类分析:

情况1.假设alice拥有第一个操作数mt1,bob拥有第二个操作数mt2;并且存在:mt1∈{x,xt}或者mt2∈{y,yt},则可以采用本说明书实施方案中的数据处理方法进行处理。其中,alice和bob为数据持有方。

情况2.假设alice拥有第二个操作数mt2,bob拥有第一个操作数mt1,并且存在:mt1∈{y,yt}或者mt2∈{x,xt},则也可以采用本说明书实施方案中的数据处理方法进行处理。其中,alice和bob为数据持有方。

接下来以情况1为例,对本说明书实施方案中的数据处理方法进行示例性举例阐述,情况2可以参考情况1,后续不再赘述。与图3所示的流程类似,该示例可以分为预处理阶段和在线处理阶段。

一、预处理阶段:

1.alice和bob通知一个辅助方p0进行数据处理;并且如果mt1=x或者mt1=xt,则alice告知辅助方p0本次乘法的第一个操作数与前续操作mk中的第一个操作数或其转置相同,可以记为通知1;如果mt2=y或者mt2=yt,则bob告知辅助方p0本次乘法的第二个操作数与前续操作mk中的第二个操作数或其转置相同,可以记为通知2。

2.辅助方p0预先生成一个三元组(u,v,w);其中,(u,v,w)均为随机生成的矩阵,且满足w=uv;并且根据步骤1中的通知情况,关于u或者v的生成满足以下任一条件:则辅助方p0可以利用(n,n)-加法秘密分享技术,将三元组(u,v,w)拆分,将碎片[v]i,[w]i(通知1),或者[u]i,[w]i(通知2),给pi,i=1,...,n。

3.如果mt1=x或者mt1=xt,则alice通知所有参与方pi,本次的矩阵碎片无需发送,复用前次操作中的碎片,即令记为通知3;另一方面,bob仍然采用(n,n)-加法秘密分享技术,将其秘密矩阵mt2拆分后,将碎片分发给所有参与方。

如果mt2=y或者mt2=yt,则bob通知所有参与方pi,本次的矩阵碎片无需发送,复用前次操作中的碎片,即令记为通知4;另一方面,alice仍然采用(n,n)-加法秘密分享技术,将其秘密矩阵mt1拆分后,将碎片分发给所有参与方。

分发完成后,pi拥有碎片[mt1]i和[mt2]i。

二、在线处理阶段:

1.对于pi(i=1,...,n),如果接收到了通知3,计算一个中间值h的碎片:[h]i=[mt2]i-[v]i,然后将这个中间值碎片发送给其他所有参与方。需要注意的是,这里不需要计算另一个中间值g的碎片,而是复用此前计算xy时用到的中间值碎片。

记[g]i=[mt1]i-[u]i,根据条件则有:

可以看出,上述条件(1)的等式显然成立;对于条件(2)的等式,如果[g]i=[xt]i-[at]i,由于[xt]i-[at]i=([x]i-[a]i)t,则仍可以直接使用[e]i,只是要计算一次转置操作,因此[g]i=[e]it

对于pi(i=1,...,n),如果接收到了通知4,计算一个中间值g的碎片:[g]i=[mt1]i-[u]i,然后将这个中间值碎片发送给其他所有参与方。对于另一个中间值h的碎片进行如下处理。

记[h]i=[mt2]i-[v]i,根据条件则有:

可以看出,上述条件(3)的等式显然成立;对于条件(4)的等式,如果[h]i=[mt2]i-[v]i,由于[yt]i-[bt]i=([y]i-[b]i)t,则仍可以直接使用[f]i,只是要计算一次转置操作,因此[h]i=[f]it

2.对于pi(i=1,...,n),集齐其他参与者发送的一组中间值碎片(如果是通知3,则会收到关于h的碎片组,如果是通知4,则会收到关于g的碎片组)后,在本地恢复本次操作所需的两个中间值:随后pi(i=1,...,n)计算目标值mt1mt2的碎片:[mt1mt2]i=-gh+[mt1]ih+g[mt2]i+[w]i,然后将这个目标值碎片发送给其他参与方。

3.对于pi(i=1,...,n),接收到其他参与方发送过来的目标值碎片后,在本地恢复目标值:

在本示例性实施方案中,当矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同时,在预处理阶段:不仅可以省去其中一组碎片(三元组中的第一个或者第二个矩阵)的通讯量,还可以在分发当前矩阵乘法操作操作的两个秘密矩阵碎片时,省去其中一个矩阵的通讯量。在在线处理阶段:根据步骤4可以省去其中一组中间值碎片的数据量。因而本示例性实施方案可以提高基于安全多方计算的数据处理的处理效率。

在本说明书上述基于安全多方计算的数据处理方法中,对于数据持有方的隐私数据处理可以应用于任何基于mpc的数据处理场景。例如可以包括但不限于机器学习训练、联合数据分析或数据安全查询等等。其中,具体的数据处理场景,例如可以包括但不限于计算机视觉、自然语言处理、机器人决策(例如自动驾驶)、网络安全检测(例如垃圾邮件检测、恶意程序\流量检测)、医疗拟合预测、金融高频交易、互联网数据挖掘、关联推荐等场景。

参考图5所示,与上述基于安全多方计算的数据处理方法对应,本说明书还提供了一种基于安全多方计算的数据处理装置,其可以包括:

确认模块51,可以用于确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;

复用模块52,可以用于当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。

在本说明书一些实施方案中,所述确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,包括:

判断是否接收到数据持有方在数据预处理阶段提供的操作数重复通知;所述操作数重复通知中包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容;

如果接收到所述操作数重复通知,则确认所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同。

在本说明书一些实施方案中,当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,执行所述目标矩阵乘法操作时所用的三元组碎片,是由辅助方根据数据持有方提供的操作数重复通知生成;所述操作数重复通知中包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容。

在本说明书一些实施方案中,所述复用所述第二隐私数据矩阵或其转置,包括:

当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,复用所述第二隐私数据矩阵;

当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,先获取所述第二隐私数据矩阵的转置矩阵,再复用所述转置矩阵。

在本说明书一些实施方案中,所述复用模块还可以用于:

当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置;所述第三数据矩阵包括三元组矩阵和中间值矩阵。

在本说明书一些实施方案中,所述复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置,可以包括:

当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,复用所述第三数据矩阵;

当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,先获取所述第三数据矩阵的转置矩阵,再复用所述转置矩阵。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

参考图6所示,与上述基于安全多方计算的数据处理方法对应,本说明书还提供了一种电子设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时执行如下步骤:

确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;

当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。

虽然上文描述的过程流程包括以特定顺序出现的多个mpc操作,但是,应当清楚了解,这些过程可以包括更多或更少的mpc操作,这些mpc操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。

本申请是参照根据本说明书实施方案的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列mpc操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本领域技术人员应明白,本说明书的实施方案可提供为方法、系统或计算机程序产品。因此,本说明书实施方案可采用完全硬件实施方案、完全软件实施方案或结合软件和硬件方面的实施方案的形式。而且,本说明书实施方案可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书实施方案可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施方案,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施方案均采用递进的方式描述,各个实施方案之间相同相似的部分互相参见即可,每个实施方案重点说明的都是与其他实施方案的不同之处。尤其,对于系统实施方案而言,由于其基本相似于方法实施方案,所以描述的比较简单,相关之处参见方法实施方案的部分说明即可。在本说明书的描述中,参考术语“一个实施方案”、“一些实施方案”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施方案或示例描述的具体特征、结构、材料或者特点包含于本说明书实施方案的至少一个实施方案或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施方案或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施方案或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施方案或示例以及不同实施方案或示例的特征进行结合和组合。

以上所述仅为本申请的实施方案而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1