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

一种基于TEE可扩展的安全多方计算方法及系统与流程

2021-10-24 05:43:00 来源:中国专利 TAG:多方 计算方法 扩展 系统安全 计算

一种基于tee可扩展的安全多方计算方法及系统
技术领域
1.本发明属于安全多方计算领域,具体涉及一种基于tee可扩展的安全多方计算方法及系统。


背景技术:

2.当前数字经济正在引领新经济发展,数据作为一种新型生成要素,在社会生产的诸多方面发挥着重要的作用。而数据孤岛现象的存在,极大地束缚了数字经济的发展。以安全多方计算为代表的隐私计算技术,在解决因数据共享而面临的隐私和性能问题上,扮演者重要的角色。
3.安全多方计算技术(secure multi

party computation),是一种具备保护数据隐私性质的多方计算技术。安全多方计算使得多个参与方能够协同执行一个计算逻辑,并且每一个参与方都能获得计算结果,但无法获得其他方的输入数据。
4.可信执行环境(trusted execution environment,tee),是一种基于硬件技术解决隐私计算问题的方式。tee提供了一种隔离机制,使得内存可被隔离为安全区和非安全区。运行在安全区内的数据和程序具备机密性和完整性。目前主流的tee技术包括intel sgx(software guard extensions,软件保护扩展)以及arm trustzone等。
5.群签名(group signatures):是一种能够保护隐私的认证机制。群签名通常具有以下特点:一个群中的任意一个成员都能够以匿名的方式代表整个群体进行签名,因此群签名能够对签名成员身份进行保护。同时,群签名是公开可验证的,且发生争议时,群管理员能够打开签名识别签名者。在传统的基于tee的隐私计算解决方案中,特别是安全多方计算场景中,通过在安全区内执行敏感数据和指令,能够很好地保护数据隐私。但是在扩充参与节点的需求方面,往往需要重新生成和分发beaver三元组,且通信量随着参与方的增加而增加,系统复杂度升高。同时在参与方计算结果可信性上,仍存在数据造假或谎报数据问题。


技术实现要素:

