CN113541963B - 一种基于tee可扩展的安全多方计算方法及系统 - Google Patents
一种基于tee可扩展的安全多方计算方法及系统 Download PDFInfo
- Publication number
- CN113541963B CN113541963B CN202110808954.5A CN202110808954A CN113541963B CN 113541963 B CN113541963 B CN 113541963B CN 202110808954 A CN202110808954 A CN 202110808954A CN 113541963 B CN113541963 B CN 113541963B
- Authority
- CN
- China
- Prior art keywords
- tee
- data
- center
- user participation
- local
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 claims abstract description 44
- 241000499489 Castor canadensis Species 0.000 claims abstract description 36
- 235000011779 Menyanthes trifoliata Nutrition 0.000 claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 35
- 238000012795 verification Methods 0.000 claims description 28
- 239000012634 fragment Substances 0.000 claims description 21
- 230000007246 mechanism Effects 0.000 claims description 12
- 238000007477 logistic regression Methods 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 6
- 238000004220 aggregation Methods 0.000 claims description 3
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000005520 cutting process Methods 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 8
- 238000005304 joining Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 235000013405 beer Nutrition 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000002939 conjugate gradient method Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明属于安全多方计算领域,具体涉及一种基于TEE可扩展的安全多方计算方法及系统,该方法包括:将与安全计算相关的计算程序加载到可信执行环境TEE中;系统初始化,TEE生成Beaver三元组,并发送给各个用户参与节点;用户参与节点获取其他用户参与节点的数据,构成本地数据,并对本地数据进行计算,得到局部计算结果;对所述局部计算结果进行签名;用户参与节点将局部计算结果发送给TEE,TEE验签后最终计算过程,得到最终的计算结果,并将最终的计算结果发送给参与节点;本发明采用了一种基于TEE为中心,多参与节点构成的计算方法,解决了传统安全安全多方计算中辅助三元组生成的低效和安全问题。
Description
技术领域
本发明属于安全多方计算领域,具体涉及一种基于TEE可扩展的安全多方计算方法及系统。
背景技术
当前数字经济正在引领新经济发展,数据作为一种新型生成要素,在社会生产的诸多方面发挥着重要的作用。而数据孤岛现象的存在,极大地束缚了数字经济的发展。以安全多方计算为代表的隐私计算技术,在解决因数据共享而面临的隐私和性能问题上,扮演者重要的角色。
安全多方计算技术(Secure Multi-Party Computation),是一种具备保护数据隐私性质的多方计算技术。安全多方计算使得多个参与方能够协同执行一个计算逻辑,并且每一个参与方都能获得计算结果,但无法获得其他方的输入数据。
可信执行环境(Trusted Execution Environment,TEE),是一种基于硬件技术解决隐私计算问题的方式。TEE提供了一种隔离机制,使得内存可被隔离为安全区和非安全区。运行在安全区内的数据和程序具备机密性和完整性。目前主流的TEE技术包括IntelSGX(Software Guard Extensions,软件保护扩展)以及ARM Trustzone等。
群签名(Group Signatures):是一种能够保护隐私的认证机制。群签名通常具有以下特点:一个群中的任意一个成员都能够以匿名的方式代表整个群体进行签名,因此群签名能够对签名成员身份进行保护。同时,群签名是公开可验证的,且发生争议时,群管理员能够打开签名识别签名者。在传统的基于TEE的隐私计算解决方案中,特别是安全多方计算场景中,通过在安全区内执行敏感数据和指令,能够很好地保护数据隐私。但是在扩充参与节点的需求方面,往往需要重新生成和分发Beaver三元组,且通信量随着参与方的增加而增加,系统复杂度升高。同时在参与方计算结果可信性上,仍存在数据造假或谎报数据问题。
发明内容
为解决以上现有技术存在的问题,本发明提出了一种基于TEE可扩展的安全多方计算方法,该方法包括:
将与安全计算相关的计算程序加载到可信执行环境TEE中;用户参与节点发起计算任务请求,计算系统接收请求后对系统进行初始化;可信执行环境TEE在系统初始化过程中生成Beaver三元组;
可信执行环境TEE将Beaver三元组发送给各个用户参与节点;
各个用户参与节点采用秘密共享策略从其他用户参与节点中获取对应的数据,构成本地数据,并对本地数据进行计算,得到局部计算结果,并基于多中心的群签名机制,对局部计算结果进行签名;用户参与节点中对应的数据包括可信执行环境TEE发送的Beaver三元组以及用户参与节点各个自的用户数据;
用户参与节点将局部计算结果发送给可信执行环境TEE,TEE验签后根据接收的局部计算结果和计算任务执行对应的计算过程,得到最终的计算结果,并将最终的计算结果发送给参与节点。
优选的,对系统进行初始化的过程包括:系统的可信执行环境TEE中的随机数生成器产生Beaver三元组;各个设备授信、信道建立、约定计算逻辑算法以及逻辑回归算法迭代停止条件。
进一步的,Beaver三元组的表达式为(ai,bi,ci),Beaver三元组中的各个参数应满足:
a=Σai
b=Σbi
c=Σci
c=a*b
其中,a,b,c均表示Beaver三元组中的随机数,i表示Beaver三元组中数据的标记号。
优选的,用户参与节点由计算模块和数据模块组成,其中计算模块用于执行本地计算,数据模块用于存储用户参与节点中的数据。
优选的,用户参与节点采用秘密共享策略从其他用户参与节点中获取对应的数据的过程包括:秘密共享策略包括秘密分发阶段和秘密重构阶段;秘密分发阶段包括对用户参与节点中的秘密数据进行切割,得到秘密数据碎片,对各个秘密数据碎片进行位置标记;用户参与节点向其他用户参与节点发出数据获取请求,其他用户参与节点收到请求后将所有的秘密数据碎片发送给发出请求的用户参与节点;秘密重构阶段包括发出请求的用户参与节点根据各个秘密数据碎片的位置标记以及重构策略对秘密数据进行恢复,得到完整的数据。
优选的,对本地数据进行计算的过程包括:用户参与节点基于接收到的数据和自有数据进行运算,运算方式包括算术运算和布尔预算。
优选的,多中心的群签名机制包括:系统初始化、中心建立、密钥生成以及签名阶段;
系统初始化阶段:设置两个为大素数,阶数为P的群G,GT,根据群G和GT定义双线性性映射关系以及生成元g;定义哈希函数H0和H1,并为每个成员中心生成一个身份IDi,定义群成员数量n和秘钥生成阈值t,将上述所有的参数进行公开;
中心建立阶段:根据系统公开的参数对每个中心进行验证,若验证不通过,则重复执行验证过程,若验证通过,该中心生成自己的私钥和公钥;且各个中心均为该系统的用户管理员;
密钥生成阶段:用户选择一个随机数作为签名,并根据随机数生成公钥y1;将用户公钥和用户id发送到中心中;中心接收到用户公钥和用户id后得到认证信息Sij,并将认证信息发送给其他中心,其他中心验证认证信息是否成立,若不成立,则拒绝发送密钥,若成立,在该将自己的密钥SiK发送给用户,用户接收到密钥后对该密钥进行验证,验证通过后生成自己的私钥验证失败则不生成密钥;
签名阶段:用户参与节点采用生成的私钥对局部计算结果进行签名。
进一步的,对中心进行验证的过程包括:每个中心选择一个随机数ci,并计算将该计算结果发送到各自的中心中,各个中心接收到信息后计算出并对结果进行公开;每个中心随机选择两个多项式,根据选择的两个多项以及中心的身份ID计算秘密值sij和s′ij,将计算的秘密值发送到另一个中心IDj中;该中心对秘密值进行验证,验证通过后,计算秘密值的中心IDi认可验证的中心IDj,验证失败,则继续发送秘密值;验证的公式为:
其中,表示群G中的元素,g表示生成元,sij表示第一秘密值,/>表示中心i所持有的Ci的s′ij次幂,s′ij表示第二秘密值,Bjk表示群G中的元素与中心i所持有的Ci的bik次幂的乘积,Ci表示群G中第i个元素/>bik表示/>中的一个元素,/>表示与p互素且小于p的正整数集合,/>表示身份为IDi的中心,n表示群成员数量,k表示中心编号。
优选的,TEE根据接收的局部计算结果以及计算任务执行对应的计算过程包括:TEE对接收到的所有局部计算结果进行聚合;进行聚合的方式包括对所有的局部计算结果求平均值。
一种基于TEE可扩展的安全多方计算系统,该系统包括:程序加载模块、初始化模块、数据分享模块、本地数据计算模块以及安全多方计算模块;
所述程序加载模块用于将与安全计算相关的计算程序加载到可信执行环境TEE中;
所述初始化模块根据用户参与节点发起的计算任务请求生成Beaver三元组,并将Beaver三元组发送给各个用户参与节点;
所述数据分享模块用于各个用户参与节点获取其他参与节点的数据;
所述本地计算模块根据用户参与节点获取的数据以及Beaver三元组执行本地计算,得到局部计算结果,并将局部计算结果发送到安全多方计算模块;
所述安全多方计算模块根据局部计算结果执行对应的安全多方计算,得到最终的计算结果,并将最终的计算结果发送到用户参与节点中。
本发明的优点:
本发明采用了一种基于TEE为中心,多参与节点构成的计算方法,解决了传统安全安全多方计算中辅助三元组生成的低效和安全问题,使得系统的安全性和执行效率得到了有效提升,同时也利于系统中参与节点的可扩展性。同时,为了解决参与方计算结果的可靠性问题,引用多中心的群签名机制,有效解决结果真实性存疑的问题。
附图说明
图1为本发明的一种基于TEE可扩展的安全多方计算的用户参与节点执行本地计算的过程图;
图2为本发明的一种基于TEE可扩展的安全多方计算的流程图;
图3为本发明的一种基于TEE可扩展的安全多方计算方法的通信示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于TEE可扩展的安全多方计算方法,如图2所示,该方法包括:
将与安全计算相关的计算程序加载到可信执行环境TEE中;用户参与节点发起计算任务请求,计算系统接收请求后对系统进行初始化;可信执行环境TEE在系统初始化过程中生成Beaver三元组;
可信执行环境TEE将Beaver三元组发送给各个用户参与节点;
各个用户参与节点采用秘密共享策略从其他用户参与节点中获取对应的数据,构成本地数据,并对本地数据进行计算,得到局部计算结果,并基于群签名机制,对局部计算结果进行签名;用户参与节点中对应的数据包括可信执行环境TEE发送的Beaver三元组以及用户参与节点各个自的用户数据;
用户参与节点将局部计算结果发送给可信执行环境TEE,TEE验签后根据接收的局部计算结果以及计算任务执行对应的计算过程,得到最终的计算结果,并将最终的计算结果发送给参与节点。
对系统进行初始化的过程包括:系统的可信执行环境TEE中的随机数生成器生成Beaver三元组;系统的各个设备进行授信,各个设备之间建立信道,并约定计算逻辑算法以及逻辑回归算法迭代停止条件。
逻辑回归算法迭代停止条件采用多方共同计算逻辑回归(Logistic Regression)模型。
逻辑回归是一种常见的用于分类问题的机器学习算法,它的基本思想是使用sigmod函数将线性回归模型的回归结果,转换成使用概率大小来评估的分类问题。所述逻辑回归函数采用批量梯度下降方式优化,所述逻辑回归函数的一种常见二分类表示形式为:
其中,θ表示逻辑回归模型参数,m表示样本个数,α表示学习率,i表示样本索引,j表示更新次数。
为了优化计算过程,除了批量梯度下降、小批量梯度下降以及随机梯度下降方式之外,在一些实施例中还可以采用共轭梯度法、拟牛顿法、Adadelta法等措施。为了提升模型的鲁棒性,在一些实施例中,还可以采用添加正则化惩罚项的措施,来解决模型过拟合问题。
用户参与节点采用秘密共享策略从其他用户参与节点中获取对应的数据的过程包括:秘密共享策略包括秘密分发阶段和秘密重构阶段;秘密分发阶段包括对用户参与节点中的秘密数据进行切割,得到秘密数据碎片,对各个秘密数据碎片进行位置标记;用户参与节点向其他用户参与节点发出数据获取请求,其他用户参与节点收到请求后将所有的秘密数据碎片发送给发出请求的用户参与节点;秘密重构阶段包括发出请求的用户参与节点根据各个秘密数据碎片的位置标记以及重构策略对秘密数据进行恢复,得到完整的数据。
一种采用重构策略对秘密数据进行恢复的具体实施方式,以两方执行乘法运算z=x*y为例,用户参与节点p1持有数据x,用户参与节点p2持有数据y,三元组数据包括:c=a*b,且c1+c2=(a1+a2)*(b1+b2);
在数分发阶段将三元组中的数据分发给用户参与节点p1和用户参与节点p2;在各个用户进行数据交换阶段,将各种用户中参与节点中的数据进行分割,其中用户参与节点p1中的数据进行分割后得到数据碎片x1、x2,用户参与节点p2中的数据进行分割后得到数据碎片y1、y2;用户参与节点p1、p2将各个自的数据碎片进行分发。
通过秘密分发阶段参与节点p1中的数据包括三元组(a1,b1,c1)和数据碎片x1、y1;参与节点p2中的数据包括三元组(a2,b2,c2)和数据碎片x2,y2。
通过秘密分发阶段后,用户参与节点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中的其他用户参与节点数据碎片执行本地计算任务过程中得到的中间参数值。
根据重构的数据用户参与节点p1执行计算任务,该计算任务为:z1=f*a1+e*b1+c1;用户参与节点p2执行计算任务,该计算任务为:z2=f*e+f*a2+e*b2+c2。根据用户参与节点p1的任务计算结果z1和用户参与节点p2的任务计算结果z2得到完整的秘密数据,即z=z1+z2。
对本地数据进行计算的过程包括:用户参与节点基于接收到的数据和自有数据进行运算,运算方式包括算术。进行具体过程包括:参与节点Pi利用数据Xij,Yij以及三元组(aij,bij,cij),通过eij=Xij-aij;fij=yij-bij,计算得到自己的局部计算结果。具体的,这里的局部计算结果包括初始模型θ,数据x、y,进一步的还有最终计算结果局部梯度g。
对局部计算结果进行签名的过程包括:系统建立阶段、密钥生成阶段、加入阶段、签名阶段以及验证阶段;具体的过程包括:
系统建立阶段(Setup):在系统建立阶段包括系统建立以及中心建立。
系统建立:设置两个为大素数阶P的群G,GT,定义双线性映射关系以及生成元g,其中双线性映射关系为e:G×G→GT。定义哈希函数H0:{0,1}*→G,同时系统为每个成员中心生成一个身份IDi,定义群成员数量为n和秘钥生成阈值t,并公布参数:
params={G,GT,p,g,e,H0,H1,n,t,IDi}
其中,G表示第一循环群,GT表示第二循环群,p表示循环群的阶数,表示与p互素且小于p的正整数,g表示生成元,e表示双线性映射关系,H0,和H1均表示哈希函数,n表示群成员数量,t表示秘钥生成阈值。
中心建立:
对每个中心随机选择计算/>将计算结果发送到每个中心中;每个中心接收到信息后计算出/>并进行公开;其中,ci表示中心i选择的随机数,Ci表示群G中第i个元素/>h表示所有群成员持有元素/>的积,n表示群成员数量;对于每个中心,在t-1阶的/>上随机选择两个多项式:
fi(x)=ai0+ai1x+…+ai(t-1)xt-1
fi′(x)=bi0+bi1x+…+bi(t-1)xt-1.
其中,ai(t-1)表示中的一个元素,bi(t-1)表示/>中的一个元素。
每个中心进行计算并广播计算结果,其中k=0,1,...n-1。根据选择的两个多项以及中心的身份ID计算秘密值sij=fi(IDj)mod p以及s′ij=fi′(IDj)mod p,j=1,2,...n;将计算的秘密值到另一个中心IDj中,且j≠i;其中,Bik表示/>与/>的乘积,/>表示群G中的元素,/>表示中心i所持有的Ci的bik次幂,mod p表示模p运算;当该中心接收秘密值时,进行如下验证:
其中,表示sij在群G中的元素,g表示生成元,sij表示第一秘密值,/>表示中心i所持有的Ci的s′ij次幂,s′ij表示第二秘密值,Bjk表示/>与/>的乘积,/>表示身份为IDi中心k,n表示群成员数量,k表示中心编号。
如果验证通过,中心IDi认定IDj为诚实的,否则要求继续发送秘密值。在中心IDi接收到其他n-1方的秘密值sij(j=1,...,i-1,i+1,...n),通过 生成自己的秘密值,并将/>作为私钥;其中,/>表示中心IDi的私钥。类似的,中心IDi的公钥为系统主公钥为:
其中,t表示秘钥生成阈值,s为主私钥。在该群签名方案中,所有的中心成员共同作为该系统的管理员。
秘钥生成阶段(Extract):
用户选择一个随机数作为签名,并生成公钥y1=gx,然后发送(y1,id)到群管理员。然后中心IDj使用idi加入系统,并返回认证信息/>其中,H0表示哈希函数。随后idi发送Sij到其他中心IDk,其中k∈S,/> |S|=t,其中,S表示中心数量集合,N表示中心最大数量,t表示秘钥生成阈值。IDk验证/>是否成立,如果成立,IDk发送秘钥/>到idi;其中,e表示双线性映射关系,Sij表示认证信息。当idi从IDk接收到私钥后,验证/>其中表示中心IDk的公钥;验证通过后,生成自己的私钥/>
最终,用户持有两个秘钥(x,skid)。
加入阶段(Join):
当一个用户想要加入群组时,通过选择一个随机数然后计算gd和gxd,并发送{y1,gd,gxd,id,skid}到群管理员。群管理员验证:
e(gxd,g)=e(y1,gd)
如果验证通过,则加入群组;否则,加入失败。
签名阶段(Sign):
用户需要对消息m∈{0,1}x签名,首先选择一整数然后计算:
u=gkxd
v=gad
-b=H0(id||u+v)
r=bd
-h1=H1(m||u+v+r)
其中,a表示中的一个元素,u表示gkxd在群G中的元素,k表示/>中的一个整数,v表示gad在群G中的元素,b表示用户id与群G中元素的哈希值,r表示哈希值的d次幂,w表示生成的签名结果,y1表示系统公钥,rx表示哈希值与随机数d和私钥x的结果积次幂。
最终消息m的签名为(u,v,r,w)。
验证阶段(Verify):
验证者计算h′1=H1(m||u+v+r),并判断是否等于h1,随后验证是否成立。如果成立,返回1;否则,返回0。
打开阶段(Open):
当需要打开签名识别签名方时,t个成员中心可以共同计算识别签名者身份:
e(gxd,g)=e(y1,gd)
TEE根据接收的局部计算结果以及计算任务执行对应的计算过程包括:TEE对接收到的局部梯度g验签成功后,基于θ=θ-∑g,聚合梯度并更新全局模型。TEE将全局结果模型返回给各参与节点,参与节点重复上述过程直到达到模型更新的最大迭代次数或模型收敛。
如图1所示,一种基于TEE可扩展的安全多方计算系统实施方案可以包括一个TEE中心设备,两个及以上的参与节点,两个及以上的参与节点,点对点通信的可信信道。
如图3所示,一种基于TEE可扩展的多方安全计算系统实施方案,应包括以下步骤:
S1:根据参与节点发起的计算任务请求,计算系统执行初始化;
S11:所述系统初始化包括,生成Beaver三元组、设备授信、信道建立、约定计算逻辑,逻辑回归算法最大迭代次数等。
S12:所述参与节点在本地进行模型初始化,对每个参与方i,持有模型结果记为:ui=θixi;
S2:所述TEE利用算术秘密共享技术,向参与节点分发Beaver三元组;
S21:所述TEE指可信执行环境,具体的,指英特尔公司的Intel SGX(SoftwareGuard Extensions),它提供了一种隔离机制,使得内存可被划分为安全区和非安全区,具备安全性和可验证性。TEE技术目前在隐私技术领域得到了较为广泛的应用。
S22:所述Beaver三元组(Beaver Triple),由所述随机数生成器生成的随机数构成。在一些实施例中,在基于算术共享的多方安全计算场景中,随机数之间的关系应满足a*b=c。对于多个参与节点,每个参与节点所持有的Beaver三元组(ai,bi,ci),应满足
a=Σai
b=∑bi
c=Σci
c=a*b
S23:具体的,TEE根据参与节点的数量确定Beaver三元组的份额,并通过算术秘密共享分发给各参与节点。各参与节点p1,p2,...,pn分别持有(a1,b1,c1),(a2,b2,c2)…(an,bn,cn)。
S3:所述参与节点通过秘密共享从所述其他参与节点获得本地数据并执行本地计算;
S31:具体的,通过所述秘密共享,各参与节点分别持有ui的子秘密记为uij,yi的子秘密yij,以及aj、bj、cj。
S32:具体的,所述参与节点执行本地计算:uij-aj、uij-bj并共享计算结果;
S33:所述参与节点重构出uj,进一步的,所述参与节点计算出yj及梯度值g,其中
S34:用户参与节点对局部计算结算结果进行群签名,所述群签名采用多中心的签名方案。
采用多中心的群签名机制对局部计算结果进行签名的过程包括:基于所述群签名方案,用户参与节点根据身份id持有自己的私钥并对消息g等的比特串m进行签名得到(u,v,r,w)。
S4:所述TEE根据数据请求确定关联的计算过程及计算任务;
S41:所述TEE对所述签名验签成功后方可执行结果聚合,否则退出系统;
S42:所述TEE根据局部结算结果,做加权平均得到最终计算结果,即模型参数θ,其中θ更新方式为:θ=θ-g。
S5:所述TEE将最终计算结果返回给参与节点。
重复上述过程,直到模型收敛或达到最大迭代次数。
一种基于TEE可扩展的安全多方计算系统,该系统包括:程序加载模块、初始化模块、数据分享模块、本地数据计算模块以及安全多方计算模块;
所述程序加载模块用于将与安全计算相关的计算程序加载到可信执行环境TEE中;
所述初始化模块根据用户参与节点发起的计算任务请求生成Beaver三元组,并将Beaver三元组发送给各个用户参与节点;
所述数据分享模块用于各个用户参与节点获取其他参与节点的数据;
所述本地计算模块根据用户参与节点获取的数据以及Beaver三元组执行本地计算,得到局部计算结果,并将局部计算结果发送到安全多方计算模块,并基于群签名机制,对所述局部计算结果进行签名;;
所述安全多方计算模块根据局部计算结果执行对应的安全多方计算,得到最终的计算结果,并将最终的计算结果发送到用户参与节点中。
基于TEE可扩展的安全多方计算系统的具体实施方式与方法的具体实施方式相同。
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于TEE可扩展的安全多方计算方法,其特征在于,该方法包括:
将与安全计算相关的计算程序加载到可信执行环境TEE中;用户参与节点发起计算任务请求,计算系统接收请求后对系统进行初始化;可信执行环境TEE在系统初始化过程中生成Beaver三元组;
可信执行环境TEE将Beaver三元组发送给各个用户参与节点;
各个用户参与节点采用秘密共享策略从其他用户参与节点中获取对应的数据,构成本地数据;对本地数据进行计算,得到局部计算结果,并基于多中心的群签名机制,对局部计算结果进行签名;用户参与节点中对应的数据包括可信执行环境TEE发送的Beaver三元组以及用户参与节点各自的用户数据;用户参与节点采用秘密共享策略从其他用户参与节点中获取对应的数据的过程包括:秘密共享策略包括秘密分发阶段和秘密重构阶段;秘密分发阶段包括对用户参与节点中的秘密数据进行切割,得到秘密数据碎片,对各个秘密数据碎片进行位置标记;用户参与节点向其他用户参与节点发出数据获取请求,其他用户参与节点收到请求后将所有的秘密数据碎片发送给发出请求的用户参与节点;秘密重构阶段包括发出请求的用户参与节点根据各个秘密数据碎片的位置标记以及重构策略对秘密数据进行恢复,得到完整的数据;
用户参与节点将局部计算结果发送给可信执行环境TEE,TEE验签后根据接收的局部计算结果和计算任务执行对应的计算过程,得到最终的计算结果,并将最终的计算结果发送给参与节点。
2.根据权利要求1所述的一种基于TEE可扩展的安全多方计算方法,其特征在于,对系统进行初始化的过程包括:系统的可信执行环境TEE中的随机数生成器生成Beaver三元组;系统的各个设备进行授信,各个设备之间建立信道,并约定计算逻辑算法以及逻辑回归算法迭代停止条件。
3.根据权利要求2所述的一种基于TEE可扩展的安全多方计算方法,其特征在于,Beaver三元组的表达式为(ai,bi,ci),Beaver三元组中的各个参数应满足:
a=∑ai
b=∑bi
c=∑ci
c=a*b
其中,a,b,c均表示Beaver三元组中的随机数,i表示Beaver三元组中数据的标记号。
4.根据权利要求1所述的一种基于TEE可扩展的安全多方计算方法,其特征在于,用户参与节点由计算模块和数据模块组成,其中计算模块用于执行本地计算,数据模块用于存储用户参与节点中的数据。
5.根据权利要求1所述的一种基于TEE可扩展的安全多方计算方法,其特征在于,对本地数据进行计算的过程包括:用户参与节点基于接收到的数据和自有数据进行运算,运算方式包括算术运算和布尔运算。
6.根据权利要求1所述的一种基于TEE可扩展的安全多方计算方法,其特征在于,多中心的群签名机制包括:系统初始化、中心建立、密钥生成以及签名阶段;
系统初始化阶段:设置两个阶数为P的大素数群G,GT,根据群G和GT定义双线性映射关系以及生成元g;定义哈希函数H0和H1,并为每个成员中心生成一个身份IDi,定义群成员数量n和秘钥生成阈值t,将上述所有的参数进行公开;
中心建立阶段:根据系统公开的参数对每个中心进行验证,若验证不通过,则重复执行验证过程,若验证通过,该中心生成自己的私钥和公钥;且各个中心均为该系统的用户管理员;
密钥生成阶段:用户选择一个随机数作为签名,并根据随机数生成公钥y1;将用户公钥和用户id发送到中心中;中心接收到用户公钥和用户id后得到认证信息Sij,并将认证信息发送给其他中心,其他中心验证认证信息是否成立,若不成立,则拒绝发送密钥,若成立,则将自己的密钥Sik发送给用户,用户接收到密钥后对该密钥进行验证,验证通过后生成自己的私钥验证失败则不生成密钥;
签名阶段:用户参与节点采用生成的私钥对局部计算结果进行签名。
7.根据权利要求6所述的一种基于TEE可扩展的安全多方计算方法,其特征在于,对中心进行验证的过程包括:每个中心选择一个随机数ci,并计算将该计算结果发送到其他的中心中,各个中心接收到信息后计算出/>并对结果进行公开;每个中心随机选择两个多项式,根据选择的两个多项式以及中心的身份ID计算秘密值sij和s′ij,将计算的秘密值发送到另一个中心IDj中;该中心对秘密值进行验证,验证通过后,计算秘密值的中心IDi认可验证的中心IDj,验证失败,则继续发送秘密值;验证的公式为:
其中,表示群G中的元素,g表示生成元,sij表示第一秘密值,/>表示中心i所持有的Ci的s′ij次幂,s′ij表示第二秘密值,Bjk表示群G中的元素与中心i所持有的Ci的bik次幂的乘积,Ci表示群G中第i个元素/>bik表示/>中的一个元素,/>表示与P互素且小于P的正整数集合,/>表示身份为IDi的中心,n表示群成员数量,k表示中心编号。
8.根据权利要求1所述的一种基于TEE可扩展的安全多方计算方法,其特征在于,TEE根据接收的局部计算结果以及计算任务执行对应的计算过程包括:TEE对接收到的所有局部计算结果进行聚合;进行聚合的方式包括对所有的局部计算结果求平均值。
9.一种基于TEE可扩展的安全多方计算系统,该系统用于执行权利要求1~8任意一项所述的一种基于TEE可扩展的安全多方计算方法,其特征在于,该系统包括:程序加载模块、初始化模块、数据分享模块、本地数据计算模块以及安全多方计算模块;
所述程序加载模块用于将与安全计算相关的计算程序加载到可信执行环境TEE中;
所述初始化模块根据用户参与节点发起的计算任务请求生成Beaver三元组,并将Beaver三元组发送给各个用户参与节点;
所述数据分享模块用于各个用户参与节点获取其他参与节点的数据;
所述本地数据计算模块根据用户参与节点获取的数据以及Beaver三元组执行本地计算,得到局部计算结果,并基于群签名机制,对所述局部计算结果进行签名;然后将局部计算结果发送到安全多方计算模块;
所述安全多方计算模块验签后根据局部计算结果执行对应的安全多方计算,得到最终的计算结果,并将最终的计算结果发送到用户参与节点中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110808954.5A CN113541963B (zh) | 2021-07-16 | 2021-07-16 | 一种基于tee可扩展的安全多方计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110808954.5A CN113541963B (zh) | 2021-07-16 | 2021-07-16 | 一种基于tee可扩展的安全多方计算方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113541963A CN113541963A (zh) | 2021-10-22 |
CN113541963B true CN113541963B (zh) | 2024-05-24 |
Family
ID=78099963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110808954.5A Active CN113541963B (zh) | 2021-07-16 | 2021-07-16 | 一种基于tee可扩展的安全多方计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113541963B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095157B (zh) * | 2021-10-29 | 2023-10-24 | 上海浦东发展银行股份有限公司 | 密钥管理方法、装置、计算机设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241016A (zh) * | 2018-08-14 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN110335037A (zh) * | 2019-04-19 | 2019-10-15 | 矩阵元技术(深圳)有限公司 | 基于区块链和多方安全计算的交易方法、装置及存储介质 |
CN111563261A (zh) * | 2020-05-15 | 2020-08-21 | 支付宝(杭州)信息技术有限公司 | 一种基于可信执行环境的隐私保护多方计算方法和系统 |
CN112118113A (zh) * | 2020-09-18 | 2020-12-22 | 上海市数字证书认证中心有限公司 | 一种基于sm2算法的多方协同群签名方法及装置、系统、介质 |
CN112380565A (zh) * | 2020-11-20 | 2021-02-19 | 天翼电子商务有限公司 | 一种基于可信硬件与区块链的安全多方计算方法 |
CN112468302A (zh) * | 2020-10-23 | 2021-03-09 | 湖南天河国云科技有限公司 | 基于可验证多方秘密分享的可编辑区块链 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017099117A1 (ja) * | 2015-12-10 | 2017-06-15 | 日本電気株式会社 | 事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法 |
-
2021
- 2021-07-16 CN CN202110808954.5A patent/CN113541963B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241016A (zh) * | 2018-08-14 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN110335037A (zh) * | 2019-04-19 | 2019-10-15 | 矩阵元技术(深圳)有限公司 | 基于区块链和多方安全计算的交易方法、装置及存储介质 |
CN111563261A (zh) * | 2020-05-15 | 2020-08-21 | 支付宝(杭州)信息技术有限公司 | 一种基于可信执行环境的隐私保护多方计算方法和系统 |
CN112118113A (zh) * | 2020-09-18 | 2020-12-22 | 上海市数字证书认证中心有限公司 | 一种基于sm2算法的多方协同群签名方法及装置、系统、介质 |
CN112468302A (zh) * | 2020-10-23 | 2021-03-09 | 湖南天河国云科技有限公司 | 基于可验证多方秘密分享的可编辑区块链 |
CN112380565A (zh) * | 2020-11-20 | 2021-02-19 | 天翼电子商务有限公司 | 一种基于可信硬件与区块链的安全多方计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113541963A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jiang et al. | Three-factor authentication protocol using physical unclonable function for IoV | |
CN110225023B (zh) | 一种可追踪的匿名认证方法和系统 | |
Qiao et al. | Improved secure transaction scheme with certificateless cryptographic primitives for IoT-based mobile payments | |
CN113360943B (zh) | 一种区块链隐私数据的保护方法及装置 | |
Lyu et al. | Towards fair and decentralized privacy-preserving deep learning with blockchain | |
Wazid et al. | BUAKA-CS: Blockchain-enabled user authentication and key agreement scheme for crowdsourcing system | |
CN112383550A (zh) | 一种基于隐私保护的动态权限访问控制方法 | |
Bansal et al. | Rama: Real-time automobile mutual authentication protocol using puf | |
CN109104410B (zh) | 一种信息的匹配方法及装置 | |
CN108494559B (zh) | 一种基于半可信第三方的电子合同签订方法 | |
Xie et al. | Provable secure and lightweight blockchain-based V2I handover authentication and V2V broadcast protocol for VANETs | |
Ji et al. | LAFED: A lightweight authentication mechanism for blockchain-enabled federated learning system | |
Gao et al. | An Improved Online/Offline Identity-Based Signature Scheme for WSNs. | |
CN113541963B (zh) | 一种基于tee可扩展的安全多方计算方法及系统 | |
Ren et al. | Bfdac: A blockchain-based and fog computing-assisted data access control scheme in vehicular social networks | |
CN117499123A (zh) | 一种融合tee和秘密共享的分布式生物特征认证方法及系统 | |
CN117353912A (zh) | 基于双线性映射的三方隐私集合交集基数计算方法及系统 | |
CN110740034B (zh) | 基于联盟链的qkd网络认证密钥生成方法及系统 | |
Gong et al. | A threshold group signature scheme suitable for the Internet of Things | |
Eslami et al. | Provably Secure Group Key Exchange Protocol in the Presence of Dishonest Insiders. | |
Wu et al. | A distributed cross-chain mechanism based on notary schemes and group signatures | |
CN113472524B (zh) | 一种抗恶意传输数据攻击的数据聚合签名系统及方法 | |
CN113938275A (zh) | 一种基于d维Bell态的量子同态签名方法 | |
CN113362065A (zh) | 一种基于分散式私钥的在线签名交易实现方法 | |
Su et al. | Efficient and flexible multiauthority attribute-based authentication for IoT devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |