基于恶意MASCOT协议的安全数据共享计算方法及系统与流程

文档序号:25991443发布日期:2021-07-23 21:03阅读:180来源:国知局
基于恶意MASCOT协议的安全数据共享计算方法及系统与流程

本发明涉及信息安全技术领域,尤其涉及一种基于恶意mascot协议的安全数据共享计算方法及系统。



背景技术:

安全多方计算(securemulti-partycomputation,mpc)技术可以实现在不存在可信第三方的情况下,并在保护数据隐私性的前提下,多方通过自己的秘密输入联合计算某个函数的输出值。n个参与方p1,p2,…,pn,各自持有秘密输入(私有数据)x1,x2,…,xn,想要联合计算公开函数f(x1,x2,…,xn),同时保证自己的秘密输入xi不被其他参与方获知,并且保证所得函数结果的正确性。mpc技术在云、大数据和人工智能等领域有着非常重要的应用。目前针对mpc协议的研究表明它的安全性和性能已经满足了工业产品化的初步要求。spdz系列协议是针对算术电路的著名的mpc协议之一,其包含spdz、mascot、spdz2k等。

spdz协议是由等人在2012年美密会上提出的一个高效的安全多方计算协议,其分为预处理阶段和在线阶段。预处理阶段独立于要计算的函数值以及各方的秘密输入值,用来生成在线阶段所需要的信息;在线阶段用来进行函数的计算,且其运算过程是非常高效的。由于spdz协议的预处理阶段基于部分采用同态加密技术,因此该阶段的时间消耗较大。为了降低此阶段的时间复杂度,keller等人提出了mascot协议。该协议仍然采用原有spdz协议的在线阶段,但是利用不经意传输技术重新设计了其预处理过程,加快了预处理阶段的执行速度。根据抵抗敌手的能力的不同,mascot协议可分为半诚实版本和恶意版本。其中,“半诚实”和“恶意”表示安全多方计算安全模型中的敌手的能力。恶意敌手会控制被攻破的参与方以任意方式偏离协议,从而违反协议安全性。恶意敌手在分析协议时不仅仅会试图获取尽可能多的信息,同时在协议执行期间具备采取任何想要操作的能力,比如控制、篡改和嵌入网络消息。同时,被敌手攻破的参与方也会存在合谋行为,这些参与方中收集到的信息共同汇集成为敌手攻击协议的优势。

keller等人提出的恶意版本的mascot协议虽然可以高效的实现安全多方计算的功能,但是该协议并不是完备的。这是因为在实际应用环境中,会存在新的参与方在协议执行期间加入运算,也会存在部分原有的参与方因为特殊情况需要退出计算过程的情况。而mascot协议并没有考虑到这两种实际应用环境,因此在其运行过程中,新的参与方无法加入,且原有参与方的退出将使得协议运行出错。



技术实现要素:

鉴于此,本发明实施例提供了一种基于恶意mascot协议的安全数据共享计算方法及系统,以消除或改善现有技术中存在的一个或更多个缺陷。

本发明的技术方案如下:

根据本发明的一方面,提供一种基于恶意mascot协议的安全数据共享计算方法,在预处理阶段,该方法包括以下步骤:

新参与方向原参与方通知携带新参与方标识的加入请求后,随机生成mac密钥;

每一个已经分发数据分片的原参与方基于当前参与方数目重新生成数据分片,并将重新生成的数据分片和对应的原始键值重新发送给所有参与方,以使得所有参与方更新所述原始键值对应的数据分片值;

每一个已经分发数据的原参与方与所述新参与方进行交互,通过分别输入分发的数据的分片值和新参与方的mac密钥来获得相关联的第一值和第二值;

每一个已经分发数据的原参与方基于所述第一值更新其mac分片值,所述新参与方基于所述第二值生成其mac分片值。

可选地,在预处理阶段,所述方法还包括:待退出参与方向其他原参与方通知携带所述待退出参与方标识的退出请求后,将其mac密钥、所有已得到的数据分片值和mac值发送至预定原参与方;所述预定原参与方基于接收的mac密钥更新其原有mac密钥;所述预定原参与方基于接收到的来自待退出参与方的数据分片值和mac分片值更新其所拥有的每个键值下的数据分片值和mac分片值。

可选地,在预处理阶段,在原参与方已生成多元组的情况下,所述方法还包括:各个原参与方将自己所拥有的所有多元组分片的连加和清空,并保留mac值分片;各个原参与方提取自己存储的初始的多元组分片,并针对所有参与方将提取的多元组分片进行重新分片并重新发送给所有参与方;各参与方收到新的多元组分片后,将相同键值对应的三元组分片值进行连加和操作;各个原参与方与新参与方进行交互,通过各原参与方分发的多元组分片和新参与方的mac密钥来生成新参与方的mac分片,并更新各原参与方的mac值分片。

可选地,在预处理阶段,所述方法还包括:待退出参与方向其他原参与方通知携带所述待退出参与方标识的退出请求后,将其mac密钥、所有已得到的多元组分片值和mac值发送至预定原参与方;所述预定参与方基于接收到的来自待退出参与方的多元组分片值和mac分片值更新其所拥有的每个键值下的多元组分片值和对应的mac分片值。