6.为解决以上现有技术存在的问题,本发明提出了一种基于tee可扩展的安全多方计算方法,该方法包括:
7.将与安全计算相关的计算程序加载到可信执行环境tee中;用户参与节点发起计算任务请求,计算系统接收请求后对系统进行初始化;可信执行环境tee在系统初始化过程中生成beaver三元组;
8.可信执行环境tee将beaver三元组发送给各个用户参与节点;
9.各个用户参与节点采用秘密共享策略从其他用户参与节点中获取对应的数据,构成本地数据,并对本地数据进行计算,得到局部计算结果,并基于多中心的群签名机制,对局部计算结果进行签名;用户参与节点中对应的数据包括可信执行环境tee发送的beaver三元组以及用户参与节点各个自的用户数据;
10.用户参与节点将局部计算结果发送给可信执行环境tee,tee验签后根据接收的局部计算结果和计算任务执行对应的计算过程,得到最终的计算结果,并将最终的计算结果发送给参与节点。
11.优选的,对系统进行初始化的过程包括:系统的可信执行环境tee中的随机数生成器产生beaver三元组;各个设备授信、信道建立、约定计算逻辑算法以及逻辑回归算法迭代停止条件。
12.进一步的,beaver三元组的表达式为(a
i
,b
i
,c
i
),beaver三元组中的各个参数应满足:
13.a=σa
i
14.b=σb
i
15.c=σc
i
16.c=a*b
17.其中,a,b,c均表示beaver三元组中的随机数,i表示beaver三元组中数据的标记号。
18.优选的,用户参与节点由计算模块和数据模块组成,其中计算模块用于执行本地计算,数据模块用于存储用户参与节点中的数据。
19.优选的,用户参与节点采用秘密共享策略从其他用户参与节点中获取对应的数据的过程包括:秘密共享策略包括秘密分发阶段和秘密重构阶段;秘密分发阶段包括对用户参与节点中的秘密数据进行切割,得到秘密数据碎片,对各个秘密数据碎片进行位置标记;用户参与节点向其他用户参与节点发出数据获取请求,其他用户参与节点收到请求后将所有的秘密数据碎片发送给发出请求的用户参与节点;秘密重构阶段包括发出请求的用户参与节点根据各个秘密数据碎片的位置标记以及重构策略对秘密数据进行恢复,得到完整的数据。
20.优选的,对本地数据进行计算的过程包括:用户参与节点基于接收到的数据和自有数据进行运算,运算方式包括算术运算和布尔预算。
21.优选的,多中心的群签名机制包括:系统初始化、中心建立、密钥生成以及签名阶段;
22.系统初始化阶段:设置两个为大素数,阶数为p的群g,g
t
,根据群g和g
t
定义双线性性映射关系以及生成元g;定义哈希函数h0和h1,并为每个成员中心生成一个身份id
i
,定义群成员数量n和秘钥生成阈值t,将上述所有的参数进行公开;
23.中心建立阶段:根据系统公开的参数对每个中心进行验证,若验证不通过,则重复执行验证过程,若验证通过,该中心生成自己的私钥和公钥;且各个中心均为该系统的用户管理员;
24.密钥生成阶段:用户选择一个随机数作为签名,并根据随机数生成公钥y1;将用户公钥和用户id发送到中心中;中心接收到用户公钥和用户id后得到认证信息s
ij
,并将认证信息发送给其他中心,其他中心验证认证信息是否成立,若不成立,则拒绝发送密钥,若成立,在该将自己的密钥s
ik
发送给用户,用户接收到密钥后对该密钥进行验证,验证通过后生成自己的私钥验证失败则不生成密钥;
25.签名阶段:用户参与节点采用生成的私钥对局部计算结果进行签名。
26.进一步的,对中心进行验证的过程包括:每个中心选择一个随机数c
i
,并计算将该计算结果发送到各自的中心中,各个中心接收到信息后计算出并对结果进行公开;每个中心随机选择两个多项式,根据选择的两个多项以及中心的身份id计算秘密值s
ij
和s

ij
,将计算的秘密值发送到另一个中心id
j
中;该中心对秘密值进行验证,验证通过后,计算秘密值的中心id
i
认可验证的中心id
j
,验证失败,则继续发送秘密值;验证的公式为:
[0027][0028]
其中,表示群g中的元素,g表示生成元,s
ij
表示第一秘密值,表示中心i所持有的c
i
的s

ij
次幂,s