可选地,所述每一个已经分发数据分片的原参与方基于当前参与方数目重新生成数据分片,并将重新生成的数据分片和对应的原始键值重新发送给所有参与方,包括:每一个已经分发数据分片的原参与方随机选择n个有限域中的值生成n个数据分片:并基于如下公式生成第n+1个数据分片:其中,pf为第f个原参与方,n为原参与方数目,n+1为当前参与方数目;以及将重新生成的数据分片和对应的原始键值重新发送给所有参与方;

可选地,所述通过各原参与方分发的各数据分片值和新参与方的mac密钥来生成新参与方的mac分片,并更新各原参与方的mac值分片,包括:成对的原参与方和新参与方通过分别输入分发的数据的分片值和新参与方的mac密钥来获得相关联的第一值和第二值其中,xh为原参与方的第h个数据分片值,δ(s)为新参与方的mac密钥,f和s分别为原参与方和新参与方标识;将参与方pf原来的mac值分片的值增加后更新为其新的mac值分片,将所述第二值作为新参与方ps的mac值分片

可选地,所述通过各原参与方分发的多元组分片和新参与方的mac密钥来生成新参与方的mac分片,并更新各原参与方的mac值分片,包括:调用mac分片生成模块,原参与方pf输入所有已存储的k组多元组的初始分片,对于k组多元组的初始分片中的每一个初始分片zn,新参与方ps得到原参与方pf得到满足关系:将原参与方pf原来的每一mac值分片值增加后作为新的mac值分片,将新参与方ps的mac值分片确定为其中,k为多元组的组数,n为k组多元组对应的初始分片的个数,δ(s)为新参与方的mac密钥,f和s分别为原参与方和新参与方标识。

可选地,所述预定原参与方基于接收的mac密钥更新其原有mac密钥,包括:预定原参与方pi更新其mac密钥δ(i)为δ(i)(t),其中,t为所述待退出参与方标识;

所述预定原参与方基于接收到的来自待退出参与方的数据分片值和mac分片值更新其所拥有的每个键值下的数据分片值和mac分片值,包括:预定参与方pi更新对应数据分片x(i)的值为x(i)+x(t),其mac值分片m(i)更新为m(i)+m(t)

可选地,所述预定参与方基于接收到的来自待退出参与方的多元组分片值和mac分片值更新其所拥有的每个键值下的多元组分片值和对应的mac分片值,包括:在所述多元组分片为三元组分片的情况下,预定参与方pi更新三元组分片的值为(a(i)+a(t),b(i)+b(t),c(i)+c(t)),其mac值分片更新为

本发明的另一方面,还提供一种基于恶意mascot协议的安全数据共享计算方法,在预处理阶段,该方法包括以下步骤:待退出参与方向其他原参与方通知携带所述待退出参与方标识的退出请求后,将其mac密钥、所有已得到的数据分片值和mac值发送至预定原参与方;所述预定原参与方基于接收的mac密钥更新其原有mac密钥;所述预定原参与方基于接收到的来自待退出参与方的数据分片值和mac分片值更新其所拥有的每个键值下的数据分片值和mac分片值。

可选地,所述方法还包括:待退出参与方向其他原参与方通知携带所述待退出参与方标识的退出请求后,将其mac密钥、所有已得到的多元组分片值和mac值发送至预定原参与方;所述预定参与方基于接收到的来自待退出参与方的多元组分片值和mac分片值更新其所拥有的每个键值下的多元组分片值和对应的mac分片值。

本发明的另一方面,还提供一种基于恶意mascot协议的安全数据共享计算系统,该装置包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如前所述方法的步骤。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前所述方法的步骤。

本发明提供的基于恶意mascot协议的安全数据共享计算方法及系统,其不仅仅可以实现恶意mascot协议所具备的所有功能,还可以实现在预处理阶段运行时加入新的参与方及退出原有参与方的功能,更贴近实际应用需求,应用范围更广阔。

本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在书面说明及其权利要求书以及附图中具体指出的结构实现到并获得。

本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。附图中的部件不是成比例绘制的,而只是为了示出本发明的原理。为了便于示出和描述本发明的一些部分,附图中对应部分可能被放大,即,相对于依据本发明实际制造的示例性装置中的其它部件可能变得更大。在附图中:

图1为本发明一实施例的基于恶意mascot协议的协议π[·]中参与方增加方法的流程示意图。

图2为本发明一实施例的基于恶意mascot协议的协议π[·]中参与方退出方法的流程示意图。

图3为本发明一实施例的基于恶意mascot协议的协议πtriple中参与方增加方法的流程示意图。

图4为本发明一实施例的基于恶意mascot协议的协议πtriple中参与方退出方法的流程示意图。

图5为本发明一实施例的基于恶意mascot协议实现参与方增减的整体框架图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。

应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。

在介绍本发明提出的基于恶意mascot协议的可增删参与方的安全多方计算协议之前,首先引入基本的符号介绍。符号pi表示第i个参与方,在协议运行之初,进行协议的n个参与方分别记作p1,p2,…,pn。协议中包含的运算都是基于有限域的,在接下来的描述中,将有限域统一记成记小写字母x代表有限域上的元素,粗体小写字母x代表有限域上的向量。记g为有限域的生成元,引入向量定义函数为一个“比特分解”函数,其将数据输入映射成一个k比特的比特向量xb=g-1(x)∈{0,1}k,使得此向量可以利用与向量g作内积的形式映射成原输入值x,即<g,g-1(x)>=x。对于引入符号[x]表示向量并且满足

由于本发明提出的安全多方计算协议基于原始的mascot协议,而mascot协议利用不经意传输技术重新设计了spdz协议的预处理阶段,因此下面简单介绍一下恶意版本的spdz协议的预处理阶段。

spdz协议在执行时分为预处理阶段和在线阶段,预处理阶段主要用来生成在线阶段所需要的信息,在线阶段用于计算所要计算的函数值。在在线阶段运行期间,为了达到安全多方计算的目的,所有参与方均不应知道函数计算过程中每一个数据的真实值,每个参与方拥有的只是该数据的一个随机分片,即对于每个数据pi拥有的是数据分片并且满足同时,为了达到抵抗恶意敌手的能力,参与方还拥有该数据分片对应的一个mac值分片,该mac值分片可以用来验证该分片是否被敌手修改(合法性)。在本发明中,利用符号[x]代表每个参与方pi拥有x的一个分片x(i)、对应的mac值的分片m(i)以及只有自己拥有的mac密钥δ(i),同时满足m=x·δ,其中为了实现在线阶段,预处理阶段需要完成以下两个任务:(1)每一个参与方pi需要随机选择一个数据并将此值随机分片并计算相应的mac值分片后分发给包括自己在内的每一个参与方,即得到[x];(2)生成足够多的三元组([a],[b],[c])满足c=a·b,其中而参与方pi实际拥有的是三元组(a(i),b(i),c(i))。

本发明采用与mascot协议相同的在线阶段,仅对预处理阶段进行了改进,因此下面仅描述本发明提出的基于恶意mascot协议的预处理阶段的部分。

在本发明实施例中,在预处理阶段,不仅仅要完成其需要为在线阶段所做的任务,还要能够处理新的参与方加入或者部分原有参与方退出的实际应用情况。在本发明的恶意mascot协议中,预处理阶段包括两个子协议π[·]、πtriple以及两个辅助协议πcopee、πmaccheck,其中协议π[·]可称为分片生成协议,用来将有限域上的某个数据x进行分发得到分片[x],并且可以通过所有参与方的参与揭示数据x的真实值;协议πtriple,可称为三元组生成协议,用来生成满足条件c=a·b的三元组([a],[b],[c]);协议πcopee可称为mac分片生成协议,被用在协议π[·]中生成mac值分片;协议πmaccheck,可称为验证协议,用来通过mac值分片验证值分片的合法性。本发明实施例使用与恶意mascot协议相同的辅助协议πcopee、πmaccheck,但对协议π[·]、πtriple进行修改,以使得协议π[·]、πtriple均支持增删参与方,从而实现增删参与方的功能。在mpc协议将来支持包括4个以上元素的更多元组(如四元组或五元组等)的情况下,本发明实施例中的协议πtriple同样可以是生成三元以上的多元组的协议。下面分别描述协议π[·]和πtriple这两个协议。

一、协议π[·]

执行本协议的过程包括初始化过程、分片分发过程、线性组合过程、揭示过程以及检验过程:

(一)初始化过程

该过程在整个协议运行时各参与方仅执行一次。该初始化过程包括:

(1)每一个参与方pi随机选择有限域中的一个值作为其mac密钥δ(i)

(2)每一对参与方(pi,pj),i≠j,调用协议πcopee的初始化过程为其“扩展”功能生成所需信息,其中参与方pj输入自己的mac密钥δ(j)

其中,协议πcopee描述如下:参与方pa输入元素值x,pb输入mac密钥δ,通过运行此协议,两参与方分别得到mac值分片t和q,满足t+q=x·δ。该协议运行中利用到伪随机函数f。整个协议可以分为初始化过程和“扩展”功能,其中初始化过程通过参与方pb输入的mac密钥δ生成“扩展”功能所需要的伪随机函数的输入,“扩展”功能通过参与方pa输入的元素值x和初始化阶段提供的伪随机函数的输入值生成mac值分片t和q,满足t+q=x·δ。

(二)分发过程:

该过程中,参与方pj将多个输入值数据分发给其他参与方,并协商出相应的mac值分片。

该协议运行时,从参与方pj处得到输入(input,id1,id2,…,idl,x1,x2,…,xl,n,pj),从参与方pi(i≠j)处得到输入(input,id1,id2,…,idl,n,pj),然后执行以下过程:

1.参与方pj随机选择有限域中的数据值x0;

2.对于每一个数据值xh,其中h=0,1,…,l,pj随机选择n-1个有限域中的值赋给并计算然后将分片的值发送给参与方pi;

本步骤是用于生成数据分片并分发分片。

3.对每一个其他的参与方pi(i≠j),pj与其调用协议∏copee的“扩展”功能,其中pj输入(x1,x2,…,xl),运行该扩展功能后,对于每一个h=0,1,…,l,pi得到pj得到二者满足

对于每一个h=0,1,…,l,参与方pi(i≠j)的mac值分片为参与方pj的mac值分片

本步骤是为了获得各参与方的mac值分片。也即,该步骤中,对于每一对参与方(pi,pj),i≠j,通过调用协议πcopee的扩展功能来得到各参与方的mac值分片(或称mac分片)。

4.所有参与方随机选择一个l+1长度的向量r=(r0,r1,…,rl);

5.pj计算并广播给所有参与方;

6.每个参与方pi计算

7.每个参与方pi调用协议∏maccheck,通过输入y和m(i)验证mac值的合法性。