ij
表示第二秘密值,b
jk
表示群g中的元素与中心i所持有的c
i
的b
ik
次幂的乘积,c
i
表示群g中第i个元素b
ik
表示中的一个元素,表示与p互素且小于p的正整数集合,表示身份为id
i
的中心,n表示群成员数量,k表示中心编号。
[0029]
优选的,tee根据接收的局部计算结果以及计算任务执行对应的计算过程包括:tee对接收到的所有局部计算结果进行聚合;进行聚合的方式包括对所有的局部计算结果求平均值。
[0030]
一种基于tee可扩展的安全多方计算系统,该系统包括:程序加载模块、初始化模块、数据分享模块、本地数据计算模块以及安全多方计算模块;
[0031]
所述程序加载模块用于将与安全计算相关的计算程序加载到可信执行环境tee中;
[0032]
所述初始化模块根据用户参与节点发起的计算任务请求生成beaver三元组,并将beaver三元组发送给各个用户参与节点;
[0033]
所述数据分享模块用于各个用户参与节点获取其他参与节点的数据;
[0034]
所述本地计算模块根据用户参与节点获取的数据以及beaver三元组执行本地计算,得到局部计算结果,并将局部计算结果发送到安全多方计算模块;
[0035]
所述安全多方计算模块根据局部计算结果执行对应的安全多方计算,得到最终的计算结果,并将最终的计算结果发送到用户参与节点中。
[0036]
本发明的优点:
[0037]
本发明采用了一种基于tee为中心,多参与节点构成的计算方法,解决了传统安全安全多方计算中辅助三元组生成的低效和安全问题,使得系统的安全性和执行效率得到了有效提升,同时也利于系统中参与节点的可扩展性。同时,为了解决参与方计算结果的可靠性问题,引用多中心的群签名机制,有效解决结果真实性存疑的问题。
附图说明
[0038]
图1为本发明的一种基于tee可扩展的安全多方计算的用户参与节点执行本地计算的过程图;
[0039]
图2为本发明的一种基于tee可扩展的安全多方计算的流程图;
[0040]
图3为本发明的一种基于tee可扩展的安全多方计算方法的通信示意图。
具体实施方式
[0041]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042]
一种基于tee可扩展的安全多方计算方法,如图2所示,该方法包括:
[0043]
将与安全计算相关的计算程序加载到可信执行环境tee中;用户参与节点发起计算任务请求,计算系统接收请求后对系统进行初始化;可信执行环境tee在系统初始化过程中生成beaver三元组;
[0044]
可信执行环境tee将beaver三元组发送给各个用户参与节点;
[0045]
各个用户参与节点采用秘密共享策略从其他用户参与节点中获取对应的数据,构成本地数据,并对本地数据进行计算,得到局部计算结果,并基于群签名机制,对局部计算结果进行签名;用户参与节点中对应的数据包括可信执行环境tee发送的beaver三元组以及用户参与节点各个自的用户数据;
[0046]
用户参与节点将局部计算结果发送给可信执行环境tee,tee验签后根据接收的局部计算结果以及计算任务执行对应的计算过程,得到最终的计算结果,并将最终的计算结果发送给参与节点。
[0047]
对系统进行初始化的过程包括:系统的可信执行环境tee中的随机数生成器生成beaver三元组;系统的各个设备进行授信,各个设备之间建立信道,并约定计算逻辑算法以及逻辑回归算法迭代停止条件。
[0048]
逻辑回归算法迭代停止条件采用多方共同计算逻辑回归(logistic regression)模型。
[0049]
逻辑回归是一种常见的用于分类问题的机器学习算法,它的基本思想是使用sigmod函数将线性回归模型的回归结果,转换成使用概率大小来评估的分类问题。所述逻辑回归函数采用批量梯度下降方式优化,所述逻辑回归函数的一种常见二分类表示形式为:
[0050][0051][0052]
其中,θ表示逻辑回归模型参数,m表示样本个数,α表示学习率,i表示样本索引,j表示更新次数。
[0053]
为了优化计算过程,除了批量梯度下降、小批量梯度下降以及随机梯度下降方式之外,在一些实施例中还可以采用共轭梯度法、拟牛顿法、adadelta法等措施。为了提升模型的鲁棒性,在一些实施例中,还可以采用添加正则化惩罚项的措施,来解决模型过拟合问题。
[0054]
用户参与节点采用秘密共享策略从其他用户参与节点中获取对应的数据的过程包括:秘密共享策略包括秘密分发阶段和秘密重构阶段;秘密分发阶段包括对用户参与节
点中的秘密数据进行切割,得到秘密数据碎片,对各个秘密数据碎片进行位置标记;用户参与节点向其他用户参与节点发出数据获取请求,其他用户参与节点收到请求后将所有的秘密数据碎片发送给发出请求的用户参与节点;秘密重构阶段包括发出请求的用户参与节点根据各个秘密数据碎片的位置标记以及重构策略对秘密数据进行恢复,得到完整的数据。
[0055]
一种采用重构策略对秘密数据进行恢复的具体实施方式,以两方执行乘法运算z=x*y为例,用户参与节点p1持有数据x,用户参与节点p2持有数据y,三元组数据包括:c=a*b,且c1 c2=(a1 a2)*(b1 b2);
[0056]
在数分发阶段将三元组中的数据分发给用户参与节点p1和用户参与节点p2;在各个用户进行数据交换阶段,将各种用户中参与节点中的数据进行分割,其中用户参与节点p1中的数据进行分割后得到数据碎片x1、x2,用户参与节点p2中的数据进行分割后得到数据碎片y1、y2;用户参与节点p1、p2将各个自的数据碎片进行分发。
[0057]
通过秘密分发阶段参与节点p1中的数据包括三元组(a1,b1,c1)和数据碎片x1、y1;参与节点p2中的数据包括三元组(a2,b2,c2)和数据碎片x2,y2。
[0058]
通过秘密分发阶段后,用户参与节点p1执行本地计算任务,该计算任务为:e1=x1