如上步骤4-7是用于执行mac验证(maccheck)的过程,其中4-6用于提供验证所需的数据,第7步通过调用协议πmaccheck实现mac验证。

8.在mac验证完成后,所有参与方在键值id1,id2,…,idl下存储对应的数据分片和mac值分片,即参与方pi在键值id1下存储在键值id2下存储在键值idl下存储

(三)线性组合

该过程用于计算y=c1·x1+…+cl·xl+c的值的分片和对应的mac值分片。

协议执行时,可从所有参与方处得到输入然后执行以下过程:

1.每个参与方pi根据键值id1,…,idl提取对应的输入值分片和mac值分片,即其中j=1,2,…,l;

2.每个参与方pi(i≠1)计算新的数据分片值为参与方p1计算新的数据分片值为

3.每个参与方pi计算新的mac值分片为

4.每个参与方pi在键值下存储新生成的数据值分片y(i)和mac值分片m(i)

(四)揭示过程:

该过程用于所有参与方共同揭示id下对应的数据值。协议从所有参与方处得到输入(open,id,n),然后执行以下过程:

1.每一个参与方提取在键值id下存储的数据分片,可记作x(i),然后广播他们的分片给其他参与方;

2.每一参与方计算并输出该值。

(五)校验过程

该过程用于检验所有参与方输入的值x1,…,xl是否合法,即是否被篡改。本协议从所有参与方处得到输入(check,id1,…,idl,x1,…,xl),然后执行以下过程:

1.所有参与方共同在有限域上随机选择一个向量r=(r1,r2,…,rl);

2.每个参与方pi计算其中是键值idj下的mac值分片;

3.每个参与方pi调用协议πmaccheck,通过输入y和m(i)验证mac值的合法性。

由于上述过程为现有π[·]协议的功能,在此不做更细节地描述。除了上述现有过程之外,本发明实施例还通过改进π[·]协议而增加了参与方增加过程和参与方退出过程。

(六)参与方增加过程

该过程用于让新参与方(如ps)加入协议,需得到原有参与方已分发值的分片以及对应的mac值分片。

如果有新的参与方要在预处理阶段加入到运算中,则如图1所示,基于该改进的π[·]协议提出的安全数据共享计算方法包括如下步骤:

步骤s110,新参与方向各原参与方通知携带新参与方标识的加入请求后,随机生成mac密钥。

例如,新参与方ps希望加入协议时,其可以通过广播等方式向各原参与方通知加入请求,该加入请求中可以携带新参与方标识,如该加入请求可以为ps的输入(add,ps),其中“add”为加入标识,ps为新参与方标识。

于是,每个现有参与方均可从新参与方ps处得到输入(add,ps)。

然后,新参与方可ps随机选择有限域中的一个值作为mac密钥δ(s)。新参与方获取mac密钥δ(s)的过程在整个协议运行时只执行一次。

步骤s120,每一个已经分发数据分片的原参与方基于当前参与方数目重新生成数据分片,并将重新生成的数据分片和对应的原始键值重新发送给所有参与方,以使得所有参与方更新原始键值对应的数据分片值。

通过本步骤,新参与方可获得用于进行安全多方计算的数据的分片,以便参与安全多方计算。

步骤s130,mac值分片生成步骤,每一个已经分发数据的原参与方与新参与方成对交互,通过各原参与方分发的各数据分片值和新参与方的mac密钥来生成新参与方的mac分片,并更新各原参与方的mac值分片。

本步骤中,可通过调用协议πcopee来生成新参与方的mac分片,并更新各原参与方的mac值分片。

下面更具体地描述参与方增加流程。

参与方ps输入(add,ps)后,协议中每个现有参与方均从新参与方ps处得到输入(add,ps),然后执行以下过程:

1.新参与方ps随机选择有限域中的一个值作为mac密钥δ(s)

新参与方获取mac密钥δ(s)的过程在整个协议运行时只执行一次。

2.对于每一个已经分发输入值的参与方pf,pf与ps调用协议πcopee的初始化过程,其中参与方pf输入自己的mac密钥δ(f)

3.参与方pf将每个输入值重新分片成n+1份,并将这些分片和对应的原始键值重新发送给所有的参与方,参与方在收到此分片后,将键值对应的分片值进行更新,mac值分片不变;

4.参与方pf与ps调用协议πcopee的“扩展”功能,其中pf输入已分发的所有输入值(x1,x2,…,xl),运行该扩展功能后,对于每一个h=1,…,l,ps得到pf得到这两个值满足关系

对于每一个h=1,…,l,参与方ps的mac值分片而参与方pf将其原来的mac值分片的值增加后作为其新的mac值分片。

示例:

假设最初只有p1、p2、p3、p4、p5五方参与运算,新参与方p6欲参与进来。此时,p1已完成输入值x1的分发,p2已完成输入值x2的分发,p3已完成输入值x3的分发,p4、p5尚未分发。对于p1、p2、p3、p4、p5这五方而言,每一个方都拥有x1、x2、x3的一个分片及对应的mac值分片,即:

(1)p1拥有分别在id=1,2,3下存放分片值和mac值分片;

(2)p2拥有分别在id=1,2,3下存放分片值和mac值分片;

(3)p3拥有分别在id=1,2,3下存放分片值和mac值分片;

(4)p4拥有分别在id=1,2,3下存放分片值和mac值分片;

(5)p5拥有分别在id=1,2,3下存放分片值和mac值分片。