a1,f1=y1

b1;用户参与节点p2执行本地计算任务,该计算任务为:e2=x2

a2,f2=y2

b2。各个用户参与节点在执行完本地计算任务后共享计算结果,并对计算结果进行重构,得到参数e和f,其中重构的公式为:e=e1 e2,f=f1 f2;e表示各个用户参与节点执行本地计算得到的局部参数,e1表示用户参与节点p1的原始数据碎片执行本地计算任务过程中得到的中间参数值,e2表示用户参与节点p2的原始数据碎片执行本地计算任务得到的中间参数值,f表示各个用户参与节点执行本地计算得到的局部参数,f1表示用户参与节点p1中的其他用户参与节点数据碎片执行本地计算任务过程中得到的中间参数值,f2表示用户参与节点p2中的其他用户参与节点数据碎片执行本地计算任务过程中得到的中间参数值。
[0059]
根据重构的数据用户参与节点p1执行计算任务,该计算任务为:z1=f*a1 e*b1 c1;用户参与节点p2执行计算任务,该计算任务为:z2=f*e f*a2 e*b2 c2。根据用户参与节点p1的任务计算结果z1和用户参与节点p2的任务计算结果z2得到完整的秘密数据,即z=z1 z2。
[0060]
对本地数据进行计算的过程包括:用户参与节点基于接收到的数据和自有数据进行运算,运算方式包括算术。进行具体过程包括:参与节点pi利用数据xij,yij以及三元组(aij,bij,cij),通过eij=xij

aij;fij=yij

bij,计算得到自己的局部计算结果。具体的,这里的局部计算结果包括初始模型θ,数据x、y,进一步的还有最终计算结果局部梯度g。
[0061]
对局部计算结果进行签名的过程包括:系统建立阶段、密钥生成阶段、加入阶段、签名阶段以及验证阶段;具体的过程包括:
[0062]
系统建立阶段(setup):在系统建立阶段包括系统建立以及中心建立。
[0063]
系统建立:设置两个为大素数阶p的群g,g
t
,定义双线性映射关系以及生成元g,其中双线性映射关系为e:g
×
g

g
t
。定义哈希函数h0:{0,1}
*

g,同时系统为每个成员中心生成一个身份id
i
,定义群成员数量为n和秘钥生成阈值t,并公布参数:
[0064]
params={g,g
t
,p,g,e,h0,h1,n,t,id
i
}
[0065]
其中,g表示第一循环群,g
t
表示第二循环群,p表示循环群的阶数,表示与p互素
且小于p的正整数,g表示生成元,e表示双线性映射关系,h0,和h1均表示哈希函数,n表示群成员数量,t表示秘钥生成阈值。
[0066]
中心建立:
[0067]
对每个中心随机选择计算将计算结果发送到每个中心中;每个中心接收到信息后计算出并进行公开;其中,c
i
表示中心i选择的随机数,c
i
表示群g中第i个元素h表示所有群成员持有元素的积,n表示群成员数量;对于每个中心,在t

1阶的上随机选择两个多项式:
[0068]
f
i
(x)=a
i0
a
i1
x

a
i(t

1)
x
t
‑1[0069]
f
i

(x)=b
i0
b
i1
x

b
i(t

1)
x
t
‑1.
[0070]
其中,a
i(t

1)
表示中的一个元素,b
i(t

1)
表示中的一个元素。
[0071]
每个中心进行计算并广播计算结果,其中k=0,1,...n

1。根据选择的两个多项以及中心的身份id计算秘密值s
ij
=f
i
(id
j
)mod p以及s

ij
=f
i