新的参与方p6加入进来后,需要得到x1、x2、x3的一个分片,并生成对应的mac值分片。由于生成mac值分片时,需要调用协议πcopee,因此每一个已完成mac值分发的参与方均需要与新参与方交互,以生成分发值对应的mac值分片。具体过程如下:

1.新参与方p6随机选择有限域中的一个值作为mac密钥δ(6)

新参与方p6获取mac密钥δ(6)的过程在整个协议运行时只执行一次。

2.对于每一个已经分发输入值的参与方p1、p2、p3均执行下述操作,此处仅以p1为例进行描述:

1)p1与p6调用协议πcopee的初始化过程,其中参与方p1输入自己的mac密钥δ(1)

2)p1将输入值x1重新分片成6份,即:p1随机选择5个有限域中的值赋给并计算然后将这些分片和对应的原始键值一并重新发送给对应的参与方,所有参与方在收到此分片后,将键值对应的分片值进行更新,mac值分片不变;

3)p1与p6调用协议πcopee的“扩展”功能,其中p1输入已分发的输入值x1,协议πcopee的“扩展”功能执行结束后,p6得到p1得到这两个值满足关系

将参与方p6的mac值分片确定为:而参与方p1将其原来的mac值分片的值增加后作为琦新的mac值分片

由此,新参与方不仅得到了数据分片,还得到了对应的mac值分片。

(七)参与方退出过程

本发明实施例还提出了参与方退出方案,原参与方pt退出协议,需将其拥有的mac密钥和值分片、mac值分片发给预定的原参与方,如参与方p1。

因此,如图2所示,本发明实施例的安全数据共享计算方法中参与方在预处理阶段退出的过程,包括如下步骤:

步骤s210:待退出参与方向其他原参与方通知携带待退出参与方标识的退出请求后,将其mac密钥、所有已得到的数据分片值和mac值发送至预定原参与方。

退出请求可以是待退出参与方输入的携带退出指示和参与方标识的消息,如输入的(quit,pt)消息。预定参与方例如为参与方p1,但本发明并不限于此,还可以是其他预先设定的参与方。

步骤s220,预定原参与方基于接收的mac密钥更新其原有mac密钥。

步骤s230,预定原参与方基于接收到的来自待退出参与方的数据分片值和mac分片值更新其所拥有的每个键值下的数据分片值和mac分片值。

更具体地,原参与方pt输入(quit,pt)后,协议执行以下过程:

(1)待退出参与方pt将自己的mac密钥δ(t)以及所有已得到的分片和mac值分片以及对应的键值发送给预定原参与方,如参与方p1;

(2)p1更新其mac密钥δ(1)为δ(1)(t)

(3)对于每一个键值,p1更新对应数据分片x(1)的值为x(1)+x(t),其mac值分片m(1)更新为m(1)+m(t)

示例:

假设最初只有p1、p2、p3、p4、p5五方参与运算,参与方p2欲退出。此时,p1已完成输入值x1的分发,p2已完成输入值x2的分发,p3已完成输入值x3的分发,p4、p5尚未分发。对于p1、p2、p3、p4、p5这五方而言,每一个方都拥有x1、x2、x3的一个分片,即:

(1)p1拥有分别在id=1,2,3下存放分片值和mac值分片;

(2)p2拥有分别在id=1,2,3下存放分片值和mac值分片;

(3)p3拥有分别在id=1,2,3下存放分片值和mac值分片;

(4)p4拥有分别在id=1,2,3下存放分片值和mac值分片;

(5)p5拥有分别在id=1,2,3下存放分片值和mac值分片。

如果参与方p2欲退出,需将其拥有的mac密钥和值分片、mac值分片发给参与方p1,具体过程如下:

1.参与方p2将自己的mac密钥δ(2)以及所有已得到的数据分片和mac值分片以及对应的键值发送给p1,即将也全发给p1;

2.参与方p1将其mac密钥δ(1)更新为δ(1)(2)

3.对于每一个键值id=1,2,3,参与方p1执行以下操作,以键值id=1为例,即更新的值为更新其mac值分片

由此,在预处理阶段,无论是原参与方退出,还是新参与方加入,与现有恶意版本的mascot协议相比,可以处理协议π[·]运行时加入新的参与方及退出原有参与方的实际需求,更贴近现实环境。

二、πtriple协议

πtriple协议执行过程中用到的是随机不经意传输协议(rot),不经意传输(以下简称ot)协议在安全双方(多方)计算协议中得到了广泛的应用。最常见的ot协议是二择一ot协议,即:发送方输入两个消息m0、m1,接收方输入一个选择比特c,在协议执行结束后,接收方得到了消息mc但对m1-c一无所知,而发送方不会得知接受方究竟获得是m0还是m1。如果发送方发送的消息个数增加到n个,那么该协议就是n择一ot协议。除了ot协议,还有一种随机ot协议。该协议与ot协议类似但又有不同。以二择一随机ot协议为例,在协议执行开始时,发送方并不拥有消息,但接收方依然输入一个选择比特c,执行结束后,发送方得到了协议随机生成的两个消息m0、m1,而接收方只获得了其中一个消息mc,对m1-c同样一无所知。在本发明中,使用符号表示l次ot协议,在协议中传输的消息长度为k比特;使用符号表示l次随机ot协议,在协议中传输的消息长度为k比特。

(一)πtriple协议的三元组生成过程

该过程中,所有参与方共同生成一组三元组。

πtriple协议的三元组生成过程如下:

1.每一个参与方pi随机选择有限域中的一个向量赋给a(i),随机选择有限域中的一个值赋给b(i),其中(τ为安全参数,至少为3);

2.对于每一对有序的参与方(pi,pj),利用随机ot执行下述操作:

(2.1)参与方pi(相当于随机ot协议中的发送方)和pj(相当于随机ot协议中的接收方)调用其中pi输入作为随机ot协议的选择比特,由于总共k个选择比特,故进行k次随机ot协议;

(2.2)对每一个h∈{1,2,…,τk}(h代表随机ot协议执行的是第几次),pj会得到有限域中的两个值pi得到此值满足当

(2.3)对每一个h∈{1,2,…,τk},pj计算然后发送给pi;

(2.4)对每一个h∈{1,2,…,τk},pi计算则有

(2.5)将拆分成τ个向量(t1,t2,…,tτ),每个向量包含其中k个元素;

(2.6)将拆分成τ个向量(q1,q2,…,qτ),每个向量包含其中k个元素;

(2.7)pi计算

(2.8)pj计算注意到此时有

3.每一参与方pi计算

4.所有参与方共同随机选择有限域中的两个向量赋给

5.每一参与方pi计算a(i)=<a(i),r>,c(i)=<c(i),r>;

6.每一参与方pi计算

7.每一参与方pi在键值id下存储初始分片(a(i),b(i),c(i));

8.每一参与方pi调用协议π[·]的“分发”功能分发a(i),b(i),c(i),以分发a(i)为例,每一方pj都得到a(i)的一个分片a(i,j),即∑ja(i,j)=a(i),以及对应的mac值分片,从而每一方pj拥有a的一部分分片a(i,j)的连加和∑ia(i,j)以及对应mac值分片的连加和,从而此步可以得到[a],[b],[c],其中a=∑ia(i)、b=∑ib(i)、c=∑ic(i)

以每一参与方pi调用协议π[·]的“分发”功能分发a(i)为例,其余分片的分发是类似的。

假设现有五个参与方p1、p2、p3、p4、p5参与运算,分别拥有a(1)、a(2)、a(3)、a(4)、a(5)。所有参与方分别各自调用协议π[·]的“分发”功能来分发自己拥有的值。例如p1分发a(1)后,p1拥有a(1)的分片a(1,1)以及对应的mac值分片m(1,1),p2拥有a(1)的分片a(1,2)以及对应的mac值分片m(1,2),p3拥有a(1)的分片a(1,3)以及对应的mac值分片m(1,3),…,以此类推。在所有参与方分发完成后,各参与方拥有的分片和mac值分片情况如下:

(1)参与方p1:a(1,1),m(1,1);a(2,1),m(2,1);a(3,1),m(3,1);a(4,1),m(4,1);a(5,1),m(5,1)

(2)参与方p2:a(1,2),m(1,2);a(2,2),m(2,2);a(3,2),m(3,2);a(4,2),m(4,2);a(5,2),m(5,2)

(3)参与方p3:a(1,3),m(1,3);a(2,3),m(2,3);a(3,3),m(3,3);a(4,3),m(4,3);a(5,3),m(5,3)

(4)参与方p4:a(1,4),m(1,4);a(2,4),m(2,4);a(3,4),m(3,4);a(4,4),m(4,4);a(5,4),m(5,4)

(5)参与方p5:a(1,5),m(1,5);a(2,5),m(2,5);a(3,5),m(3,5);a(4,5),m(4,5);a(5,5),m(5,5)

注意到∑ja(i,j)=a(i)且a=∑ia(i),因此∑i,ja(i,j)=a,故每一参与方将其拥有的分片相加(mac值分片也同样相加)得到的便是a的一个分片,例如参与方p1拥有的是∑ia(i,1)。从而,此步便可以得到[a]。

9.所有参与方随机选择有限域中的一个数据值s;

10.所有参与方调用协议π[·]的“线性组合”功能分发ρ,得到[ρ],其中(每个参与方只拥有a和的一个分片,因此可以利用“线性组合”功能得到ρ的一个分片值);

11.所有参与方调用协议π[·]的“揭示”功能,每个参与方输入ρ的一个分片,以获取ρ的真实值;

12.所有参与方调用协议π[·]的“线性组合”功能分发σ,得到[σ],其中

13.所有参与方调用协议π[·]的“检验”功能,验证σ是否为0;

14.若通过验证,则([a],[b],[c])即为满足条件的三元组,每一参与方pj拥有的是(∑ia(i,j),∑ib(i,j),∑ic(i,j))。

由于该三元组生成过程为现有过程,在此不再过多解释和说明,但本发明不限于如上三元组生成过程,在三元组或多元组生成过程有变化的情况下,同样适用于本发明。

(二)参与方增加流程

本发明实施例在πtriple协议中增加了参与方增加流程。新参与方ps加入协议,需对已生成的三元组处理成多一个分片的三元组,并生成相应的mac值分片给新的参与方ps。

如图3所示,当在预处理阶段,新参与方向原参与方通知携带新参与方标识的加入请求后(如新参与方ps输入(add,ps)后),本发明实施例的安全数据共享计算方法还包括如下步骤:

步骤s350,各个原参与方提取自己存储的初始多元组分片(如初始三元组分片),针对所有参与方将提取的多元组分片进行重新分片并重新发送给所有参与方。