(id
j
)mod p,j=1,2,...n;将计算的秘密值到另一个中心id
j
中,且j≠i;其中,b
ik
表示与的乘积,表示群g中的元素,表示中心i所持有的c
i
的b
ik
次幂,mod p表示模p运算;当该中心接收秘密值时,进行如下验证:
[0072][0073]
其中,表示s
ij
在群g中的元素,g表示生成元,s
ij
表示第一秘密值,表示中心i所持有的c
i
的s

ij
次幂,s

ij
表示第二秘密值,b
jk
表示与的乘积,表示身份为id
i
中心k,n表示群成员数量,k表示中心编号。
[0074]
如果验证通过,中心id
i
认定id
j
为诚实的,否则要求继续发送秘密值。在中心id
i
接收到其他n

1方的秘密值s
ij
(j=1,...,i

1,i 1,...n),通过1,i 1,...n),通过生成自己的秘密值,并将作为私钥;其中,表示中心id
i
的私钥。类似的,中心id
i
的公钥为系统主公钥为:
[0075][0076]
其中,t表示秘钥生成阈值,s为主私钥。在该群签名方案中,所有的中心成员共同作为该系统的管理员。
[0077]
秘钥生成阶段(extract):
[0078]
用户选择一个随机数作为签名,并生成公钥y1=g
x
,然后发送(y1,id)到群管理员。然后中心id
j
使用id
i
加入系统,并返回认证信息其中,h0表示哈希函数。随后id
i
发送s
ij
到其他中心id
k
,其中k∈s,,其中k∈s,|s|=t,其中,s表示中心数
量集合,n表示中心最大数量,t表示秘钥生成阈值。id
k
验证是否成立,如果成立,id
k
发送秘钥到id
i
;其中,e表示双线性映射关系,s
ij
表示认证信息。当id
i
从id
k
接收到私钥后,验证其中表示中心id
k
的公钥;验证通过后,生成自己的私钥
[0079][0080]
最终,用户持有两个秘钥(x,sk
id
)。
[0081]
加入阶段(join):
[0082]
当一个用户想要加入群组时,通过选择一个随机数然后计算g
d
和g
xd
,并发送{y1,g
d
,g
xd
,id,sk
id
}到群管理员。群管理员验证:
[0083]
e(g
xd
,g)=e(y1,g
d
)
[0084]
如果验证通过,则加入群组;否则,加入失败。
[0085]
签名阶段(sign):
[0086]
用户需要对消息m∈{0,1}
x
签名,首先选择一整数然后计算:
[0087][0088]
u=g
kxd
[0089]
v=g
ad
[0090]

b=h0(id||u v)
[0091]
r=b
d
[0092]

h1=h1(m||u v r)
[0093][0094]
其中,a表示中的一个元素,u表示g
kxd
在群g中的元素,k表示中的一个整数,v表示g
ad
在群g中的元素,b表示用户id与群g中元素的哈希值,r表示哈希值的d次幂,w表示生成的签名结果,y1表示系统公钥,r
x
表示哈希值与随机数d和私钥x的结果积次幂。
[0095]
最终消息m的签名为(u,v,r,w)。
[0096]
验证阶段(verify):
[0097]
验证者计算h
′1=h1(m||u v r),并判断是否等于h1,随后验证是否成立。如果成立,返回1;否则,返回0。
[0098]
打开阶段(open):
[0099]
当需要打开签名识别签名方时,t个成员中心可以共同计算识别签名者身份:
[0100]
e(g
xd
,g)=e(y1,g
d
)
[0101][0102]
tee根据接收的局部计算结果以及计算任务执行对应的计算过程包括:tee对接收
到的局部梯度g验签成功后,基于θ=θ

∑g,聚合梯度并更新全局模型。tee将全局结果模型返回给各参与节点,参与节点重复上述过程直到达到模型更新的最大迭代次数或模型收敛。
[0103]
如图1所示,一种基于tee可扩展的安全多方计算系统实施方案可以包括一个tee中心设备,两个及以上的参与节点,两个及以上的参与节点,点对点通信的可信信道。
[0104]
如图3所示,一种基于tee可扩展的多方安全计算系统实施方案,应包括以下步骤:
[0105]
s1:根据参与节点发起的计算任务请求,计算系统执行初始化;
[0106]
s11:所述系统初始化包括,生成beaver三元组、设备授信、信道建立、约定计算逻辑,逻辑回归算法最大迭代次数等。
[0107]
s12:所述参与节点在本地进行模型初始化,对每个参与方i,持有模型结果记为:u
i
=θ
i
x
i

[0108]
s2:所述tee利用算术秘密共享技术,向参与节点分发beaver三元组;
[0109]
s21:所述tee指可信执行环境,具体的,指英特尔公司的intel sgx(software guard extensions),它提供了一种隔离机制,使得内存可被划分为安全区和非安全区,具备安全性和可验证性。tee技术目前在隐私技术领域得到了较为广泛的应用。
[0110]
s22:所述beaver三元组(beaver triple),由所述随机数生成器生成的随机数构成。在一些实施例中,在基于算术共享的多方安全计算场景中,随机数之间的关系应满足a*b=c。对于多个参与节点,每个参与节点所持有的beaver三元组(a
i
,b
i
,c
i
),应满足
[0111]
a=σa
i
[0112]
b=∑b
i
[0113]
c=σc
i
[0114]
c=a*b
[0115]
s23:具体的,tee根据参与节点的数量确定beaver三元组的份额,并通过算术秘密共享分发给各参与节点。各参与节点p1,p2,...,p
n
分别持有(a1,b1,c1),(a2,b2,c2)

(a
n
,b
n
,c
n
)。
[0116]
s3:所述参与节点通过秘密共享从所述其他参与节点获得本地数据并执行本地计算;
[0117]
s31:具体的,通过所述秘密共享,各参与节点分别持有u
i
的子秘密记为u
ij
,y
i
的子秘密yi
j
,以及a
j
、b
j
、c
j

[0118]
s32:具体的,所述参与节点执行本地计算:u
ij

a
j
、u
ij

b
j
并共享计算结果;
[0119]
s33:所述参与节点重构出u
j
,进一步的,所述参与节点计算出y
j
及梯度值g,其中
[0120]
s34:用户参与节点对局部计算结算结果进行群签名,所述群签名采用多中心的签名方案。
[0121]
采用多中心的群签名机制对局部计算结果进行签名的过程包括:基于所述群签名方案,用户参与节点根据身份id持有自己的私钥并对消息g等的比特串m进行签名得到(u,v,r,w)。
[0122]
s4:所述tee根据数据请求确定关联的计算过程及计算任务;
[0123]
s41:所述tee对所述签名验签成功后方可执行结果聚合,否则退出系统;
[0124]
s42:所述tee根据局部结算结果,做加权平均得到最终计算结果,即模型参数θ,其中θ更新方式为:θ=θ

g。
[0125]
s5:所述tee将最终计算结果返回给参与节点。
[0126]
重复上述过程,直到模型收敛或达到最大迭代次数。
[0127]
一种基于tee可扩展的安全多方计算系统,该系统包括:程序加载模块、初始化模块、数据分享模块、本地数据计算模块以及安全多方计算模块;
[0128]
所述程序加载模块用于将与安全计算相关的计算程序加载到可信执行环境tee中;
[0129]
所述初始化模块根据用户参与节点发起的计算任务请求生成beaver三元组,并将beaver三元组发送给各个用户参与节点;
[0130]
所述数据分享模块用于各个用户参与节点获取其他参与节点的数据;
[0131]
所述本地计算模块根据用户参与节点获取的数据以及beaver三元组执行本地计算,得到局部计算结果,并将局部计算结果发送到安全多方计算模块,并基于群签名机制,对所述局部计算结果进行签名;;
[0132]
所述安全多方计算模块根据局部计算结果执行对应的安全多方计算,得到最终的计算结果,并将最终的计算结果发送到用户参与节点中。
[0133]
基于tee可扩展的安全多方计算系统的具体实施方式与方法的具体实施方式相同。
[0134]
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献

  • 日榜
  • 周榜
  • 月榜