可选地,在该步骤之前,该方法还可以包括:步骤s340,各个原参与方将自己所拥有的所有多元组分片的连加和清空,但保留mac值分片。

该多元组分片的连加和为针对本协议中在前面描述的步骤8得到的。

步骤s360,各参与方收到新的多元组分片后,将相同键值对应的三元组分片值进行连加和操作,获得新的多元组分片的连加和。

本步骤中,各参与方包括新参与方,并且,在πtriple协议的三元组生成过程中步骤8得到的mac值分片加和不变。

步骤s370,各个原参与方与新参与方成对交互,通过各原参与方存储的初始多元组分片和新参与方的mac密钥来生成新参与方的mac分片,并由此更新各原参与方的mac值分片。

更具体地,参与方ps输入(add,ps)后,πtriple协议中每个现有参与方均从新参与方ps处得到输入(add,ps),然后按照πtriple协议执行以下过程:

1.新参与方ps随机选择有限域中的一个值作为mac密钥δ(s)

新参与方ps获取mac密钥δ(s)的过程在整个协议运行时只执行一次,如果在前面的步骤s110中执行过,则此处不再重复执行。

2.各原参与方将拥有的所有三元组的对应分片连加和清空,但保留mac值分片。

该步骤相当于上面的步骤s340。

3.每一个现有参与方pf与ps调用协议πcopee的初始化过程,其中参与方pf输入自己的mac密钥δ(f)

4.pf提取自己存储的所有已生成三元组对应的初始分片(a(i),b(i),c(i)),对于a(i)、b(i)、c(i)分别重新分片成n+1份,并将这些分片和对应的原始键值重新发送给所有的参与方,各参与方(包括新参与方)在收到此分片后,将相同键值对应的三元组分片值加和的值与初始分片相加,mac值分片加和不变。

该步骤4相当于前述步骤s350-s360。

5.pf与ps调用协议πcopee的“扩展”功能,其中pf输入所有已存储的k组三元组的初始分片,此处,为了方便表述,将各三元组的初始分片元素用zn表示,其中,n为k组三元组对应的初始分片的个数,n=1,2,3,…,3k;k为已存储的三元组初始分片的组数。然后对于这3k个三元组初始分片中的每一个分片zn,ps得到pf得到这两个值满足关系

对于每一个n,n=1,2,3,…,3k,参与方pf将其原来的mac值分片值连加和增加后作为新的mac值分片,而新参与方ps的mac值分片为

由此,便更新了各原参与方的mac值分片。

如上步骤3和5相当于前述步骤s370。

示例:

假设最初只有p1、p2、p3、p4、p5五方参与运算,新参与方p6欲参与进来。此时原有参与方已协商出一组三元组([a],[b],[c]),需要将此三元组处理成多一个分片的三元组,并生成相应的mac值分片给新的参与方p6。注意到在生成此三元组的过程中,每一参与方都会存储初始分片(如πtriple协议的三元组生成过程中步骤7“每一参与方pi在键值id下存储初始分片(a(i),b(i),c(i))”的结果),此时每一方拥有的信息如下:

(1)p1拥有a(1),b(1),c(1)

(2)p2拥有a(2),b(2),c(2)

(3)p3拥有a(3),b(3),c(3)

(4)p4拥有a(4),b(4),c(4)

(5)p5拥有a(5),b(5),c(5)

此外,在πtriple协议的三元组生成过程的步骤8之中,各参与方分别调用协议π[·]的“分发”功能分发自己拥有的初始分片,此时各参与方拥有的信息如下(a(i,j)代表参与方pi将a(i)分发给参与方pj的分片,为其对应的mac值分片):

(1)p1拥有以及

(2)p2拥有以及

(3)p3拥有以及

(4)p4拥有以及

(5)p5拥有以及

然后各参与方将得到的三元组分片和mac值分片分别做一个加和,完成πtriple协议的三元组生成过程的第8步,即如下表1所示。

表1:三元组分片和mac值分片的加和示例

新的参与方p6加入进来后,执行以下过程:

1.参与方p6随机选择有限域中的一个值作为mac密钥δ(6)(参与方p6的该操作在整个协议运行时只执行一次,如果已经执行过,在此不再执行);

2.每个参与方将拥有的此三元组的分片连加和(πtriple协议的三元组生成过程的第8步完成后)清空,但保留mac值分片;

3.对于每一个现有参与方p1、p2、p3、p4、p5均执行下述操作,此处以参与方p1为例进行描述:

1)参与方p1与p6调用协议πcopee的初始化过程,其中参与方p1输入自己的mac密钥δ(1)

2)参与方p1提取自己存储的初始分片(a(1),b(1),c(1)),对于a(1)、b(1)、c(1)分别重新分片成6份(随机选择5个有限域中的值赋给a(1,1),a(1,2),…,a(1,5),并计算并将这些分片和对应的原始键值重新发送给所有的参与方,参与方在收到此分片后,将相同键值对应的分片值加和的值与此分片相加,mac值分片加和不变;

3)p1与p6调用协议πcopee的“扩展”功能,其中p1输入自己存储的初始分片(a(1),b(1),c(1)),然后p6得到p1得到并且满足关系

此处,p1输入自己存储的三元组初始分片只有1组,即k=1,n=1,2,3,也即,z1=a(1),z2=b(1),z3=c(1)

4)参与方p1将原来的mac值分片的连加和增加而参与方p6的mac值分片的连加和增加即增加

在执行完上述操作后,参与方p6将得到其中一份连加和以及对应的mac值分片的连加和,其余参与方也会得到新的连加和,mac值分片的连加和的值也会更新。

由此,新参与方p6便利用其拥有的数据分片x(6)和三元组分片(a(6),b(6),c(6)),由此可与其他参与方一样参与运算。

(三)参与方退出流程

原参与方pt退出协议,需将其拥有的三元组分片发给p1。

如图4所示,该参与方退出流程包括以下步骤:

步骤s410,待退出参与方向其他原参与方通知携带待退出参与方标识的退出请求后(如待退出的原参与方pt处输入(quit,pt)后),将其mac密钥、所有已得到的多元组分片值和mac值发送至预定原参与方。

例如,pt将自己的mac密钥δ(t)以及所有已得到的分片和mac值分片以及对应的键值发送给p1(包含执行协议π[·]后得到的分片和mac值分片)。

步骤s420,预定原参与方基于接收的mac密钥更新其原有mac密钥。

例如,p1更新mac密钥δ(1)变为δ(1)(t)。该过程对于每一参与方只执行一次,如果已经在π[·]协议执行阶段的步骤s220中执行过,则此处不再重复执行。

步骤s430,预定参与方基于接收到的来自待退出参与方的多元组分片值和mac分片值更新其所拥有的每个键值下的多元组分片值和对应的mac分片值。

例如,对于每一个键值对应的三元组分片和mac值分片,p1更新对应三元组分片的值为(a(1)+a(t),b(1)+b(t),c(1)+c(t)),mac值分片为m(1)+m(t)

示例:

假设最初只有p1、p2、p3、p4、p5五方参与运算,参与方p2欲退出。此时原有参与方已协商出一个三元组(([a],[b],[c]),需要将p2拥有的三元组分片发给p1。注意到在πtriple协议的三元组生成过程的第8步完成后,各参与方将得到的三元组分片和mac值分片分别进行的连加和,如前面表1所示。

参与方p2欲退出,输入(quit,pt)并广播给其他参与方,则πtriple协议执行以下步骤:

1.p2将拥有的mac密钥δ(2)、连加和a(1,2)+a(2,2)+a(3,2)+a(4,2)+a(5,2)、b(1,2)+b(2,2)+b(3,2)+b(4,2)+b(5,2)、c(1,2)+c(2,2)+c(3,2)+c(4,2)+c(5,2)以及对应的mac值分片的连加和以及在执行协议π[·]时的所有信息全部发送给p1;

2.p1更新mac密钥为δ(1)(2)

3.对于每一个键值对应的三元组分片和mac值分片,p1将对应三元组分片的值和mac值分片加上p2发给他的相应值,得到更新后的分片值和mac值分片。

上述可知,本发明实施例中,协议π[·]和πtriple均具有“参与方增加”和“参与方退出”功能,基于如上的预处理阶段的“参与方增加”和“参与方退出”流程,可以解决现有的恶意版本的mascot协议在其运行过程中,新的参与方无法加入,且原有参与方的退出将使得协议运行出错的问题。

此外,本发明实施例中,还同样提出了在线阶段的参与方加入和退出机制,即在协议πonline中增加了“参与方增加”和/或“参与方退出”功能。下面结合对协议πonline的介绍来说明本发明在在线阶段的参与方加入和退出方法。

如图5所示,本发明实施例对协议π[·]以及πtriple都进行了改进,均增加了参与方增加和参与方退出功能,使得在预处理阶段,可以进行参与方的增加和退出。

与现有恶意版本的mascot协议相比,本发明的如上所述的实施例可以处理协议运行时加入新的参与方及退出原有参与方的实际需求,从而解决现有恶意版本的mascot协议在其运行过程中,新的参与方无法加入,且原有参与方的退出将使得协议运行出错的问题。本发明实施例给出的基于恶意mascot协议的预处理阶段可增删参与方的安全多方计算协议进一步完善了该协议的功能,应用范围比mascot协议更广泛,且更贴近实际的应用环境。

相应地,本发明还提供一种基于恶意mascot协议的参与方增加和退出系统(或称参与方参与系统),该系统包括处理器和存储器,存储器中用于存储计算机指令,处理器用于执行存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置实现如前所述方法的步骤。

在协议安全性方面,如果不发生增删参与方,本协议的安全性与恶意版本的mascot协议的安全性一致。在发生参与方增加的行为时,安全性不会降低,但在发生参与方退出的行为时,由于退出的原有参与方的信息包括mac密钥将被参与方p1控制或获取,因此安全性略有降低。在协议执行效率方面,如果不发生增删参与方,本协议的执行效率与恶意版本的mascot协议的执行效率一致。在发生增删参与方的行为时,由于需要执行额外的操作,因此执行效率略有降低。但是,需要注意的是,本协议可以实现恶意版本mascot协议不能实现的功能,可以处理恶意版本mascot协议不能应对的现实应用情况,因此略有降低的安全性和执行效率与功能上的完备和更贴近实际应用环境相比,是完全可以忽略的。

本公开还涉及存储介质,其上可以存储有计算机程序代码,当程序代码被执行时可以实现本发明的方法的各种实施例,该存储介质可以是有形存储介质,诸如光盘、u盘、软盘、硬盘等。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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