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

一种安全多方计算方法及装置与流程

2022-04-24 20:09:21 来源:中国专利 TAG:


1.本技术涉及数据安全领域,特别是涉及一种安全多方计算方法及装置。


背景技术:

2.安全多方计算一直是数据安全领域很活跃的研究方向,安全多方计算是指在没有可信第三方的情形下,多个参与方共同计算一个函数,使得所有参与方能算出计算结果,但是不会泄露每一方的输入的信息。在安全多方计算中,最常用、最有效的方式是采用加密电路(garbled circuit)和不经意传输。


技术实现要素:

3.本技术示出了一种安全多方计算方法及装置。
4.第一方面,本技术示出了一种安全多方计算方法,应用于第二主体,所述方法包括:
5.接收加密后的对称密钥和第一密文,加密后的对称密钥是第一主体使用所述第二主体的公钥对原对称密钥加密得到的,所述第一密文是所述第一主体使用所述原对称密钥对所述第一主体的第一数据加密得到的;
6.获取所述第二主体的第二数据以及用于对参与安全多方计算的数据进行计算的电路语句;
7.至少将所述加密后的对称密钥、所述第一密文、所述第二数据以及所述电路语句输入所述第二主体的可信硬件中,以使所述可信硬件使用所述第二主体的公钥对应的私钥对加密后的对称密钥解密,得到所述原对称密钥,使用所述原对称密钥对所述第一密文解密,得到所述第一数据,根据所述电路语句对所述第一数据和所述第二数据进行计算,至少得到所述第二主体应得的计算结果;
8.接收所述可信硬件输出的所述计算结果。
9.在一个可选的实现方式中,所述方法还包括:
10.接收所述第一数据在需要参与安全多方计算的多个数据中的第一位置;
11.获取所述第二数据在需要参与安全多方计算的多个数据中的第二位置;
12.将所述第一位置和所述第二位置输入所述可信硬件中,以使所述可信硬件根据所述电路语句、所述第一位置和所述第二位置对所述第一数据和所述第二数据进行计算,至少得到所述第二主体应得的计算结果。
13.在一个可选的实现方式中,所述方法还包括:
14.接收第一mac数据;所述第一mac数据是所述第一主体使用哈希消息认证码hmac对第一拼接数据加密得到的,所述第一拼接数据是将所述第一密文和所述第一位置拼接得到的;
15.将所述第一mac数据输入所述可信硬件中,以使所述可信硬件将所述第一密文和所述第一位置拼接,得到第二拼接数据,使用所述hmac对所述第二拼接数据加密,得到第二
mac数据;在所述第二mac数据与所述第一mac数据相同的情况下,再使用所述第二主体的公钥对应的私钥对加密后的对称密钥解密。
16.在一个可选的实现方式中,所述方法还包括:
17.获取用于对参与安全多方计算的数据进行计算的计算机程序代码;
18.将所述计算机程序代码编译,得到电路语句,所述电路语句与需要计算的数据之间相互独立;
19.其中,在所述电路语句为多个的情况下,多个电路语句之间的具有先后使用顺序以及先后使用顺序的顺序编号。
20.在一个可选的实现方式中,所述方法还包括:
21.对预设默认数据进行hash运算,得到第1校验hash值;
22.对先后使用顺序为第1位的顺序编号、先后使用顺序为第1位的电路语句以及第1校验hash值进行hash运算,得到第2校验hash值;以此类推,对先后使用顺序为第n位的顺序编号、先后使用顺序为第n位的电路语句以及第n校验hash值进行hash运算,得到第n 1校验hash值;n大于或等于2,n为所述多个电路语句的数量;
23.将所述第1校验hash值、所述第2校验hash值......以及第n 1校验hash值存储在所述可信硬件中。
24.在一个可选的实现方式中,所述可信硬件使用所述第二主体的公钥对应的私钥对加密后的对称密钥解密之前,还包括:
25.所述可信硬件对预设默认数据进行hash运算,得到第1实时hash值;
26.所述可信硬件对先后使用顺序为第1位的顺序编号、先后使用顺序为第1位的电路语句以及第1实时hash值进行hash运算,得到第2实时hash值;以此类推,对先后使用顺序为第n位的顺序编号、先后使用顺序为第n位的电路语句以及第n实时hash值进行hash运算,得到第n 1实时hash值;n大于或等于2,n为所述多个电路语句的数量;
27.所述可信硬件获取所述可信硬件存储的所述第1校验hash值、所述第2校验hash值......以及所述第n 1校验hash值;
28.在确定出所述第1实时hash值与所述第一校验hash值相同、所述第2实时hash值与所述第2校验hash值相同......以及所述第n 1实时hash值与所述第n 1校验hash值相同的情况下,所述可信硬件再使用所述第二主体的公钥对应的私钥对加密后的对称密钥解密。
29.在一个可选的实现方式中,所述方法还包括:
30.所述第二主体根据所述第1hash校验值、所述第2hash校验值......以及所述第n 1hash校验值获取第一待签名数据;
31.所述第二主体使用所述第二主体的私钥对所述第一待签名数据加密,得到第一签名信息;
32.所述第二主体将所述第一签名信息存储在所述可信硬件中。
33.在一个可选的实现方式中,所述可信硬件获取所述可信硬件存储的所述第1校验hash值、所述第2校验hash值......以及所述第n 1校验hash值之后,还包括:
34.所述可信硬件获取已存储的所述第一签名信息;
35.所述可信硬件使用所述第二主体的公钥对第一签名信息解密,得到第二待签名数据;
36.所述可信硬件根据所述第1hash校验值、所述第2hash校验值......以及所述第n 1hash校验值获取所述第一待签名数据;
37.在确定出所述第一待签名数据与所述第二待签名数据相同的情况下,所述可信硬件再判断第1实时hash值与第一校验hash值是否相同、第2实时hash值与第2校验hash值是否相同......以及第n 1实时hash值与第n 1校验hash值是否相同。
38.在一个可选的实现方式中,所述方法还包括:
39.将所述第1校验hash值、所述第2校验hash值......以及第n 1校验hash值发送给需要参与安全多方计算的其他主体。
40.在一个可选的实现方式中,所述方法还包括:
41.接收所述第一主体的第一公钥、所述第一主体的第二公钥、所述第一主体的标识以及第二签名信息,所述第二签名信息是所述第一主体根据所述第一公钥、所述第二公钥以及所述标识获取第三待签名数据,并使用所述第二公钥对应的第二私钥对所述第二待签名数据加密得到的;
42.使用所述第二公钥对所述第二签名信息解密,得到第四待签名数据;
43.根据所述第一公钥、所述第二公钥以及所述标识获取所述第三待签名数据;
44.在确定出所述第二主体在所述第三待签名数据与所述第四待签名数据相同的情况下,存储所述第一公钥、所述第二公钥以及所述标识之间的对应关系。
45.第二方面,本技术示出了一种安全多方计算装置,应用于第二主体,所述装置包括:
46.所述第二主体的第一接收模块,用于接收加密后的对称密钥和第一密文,加密后的对称密钥是第一主体使用所述第二主体的公钥对原对称密钥加密得到的,所述第一密文是所述第一主体使用所述原对称密钥对所述第一主体的第一数据加密得到的;
47.所述第二主体的第一获取模块,用于获取所述第二主体的第二数据以及用于对参与安全多方计算的数据进行计算的电路语句;
48.所述第二主体的第一输入模块,用于至少将所述加密后的对称密钥、所述第一密文、所述第二数据以及所述电路语句输入所述第二主体的可信硬件中;
49.所述可信硬件的第一解密模块,用于以使所述可信硬件使用所述第二主体的公钥对应的私钥对加密后的对称密钥解密,得到所述原对称密钥,所述可信硬件的第二解密模块,用于使用所述原对称密钥对所述第一密文解密,得到所述第一数据,所述可信硬件的计算模块,用于根据所述电路语句对所述第一数据和所述第二数据进行计算,至少得到所述第二主体应得的计算结果;
50.所述第二主体的第二接收模块,用于接收所述可信硬件输出的所述计算结果。
51.在一个可选的实现方式中,所述装置还包括:
52.所述第二主体的第三接收模块,用于接收所述第一数据在需要参与安全多方计算的多个数据中的第一位置;
53.所述第二主体的第二获取模块,用于获取所述第二数据在需要参与安全多方计算的多个数据中的第二位置;
54.所述第二主体的第二输入模块,用于将所述第一位置和所述第二位置输入所述可信硬件中,所述可信硬件的所述计算模块,具体用于根据所述电路语句、所述第一位置和所
述第二位置对所述第一数据和所述第二数据进行计算,至少得到所述第二主体应得的计算结果。
55.在一个可选的实现方式中,所述装置还包括:
56.所述第二主体的第四接收模块,用于接收第一mac数据;所述第一mac数据是所述第一主体使用哈希消息认证码hmac对第一拼接数据加密得到的,所述第一拼接数据是将所述第一密文和所述第一位置拼接得到的;
57.所述第二主体的第三输入模块,用于将所述第一mac数据输入所述可信硬件中,所述可信硬件的拼接模块,用于将所述第一密文和所述第一位置拼接,得到第二拼接数据,所述可信硬件的第一加密模块,用于使用所述hmac对所述第二拼接数据加密,得到第二mac数据;所述可信硬件的第一解密模块还用于在所述第二mac数据与所述第一mac数据相同的情况下,使用所述第二主体的公钥对应的私钥对加密后的对称密钥解密。
58.在一个可选的实现方式中,所述装置还包括:
59.所述第二主体的第三获取模块,用于获取用于对参与安全多方计算的数据进行计算的计算机程序代码;
60.所述第二主体的编译模块,用于将所述计算机程序代码编译,得到电路语句,所述电路语句与需要计算的数据之间相互独立;
61.其中,在所述电路语句为多个的情况下,多个电路语句之间的具有先后使用顺序以及先后使用顺序的顺序编号。
62.在一个可选的实现方式中,所述装置还包括:
63.所述第二主体的第一运算模块,用于对预设默认数据进行hash运算,得到第1校验hash值;
64.所述第二主体的第二运算模块,用于对先后使用顺序为第1位的顺序编号、先后使用顺序为第1位的电路语句以及第1校验hash值进行hash运算,得到第2校验hash值;以此类推,对先后使用顺序为第n位的顺序编号、先后使用顺序为第n位的电路语句以及第n校验hash值进行hash运算,得到第n 1校验hash值;n大于或等于2,n为所述多个电路语句的数量;
65.所述第二主体的第一存储模块,用于将所述第1校验hash值、所述第2校验hash值......以及第n 1校验hash值存储在所述可信硬件中。
66.在一个可选的实现方式中,所述装置还包括:
67.所述可信硬件的第三运算模块,用于对预设默认数据进行hash运算,得到第1实时hash值;
68.所述可信硬件的第四运算模块,用于对先后使用顺序为第1位的顺序编号、先后使用顺序为第1位的电路语句以及第1实时hash值进行hash运算,得到第2实时hash值;以此类推,对先后使用顺序为第n位的顺序编号、先后使用顺序为第n位的电路语句以及第n实时hash值进行hash运算,得到第n 1实时hash值;n大于或等于2,n为所述多个电路语句的数量;
69.所述可信硬件的第四获取模块,用于获取所述可信硬件存储的所述第1校验hash值、所述第2校验hash值......以及所述第n 1校验hash值;
70.所述可信硬件的第一解密模块还用于在确定出所述第1实时hash值与所述第一校
验hash值相同、所述第2实时hash值与所述第2校验hash值相同......以及所述第n 1实时hash值与所述第n 1校验hash值相同的情况下,使用所述第二主体的公钥对应的私钥对加密后的对称密钥解密。
71.在一个可选的实现方式中,所述装置还包括:
72.所述第二主体的第五获取模块,用于根据所述第1hash校验值、所述第2hash校验值......以及所述第n 1hash校验值获取第一待签名数据;
73.所述第二主体的第二加密模块,用于使用所述第二主体的私钥对所述第一待签名数据加密,得到第一签名信息;
74.所述第二主体的第二存储模块,用于将所述第一签名信息存储在所述可信硬件中。
75.在一个可选的实现方式中,所述装置还包括:
76.所述可信硬件的第六获取模块,用于获取已存储的所述第一签名信息;
77.所述可信硬件的第三解密模块,用于使用所述第二主体的公钥对第一签名信息解密,得到第二待签名数据;
78.所述可信硬件的第七获取模块,用于根据所述第1hash校验值、所述第2hash校验值......以及所述第n 1hash校验值获取所述第一待签名数据;
79.所述可信硬件的判断模块,还用于在确定出所述第一待签名数据与所述第二待签名数据相同的情况下,判断第1实时hash值与第一校验hash值是否相同、第2实时hash值与第2校验hash值是否相同......以及第n 1实时hash值与第n 1校验hash值是否相同。
80.在一个可选的实现方式中,所述装置还包括:
81.所述第二主体的发送模块,用于将所述第1校验hash值、所述第2校验hash值......以及第n 1校验hash值发送给需要参与安全多方计算的其他主体。
82.在一个可选的实现方式中,所述装置还包括:
83.所述第二主体的第五接收模块,用于接收所述第一主体的第一公钥、所述第一主体的第二公钥、所述第一主体的标识以及第二签名信息,所述第二签名信息是所述第一主体根据所述第一公钥、所述第二公钥以及所述标识获取第三待签名数据,并使用所述第二公钥对应的第二私钥对所述第二待签名数据加密得到的;
84.所述第二主体的第四解密模块,用于使用所述第二公钥对所述第二签名信息解密,得到第四待签名数据;
85.所述第二主体的第八获取模块,用于根据所述第一公钥、所述第二公钥以及所述标识获取所述第三待签名数据;
86.所述第二主体的第三存储模块,用于在确定出所述第二主体在所述第三待签名数据与所述第四待签名数据相同的情况下,存储所述第一公钥、所述第二公钥以及所述标识之间的对应关系。
87.第三方面,本技术示出了一种电子设备,所述电子设备包括:
88.处理器;
89.用于存储处理器可执行指令的存储器;
90.其中,所述处理器被配置为执行如第一方面所述的安全多方计算方法。
91.第四方面,本技术示出了一种非临时性计算机可读存储介质,当所述存储介质中
的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的安全多方计算方法。
92.第五方面,本技术示出了一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的安全多方计算方法。
93.与现有技术相比,本技术实施例包括以下优点:
94.第二主体接收加密后的对称密钥和第一密文,加密后的对称密钥是第一主体使用第二主体的公钥对原对称密钥加密得到的,第一密文是第一主体使用原对称密钥对第一主体的第一数据加密得到的;第二主体获取第二主体的第二数据以及用于对参与安全多方计算的数据进行计算的电路语句。第二主体至少将加密后的对称密钥、第一密文、第二数据以及电路语句输入第二主体的可信硬件中,以使可信硬件使用第二主体的公钥对应的私钥对加密后的对称密钥解密,得到原对称密钥,使用原对称密钥对第一密文解密,得到第一数据,根据电路语句对第一数据和第二数据进行计算,至少得到第二主体应得的计算结果。第二主体接收可信硬件输出的第二主体应得的计算结果。
95.其中,由于当前已经可以自主可控地实现可信硬件的开发,因此可以解决可信硬件信任源的安全性问题。因此,通过本技术的方式,开发的可信硬件可以不依赖英特尔的sgx,从而可以降低安全多方计算的门槛,例如,使得安全多方计算可以应用于国内的安全性项目。
96.在本技术一个实施例中,通过本技术的方式,可以降低在进行安全多方计算时对可信硬件的功能要求,可以不依赖于英特尔的sgx,可以使得可信硬件支持密码学源语(例如aes(advanced encryption standard,高级加密标准)、rsa(加密算法)、ecc(error correcting code,错误检查和纠正)、sm2/3/4(国家密码管理局发布的加密标准)、随机数以及与或等)即可,例如,支持使用密钥加密和解密的源语即可,由于降低了对可信硬件的功能要求,从而可以节省硬件成本。
97.另外,本技术不仅支持安全多方计算的分布化,由单一信任源扩展为多信任源,本技术还可以支持不同的主体中的可信硬件的种类可以不必完全相同,也即,支持安全多方计算中的可信硬件的异构化。
98.各个主体可以采用同一种类的api接口来调用各自的可信硬件,实现了逻辑上的可信硬件抽象层,而将具体的功能实现交给可信硬件接口层实现。这样,可以支持可信硬件接口层使用不同种类的可信硬件,例如,可以支持tpm(trusted platform module)安全芯片、smartcard(智能卡),trustzone以及esim(embedded-sim,虚拟智能卡)等。
99.由于是在可信硬件中进行计算且可信硬件的安全性高,因此,不需要为了数据计算的安全性而对算法进行冗余设计,从而简化了算法,进而可以降低计算量,从而可以提高计算效率,且由于是在可信硬件中进行计算且可信硬件的安全性高,因此,可以提高数据的安全性。
100.在本技术另一个实施例中,在多个主体的安全多方计算完毕的情况下,各个主体可以删除与安全多方计算有关的隐私数据,例如,对于第二主体而言,其可以删除第一主体的第一公钥、第一主体的第二公钥、第一主体的标识、第二签名信息、加密后的对称密钥、第一密文、第一位置、第二数据、第二位置、多个电路语句、第一mac数据、第1校验hash值、第2
校验hash值......以及第n 1校验hash值以及第一签名信息等隐私数据,如此使得第二主体中之前存储的这些数据无法被追溯,之后即使第二主体被不法分子控制,不法分子也无法得到与安全多方计算有关的隐私数据,从而可以提高数据的安全性。
101.其次,在本技术另一实施例中,在多个主体进行安全多方计算的过程中,各个主体还可以将与安全多方计算有关的隐私数据存储在各个主体的可信硬件中,如此,即使主体中存储的与安全多方计算有关的隐私数据被损坏,由于主体的可信硬件中存储有与安全多方计算有关的隐私数据,因此,也可以完成安全多方计算,以保证安全多方计算能够顺利完成。
附图说明
102.图1是本技术一示例性实施例示出的一种安全多方计算系统的结构框图。
103.图2是本技术一示例性实施例示出的一种安全多方计算系统的结构框图。
104.图3是本技术一示例性实施例示出的一种安全多方计算方法的流程示意图。
105.图4是本技术一示例性实施例示出的一种安全多方计算装置的结构框图。
106.图5是本技术一实施例提供的装置的结构示意图。
具体实施方式
107.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
108.参照图1,示出了本技术一种安全多方计算系统的结构框图,该系统至少包括至少两个主体,至少两个主体可以参与安全多方计算。至少两个主体之间可以通过mpc(secure multi-party computation,安全多方计算)网络通信连接。例如,在图1中,以该系统包括n个主体为例进行举例说明(主体的标号分别为1~n),但不作为对本技术保护范围的限制。
109.本技术中的主体可以包括终端以及服务端等,终端可以包括台式电脑、笔记本电脑、平板电脑以及手机等设备。
110.在一个例子中,参见图2,该系统包括:第一主体01以及第二主体02。如此,在安全多方计算系统中,可以有两个上的主体参与安全多方计算。第一主体01中具有可信硬件,第二主体02中具有可信硬件,第一主体01与第二主体02之间可以通过mpc网络通信连接。
111.通常情况下,在第一主体和第二主体需要进行安全多方计算时,第一主体具有需要参与安全多方计算的第一数据,第二主体具有需要参与安全多方计算的第二数据,可以使用一个统一的算法对第一数据与第二数据计算,得到至少两部分计算结果,一部分计算结果为第一主体应得的计算结果,例如,第一计算结果等,另一部分计算结果为第二主体应得的计算结果,例如,第二结算结果等。
112.其中,第一计算结果不是第二主体应得的,第二计算结果不是第一主体应得的。也即,第一主体可以得到第一计算结果,但是得不到第二计算结果,第二主体可以得到第二计算结果,但是得不到第一计算结果。
113.在本技术一个实施例中,可以在需要参与安全多方计算的各个主体中的可信硬件中可以均存储统一的该算法,之后,在需要进行安全多方计算时,各个主体分别可以向其他主体发送自己的需要参与安全多方计算的数据,且数据可以是加密形式的,各个主体可以
接收到其他主体发送的加密形式的数据,但是无法破解加密形式的数据,需要将加密形式的数据输入自己的可信硬件中,以使可信硬件对其进行解密,并且可信硬件可以使用统一的算法对解密后的各个主体的数据计算,得到各个主体应得的计算结果,然后任意一个主体的可信硬件可以向该主体输出该主体应得的计算结果,对于其他每一个主体,同样如此。
114.这样,各个主体只能得到各自应得的计算结果,得不到其不应得的计算结果,从而可以保障安全性。
115.其中,为了使得各个主体中的可信硬件可以对其他主体发送的加密形式的数据解密,安全多方计算系统中的各个主体可以事先向其他主体发送自己的公钥。
116.例如,以一个例子进行举例说明,对于第一主体而言,第一主体可以生成第一主体的第一公钥以及第一主体的第二公钥,第一主体的第一公钥与第一主体的第二公钥可以不同,以及,第一主体还可以获取第一主体的标识,标识包括第一主体的ip(internet protocol,互联网协议)地址或mac(media access control,媒体访问控制)地址等,不同主体的标识不同。
117.然后第一主体可以根据第一主体的第一公钥、第一主体的第二公钥以及第一主体的标识获取第三待签名数据,例如,第一主体可以将第一主体的第一公钥、第一主体的第二公钥以及第一主体的标识依次拼接,得到第三待签名数据,然后使用第一主体的第二公钥对应的第二私钥,对第二待签名数据加密,得到第二签名信息,然后可以向其他主体发送第一主体的第一公钥、第一主体的第二公钥、第一主体的标识以及第二签名信息,其他主体就可以接收到第一主体发送的第一主体的第一公钥、第一主体的第二公钥、第一主体的标识以及第二签名信息。
118.例如,第二主体就可以接收到第一主体的第一公钥、第一主体的第二公钥、第一主体的标识以及第二签名信息,第二签名信息是第一主体根据第一主体的第一公钥、第一主体的第二公钥以及第一主体的标识获取第三待签名数据,并使用第一主体的第二公钥对应的第二私钥对第二待签名数据加密得到的。
119.然而,有时候数据在传输的过程中会出错,导致第一主体发送的第一主体的公钥与第二主体接收到的第一主体的公钥不同,这样,如果第二主体后续直接使用接收到的第一主体发送的公钥,可能会引发安全性问题。
120.因此,为了避免引发安全性问题。第二主体可以确定接收到的第一公钥和第二公钥是否是第一主体的第一公钥和第二公钥。
121.例如,第二主体可以使用第一主体的第二公钥对第二签名信息解密,得到第四待签名数据。然后根据第一主体的第一公钥、第一主体的第二公钥以及第一主体的标识获取第三待签名数据,例如,第二主体可以将第一主体的第一公钥、第一主体的第二公钥以及第一主体的标识依次拼接,得到第三待签名数据,判断第三待签名数据与第四待签名数据是否相同。
122.其中,在第三待签名数据与第四待签名数据相同的情况下,说明第二主体接收到的第一公钥和第二公钥是第一主体的第一公钥和第二公钥,因此,第二主体可以存储第一主体的第一公钥、第一主体的第二公钥以及第一主体的标识之间的对应关系,以供后续使用。例如,可以使用其对第一主体发送的需要参与安全多方计算的加密形式的数据进行解密等。
123.具体地,可以参见之后所示的实施例。
124.其中,在第二主体存储第一主体的第一公钥、第一主体的第二公钥以及第一主体的标识之间的对应关系时,第二主体不仅可以在第二主体中存储第一主体的第一公钥、第一主体的第二公钥以及第一主体的标识之间的对应关系,以供第二主体后续使用。第二主体还可以在第二主体的可信硬件中存储第一主体的第一公钥、第一主体的第二公钥以及第一主体的标识之间的对应关系,以供第二主体的可信硬件后续使用。
125.参照图3,示出了本技术一种安全多方计算方法的流程示意图,该方法应用于图2所示的第二主体02中,该方法可以包括:
126.在步骤s101中,第二主体接收加密后的对称密钥和第一密文,加密后的对称密钥是第一主体使用第二主体的公钥对原对称密钥加密得到的,第一密文是第一主体使用原对称密钥对第一主体的第一数据加密得到的。
127.在本技术中,在第一主体与第二主体需要参与安全多方计算的情况下,第一主体可以向第二主体发送第一主体的需要参与安全多方计算的第一数据,第二主体也可以向第一主体发送第二主体的需要参与安全多方计算的第二数据,这样,第一主体的可信硬件中可以得到第一数据和第二数据,进而第一主体的可信硬件就可以使用统一的算法对第一数据和第二数据计算,得到计算结果,且,第二主体的可信硬件中可以得到第一数据和第二数据,进而第二主体的可信硬件就可以使用统一的算法对第一数据和第二数据计算,得到计算结果。
128.其中,本技术以“第一主体可以向第二主体发送自己的需要参与安全多方计算的第一数据”为例进行举例说明,但不作为对本技术保护范围的限制。
129.例如,在第一主体需要向第二主体发送第一主体的需要参与安全多方计算的第一数据的情况下,第一主体可以使用原对称密钥对第一主体的第一数据(第一主体的第一数据可以是使用第一主体的工作人员在第一主体中输入的)加密,得到的第一密文,然后使用第二主体的公钥(第二主体事先已经向第一主体发送了第二主体的公钥,如此第一主体已经具有第二主体的公钥)对原对称密钥加密,得到加密后的对称密钥。
130.然后可以向第二主体发送加密后的对称密钥以及第一密文。如此,第二主体可以接收到第一主体发送的加密后的对称密钥以及第一密文。
131.其次,在本技术另一实施例中,第一主体还可以获取第一数据在需要参与安全多方计算的多个数据中的第一位置。例如,可信硬件在对数据进行计算时需要使用算法(函数),算法中包括至少两个变量,用于被第一数据替换的变量的位置即为第一数据在需要参与安全多方计算的多个数据中的第一位置。
132.然后还可以向第二主体发送第一位置。如此,第二主体除了可以接收到第一主体发送的加密后的对称密钥以及第一密文,还可以接收到第一位置。
133.在步骤s102中,第二主体获取第二主体的第二数据以及用于对参与安全多方计算的数据进行计算的电路语句。
134.在本技术中,使用第二主体的工作人员事先可以在第二主体中输入第二主体的需要参与安全多方计算的第二数据,如此,第二主体可以获取使用第二主体的工作人员输入的第二数据。
135.其次,进一步地,在本技术另一实施例中,使用第二主体的工作人员事先可以在第
二主体中输入第二数据在需要参与安全多方计算的多个数据中的第二位置,如此,第二主体可以获取使用第二主体的工作人员输入的第二位置。
136.例如,可信硬件在对数据进行计算时需要使用算法(函数),算法中包括至少两个变量,用于被第二数据替换的变量的位置即为第二数据在需要参与安全多方计算的多个数据中的第二位置。
137.其中,电路语句是事先对计算机程序代码编译得到的,计算机程序代码用于对参与安全多方计算的多个数据进行计算。
138.在本技术中,需要参与安全多方计算的多个主体事先可以协商用于对参与安全多方计算的多个数据进行计算的计算机程序代码,并将计算机程序代码分发给各个主体,各个主体可以接收计算机程序代码,各个主体还可以分别对计算机程序代码编译,得到电路语句,并存储各自得到的电路语句,以供之后对数据计算时使用。
139.或者,也可以是将计算机程序代码分发给多个主体中的其中一个主体,该一个主体可以接收计算机程序代码,并对计算机程序代码编译,得到电路语句,并在该主体中存储电路语句,然后将电路语句分别分发给其他主体,其他主体接收并存储各自得到的电路语句,以供之后对数据计算时使用。
140.在本技术一个实施例中,电路语句与需要计算的数据之间相互独立。如果电路语句为多个,则多个电路语句之间的具有先后使用顺序以及先后使用顺序的顺序编号。
141.在步骤s103中,第二主体至少将加密后的对称密钥、第一密文、第二数据以及电路语句输入第二主体的可信硬件中,以使可信硬件使用第二主体的公钥对应的私钥对加密后的对称密钥解密,得到原对称密钥,使用原对称密钥对第一密文解密,得到第一数据,根据电路语句对第一数据和第二数据进行计算,至少得到第二主体应得的计算结果。
142.第一主体事先可以生成第一主体的第一公钥、第一公钥对应的第一私钥、第一主体的第二公钥以及第二公钥对应的第二私钥,且第一主体已经将第一主体的第一公钥以及第一主体的第二公钥发送给其他主体,例如,第二主体得到了第一主体的第一公钥以及第一主体的第二公钥,第一主体和第二主体可以约定对对称密钥的处理是:使用第一公钥以及第一公钥对应的第一私钥来加解密,如此,由于加密后的对称密钥是第一主体使用第二主体的公钥对原对称密钥加密得到的,因此,为了得到原对称密钥,第二主体的可信硬件可以使用第二主体的公钥对应的私钥(第二主体的公钥对应的私钥是第二主体事先生成并存储在第二主体的可信硬件中)对加密后的对称密钥解密,得到原对称密钥,然后使用原对称密钥对第一密文解密,得到第一数据。
143.其中,由于第一密文是第一主体使用原对称密钥对第一主体的需要参与安全多方计算的第一数据加密得到的。因此,在第二主体的可信硬件得到原对称密钥之后,第二主体的可信硬件可以使用原对称密钥对第一密文解密,得到第一数据,然后第二主体的可信硬件可以根据电路语句对第一数据和第二数据进行计算,得到第一主体应得的计算结果以及第二主体应得的计算结果,然后向第二主体输出第二主体应得的计算结果。
144.在一个实施例中,如果第二主体得到了第一位置和第二位置,则第二主体的可信硬件可以根据电路语句、第一位置以及第二位置对第一数据和第二数据进行计算,得到第一主体应得的计算结果以及第二主体应得的计算结果,然后向第二主体输出第二主体应得的计算结果。
145.在本技术中,第二主体的可信硬件可以仅向第二主体输出第二主体应得的计算结果,而不向第二主体输出第一主体应得的计算结果,以避免第二主体得到第一主体应得的计算结果,从而保证数据的隐私性。
146.在步骤s105中,第二主体接收可信硬件输出的第二主体应得的计算结果。
147.在本技术中,第二主体接收加密后的对称密钥和第一密文,加密后的对称密钥是第一主体使用第二主体的公钥对原对称密钥加密得到的,第一密文是第一主体使用原对称密钥对第一主体的第一数据加密得到的;第二主体获取第二主体的第二数据以及用于对参与安全多方计算的数据进行计算的电路语句。第二主体至少将加密后的对称密钥、第一密文、第二数据以及电路语句输入第二主体的可信硬件中,以使可信硬件使用第二主体的公钥对应的私钥对加密后的对称密钥解密,得到原对称密钥,使用原对称密钥对第一密文解密,得到第一数据,根据电路语句对第一数据和第二数据进行计算,至少得到第二主体应得的计算结果。第二主体接收可信硬件输出的第二主体应得的计算结果。
148.其中,由于当前已经可以自主可控地实现可信硬件的开发,因此可以解决可信硬件信任源的安全性问题。因此,通过本技术的方式,开发的可信硬件可以不依赖英特尔的sgx,从而可以降低安全多方计算的门槛,例如,使得安全多方计算可以应用于国内的安全性项目。
149.在本技术一个实施例中,通过本技术的方式,可以降低在进行安全多方计算时对可信硬件的功能要求,可以不依赖于英特尔的sgx,可以使得可信硬件支持密码学源语(例如aes(advanced encryption standard,高级加密标准)、rsa(加密算法)、ecc(error correcting code,错误检查和纠正)、sm2/3/4(国家密码管理局发布的加密标准)、随机数以及与或等)即可,例如,支持使用密钥加密和解密的源语即可,由于降低了对可信硬件的功能要求,从而可以节省硬件成本。
150.另外,本技术不仅支持安全多方计算的分布化,由单一信任源扩展为多信任源,本技术还可以支持不同的主体中的可信硬件的种类可以不必完全相同,也即,支持安全多方计算中的可信硬件的异构化。
151.各个主体可以采用同一种类的api接口来调用各自的可信硬件,实现了逻辑上的可信硬件抽象层,而将具体的功能实现交给可信硬件接口层实现。这样,可以支持可信硬件接口层使用不同种类的可信硬件,例如,可以支持tpm(trusted platform module)安全芯片、smartcard(智能卡),trustzone以及esim(embedded-sim,虚拟智能卡)等。
152.由于是在可信硬件中进行计算且可信硬件的安全性高,因此,不需要为了数据计算的安全性而对算法进行冗余设计,从而简化了算法,进而可以降低计算量,从而可以提高计算效率,且由于是在可信硬件中进行计算且可信硬件的安全性高,因此,可以提高数据的安全性。
153.在本技术另一个实施例中,在多个主体的安全多方计算完毕的情况下,各个主体可以删除与安全多方计算有关的隐私数据,例如,对于第二主体而言,其可以删除第一主体的第一公钥、第一主体的第二公钥、第一主体的标识、第二签名信息、加密后的对称密钥、第一密文、第一位置、第二数据、第二位置、多个电路语句、第一mac数据、第1校验hash值、第2校验hash值......以及第n 1校验hash值以及第一签名信息等隐私数据,如此使得第二主体中之前存储的这些数据无法被追溯,之后即使第二主体被不法分子控制,不法分子也无
法得到与安全多方计算有关的隐私数据,从而可以提高数据的安全性。
154.其次,在本技术另一实施例中,在多个主体进行安全多方计算的过程中,各个主体还可以将与安全多方计算有关的隐私数据存储在各个主体的可信硬件中,如此,即使主体中存储的与安全多方计算有关的隐私数据被损坏,由于主体的可信硬件中存储有与安全多方计算有关的隐私数据,因此,也可以完成安全多方计算,以保证安全多方计算能够顺利完成。
155.然而,有时候数据在传输的过程中会出错或者被不法分子修改,导致第一主体发送的数据与第二主体接收到的数据不同,在第一主体发送的数据与第二数据接收到的数据不同的情况下,这样,如果第二主体后续直接使用接收到的第一主体发送的数据,可能会引发安全性问题。
156.因此,为了避免出现安全问题,在本技术另一实施例中,第一主体可以将第一密文和第一位置拼接得到第一拼接数据,然后使用hmac(hash-based message authentication code,哈希消息认证码)对第一拼接数据加密,得到第一mac数据,并除了向第二主体发送加密后的对称密钥、第一密文以及第一位置,还可以向第二主体发送第一mac数据。
157.这样,第二主体可以接收第一主体发送的第一mac数据。第一mac数据是第一主体使用hmac对第一拼接数据加密得到的,第一拼接数据是第一主体将第一密文和第一位置拼接得到的,第二主体可以将第一mac数据输入第二主体的可信硬件中,以使第二主体的可信硬件可以将第一密文和第一位置拼接,得到第二拼接数据。然后使用hmac对第二拼接数据加密,得到第二mac数据,并判断第二mac数据与第一mac数据是否相同。
158.在第二mac数据与第一mac数据相同的情况下,则第二主体的可信硬件可以确定加密后的对称密钥、第一密文以及第一位置均是第一主体发送的,第二主体的可信硬件再使用第二主体的公钥对应的私钥对加密后的对称密钥解密,得到原对称密钥。
159.在第二mac数据与第一mac数据不同的情况下,则第二主体的可信硬件可以确定加密后的对称密钥、第一密文以及第一位置中的至少一个不是第一主体发送的,可以中断流程,提示技术人员处理,以避免引发安全问题。
160.有时候,多个电路语句在存储在第二主体之后,可能会被不法分子修改,如果被不法分子修改,则之后如果第二主体的可信硬件使用修改后的电路语句计算数据,则可能会引发安全性问题。
161.因此,为了避免引发安全性问题,第二主体在将计算机程序代码编译,得到多个电路语句之后,还可以对预设默认数据进行hash运算,得到第1校验hash值。默认数据可以是技术人员事先设置的,具体可以根据实际情况设置,本技术对此不加以限定。
162.然后对先后使用顺序为第1位的顺序编号、先后使用顺序为第1位的电路语句以及第1校验hash值进行hash运算,得到第2校验hash值。以此类推,对先后使用顺序为第n位的顺序编号、先后使用顺序为第n位的电路语句以及第n校验hash值进行hash运算,得到第n 1校验hash值。n大于或等于2,n为多个电路语句的数量。
163.之后第二主体可以将第1校验hash值、第2校验hash值......以及第n 1校验hash值存储在可信硬件中,以供之后校验多个电路语句是否被修改。
164.例如,在“第二主体至少将加密后的对称密钥、第一密文、第二数据以及电路语句输入第二主体的可信硬件中”之后,且在可信硬件“使用第二主体的公钥对应的私钥对加密
后的对称密钥解密,得到原对称密钥,使用原对称密钥对第一密文解密,得到第一数据,根据电路语句对第一数据和第二数据进行计算,至少得到第二主体应得的计算结果”之前,可信硬件可以对预设默认数据进行hash运算,得到第1实时hash值,默认数据可以是技术人员事先设置的,具体可以根据实际情况设置,本技术对此不加以限定。
165.然后对先后使用顺序为第1位的顺序编号、先后使用顺序为第1位的电路语句以及第1实时hash值进行hash运算,得到第2实时hash值,以此类推,对先后使用顺序为第n位的顺序编号、先后使用顺序为第n位的电路语句以及第n实时hash值进行hash运算,得到第n 1实时hash值,n大于或等于2,n为多个电路语句的数量。
166.然后,第二主体的可信硬件可以获取可信硬件存储的第1校验hash值、第2校验hash值......以及第n 1校验hash值。然后判断第1实时hash值与第一校验hash值是否相同、第2实时hash值与第2校验hash值是否相同......以及第n 1实时hash值与第n 1校验hash值是否相同。
167.在第1实时hash值与第一校验hash值相同、第2实时hash值与第2校验hash值相同......以及第n 1实时hash值与第n 1校验hash值相同的情况下,则说明多个电路语句均未被修改,则可信硬件可以执行“使用第二主体的公钥对应的私钥对加密后的对称密钥解密,得到原对称密钥,使用原对称密钥对第一密文解密,得到第一数据,根据电路语句对第一数据和第二数据进行计算,至少得到第二主体应得的计算结果”的流程。
168.在第1实时hash值与第一校验hash值不同、第2实时hash值与第2校验hash值不同......或第n 1实时hash值与第n 1校验hash值不同的情况下,则说明至少一个多个电路语句被修改,需要中断计算,提示技术人员处理,以避免引发安全问题。
169.在本技术另一实施例中,在第二主体除了将第1校验hash值、第2校验hash值......以及第n 1校验hash值存储在第二主体的可信硬件中,还可以根据第1hash校验值、第2hash校验值......以及第n 1hash校验值获取第一待签名数据,使用第二主体的私钥对第一待签名数据加密,得到第一签名信息,以及将第一签名信息存储在第二主体的可信硬件中。以使第一签名信息对第1校验hash值、第2校验hash值......以及第n 1校验hash值标记,也即,之后第一签名信息可以确定出第1校验hash值、第2校验hash值......以及第n 1校验hash值是否被修改。
170.例如,在第二主体的可信硬件获取第二主体的可信硬件存储的第1校验hash值、第2校验hash值......以及第n 1校验hash值之后,第二主体的可信硬件还可以获取已存储的第一签名信息,然后可以使用第二主体的公钥对第一签名信息解密,得到第二待签名数据。根据第1hash校验值、第2hash校验值......以及第n 1hash校验值获取第一待签名数据。判断第一待签名数据与第二待签名数据是否相同。
171.在第一待签名数据与第二待签名数据相同的情况下,说明第1校验hash值、第2校验hash值......以及第n 1校验hash值未被修改,则可以判断第1实时hash值与第一校验hash值是否相同、第2实时hash值与第2校验hash值是否相同......以及第n 1实时hash值与第n 1校验hash值是否相同。
172.在第一待签名数据与第二待签名数据不同的情况下,说明第1校验hash值、第2校验hash值......以及第n 1校验hash值中的至少一个被修改,需要中断计算,提示技术人员处理,以避免引发安全问题。
173.在本技术另一实施例中,第二主体可以将第1校验hash值、第2校验hash值......以及第n 1校验hash值发送给需要参与安全多方计算的其他主体。以使其他主体可以直接在其他主体的可信硬件中存储第1校验hash值、第2校验hash值......以及第n 1校验hash值,不需要其他主体再次按照上述方式再次计算第1校验hash值、第2校验hash值......以及第n 1校验hash值等,从而可以节省时间。
174.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本技术所必须的。
175.参照图4,示出了本技术一种的实施例的结构框图,所述装置包括:第二主体11,第二主体中包括可信硬件12;
176.所述第二主体的第一接收模块111,用于接收加密后的对称密钥和第一密文,加密后的对称密钥是第一主体使用所述第二主体的公钥对原对称密钥加密得到的,所述第一密文是所述第一主体使用所述原对称密钥对所述第一主体的第一数据加密得到的;
177.所述第二主体的第一获取模块112,用于获取所述第二主体的第二数据以及用于对参与安全多方计算的数据进行计算的电路语句;
178.所述第二主体的第一输入模块113,用于至少将所述加密后的对称密钥、所述第一密文、所述第二数据以及所述电路语句输入所述第二主体的可信硬件中;
179.所述可信硬件的第一解密模块121,用于以使所述可信硬件使用所述第二主体的公钥对应的私钥对加密后的对称密钥解密,得到所述原对称密钥,所述可信硬件的第二解密模块122,用于使用所述原对称密钥对所述第一密文解密,得到所述第一数据,所述可信硬件的计算模块123,用于根据所述电路语句对所述第一数据和所述第二数据进行计算,至少得到所述第二主体应得的计算结果;
180.所述第二主体的第二接收模块114,用于接收所述可信硬件输出的所述计算结果。
181.在一个可选的实现方式中,所述装置还包括:
182.所述第二主体的第三接收模块,用于接收所述第一数据在需要参与安全多方计算的多个数据中的第一位置;
183.所述第二主体的第二获取模块,用于获取所述第二数据在需要参与安全多方计算的多个数据中的第二位置;
184.所述第二主体的第二输入模块,用于将所述第一位置和所述第二位置输入所述可信硬件中,所述可信硬件的所述计算模块,具体用于根据所述电路语句、所述第一位置和所述第二位置对所述第一数据和所述第二数据进行计算,至少得到所述第二主体应得的计算结果。
185.在一个可选的实现方式中,所述装置还包括:
186.所述第二主体的第四接收模块,用于接收第一mac数据;所述第一mac数据是所述第一主体使用哈希消息认证码hmac对第一拼接数据加密得到的,所述第一拼接数据是将所述第一密文和所述第一位置拼接得到的;
187.所述第二主体的第三输入模块,用于将所述第一mac数据输入所述可信硬件中,所述可信硬件的拼接模块,用于将所述第一密文和所述第一位置拼接,得到第二拼接数据,所
述可信硬件的第一加密模块,用于使用所述hmac对所述第二拼接数据加密,得到第二mac数据;所述可信硬件的第一解密模块还用于在所述第二mac数据与所述第一mac数据相同的情况下,使用所述第二主体的公钥对应的私钥对加密后的对称密钥解密。
188.在一个可选的实现方式中,所述装置还包括:
189.所述第二主体的第三获取模块,用于获取用于对参与安全多方计算的数据进行计算的计算机程序代码;
190.所述第二主体的编译模块,用于将所述计算机程序代码编译,得到电路语句,所述电路语句与需要计算的数据之间相互独立;
191.其中,在所述电路语句为多个的情况下,多个电路语句之间的具有先后使用顺序以及先后使用顺序的顺序编号。
192.在一个可选的实现方式中,所述装置还包括:
193.所述第二主体的第一运算模块,用于对预设默认数据进行hash运算,得到第1校验hash值;
194.所述第二主体的第二运算模块,用于对先后使用顺序为第1位的顺序编号、先后使用顺序为第1位的电路语句以及第1校验hash值进行hash运算,得到第2校验hash值;以此类推,对先后使用顺序为第n位的顺序编号、先后使用顺序为第n位的电路语句以及第n校验hash值进行hash运算,得到第n 1校验hash值;n大于或等于2,n为所述多个电路语句的数量;
195.所述第二主体的第一存储模块,用于将所述第1校验hash值、所述第2校验hash值......以及第n 1校验hash值存储在所述可信硬件中。
196.在一个可选的实现方式中,所述装置还包括:
197.所述可信硬件的第三运算模块,用于对预设默认数据进行hash运算,得到第1实时hash值;
198.所述可信硬件的第四运算模块,用于对先后使用顺序为第1位的顺序编号、先后使用顺序为第1位的电路语句以及第1实时hash值进行hash运算,得到第2实时hash值;以此类推,对先后使用顺序为第n位的顺序编号、先后使用顺序为第n位的电路语句以及第n实时hash值进行hash运算,得到第n 1实时hash值;n大于或等于2,n为所述多个电路语句的数量;
199.所述可信硬件的第四获取模块,用于获取所述可信硬件存储的所述第1校验hash值、所述第2校验hash值......以及所述第n 1校验hash值;
200.所述可信硬件的第一解密模块还用于在确定出所述第1实时hash值与所述第一校验hash值相同、所述第2实时hash值与所述第2校验hash值相同......以及所述第n 1实时hash值与所述第n 1校验hash值相同的情况下,使用所述第二主体的公钥对应的私钥对加密后的对称密钥解密。
201.在一个可选的实现方式中,所述装置还包括:
202.所述第二主体的第五获取模块,用于根据所述第1hash校验值、所述第2hash校验值......以及所述第n 1hash校验值获取第一待签名数据;
203.所述第二主体的第二加密模块,用于使用所述第二主体的私钥对所述第一待签名数据加密,得到第一签名信息;
204.所述第二主体的第二存储模块,用于将所述第一签名信息存储在所述可信硬件中。
205.在一个可选的实现方式中,所述装置还包括:
206.所述可信硬件的第六获取模块,用于获取已存储的所述第一签名信息;
207.所述可信硬件的第三解密模块,用于使用所述第二主体的公钥对第一签名信息解密,得到第二待签名数据;
208.所述可信硬件的第七获取模块,用于根据所述第1hash校验值、所述第2hash校验值......以及所述第n 1hash校验值获取所述第一待签名数据;
209.所述可信硬件的判断模块,还用于在确定出所述第一待签名数据与所述第二待签名数据相同的情况下,判断第1实时hash值与第一校验hash值是否相同、第2实时hash值与第2校验hash值是否相同......以及第n 1实时hash值与第n 1校验hash值是否相同。
210.在一个可选的实现方式中,所述装置还包括:
211.所述第二主体的发送模块,用于将所述第1校验hash值、所述第2校验hash值......以及第n 1校验hash值发送给需要参与安全多方计算的其他主体。
212.在一个可选的实现方式中,所述装置还包括:
213.所述第二主体的第五接收模块,用于接收所述第一主体的第一公钥、所述第一主体的第二公钥、所述第一主体的标识以及第二签名信息,所述第二签名信息是所述第一主体根据所述第一公钥、所述第二公钥以及所述标识获取第三待签名数据,并使用所述第二公钥对应的第二私钥对所述第二待签名数据加密得到的;
214.所述第二主体的第四解密模块,用于使用所述第二公钥对所述第二签名信息解密,得到第四待签名数据;
215.所述第二主体的第八获取模块,用于根据所述第一公钥、所述第二公钥以及所述标识获取所述第三待签名数据;
216.所述第二主体的第三存储模块,用于在确定出所述第二主体在所述第三待签名数据与所述第四待签名数据相同的情况下,存储所述第一公钥、所述第二公钥以及所述标识之间的对应关系。
217.在本技术中,第二主体接收加密后的对称密钥和第一密文,加密后的对称密钥是第一主体使用第二主体的公钥对原对称密钥加密得到的,第一密文是第一主体使用原对称密钥对第一主体的第一数据加密得到的;第二主体获取第二主体的第二数据以及用于对参与安全多方计算的数据进行计算的电路语句。第二主体至少将加密后的对称密钥、第一密文、第二数据以及电路语句输入第二主体的可信硬件中,以使可信硬件使用第二主体的公钥对应的私钥对加密后的对称密钥解密,得到原对称密钥,使用原对称密钥对第一密文解密,得到第一数据,根据电路语句对第一数据和第二数据进行计算,至少得到第二主体应得的计算结果。第二主体接收可信硬件输出的第二主体应得的计算结果。
218.其中,由于当前已经可以自主可控地实现可信硬件的开发,因此可以解决可信硬件信任源的安全性问题。因此,通过本技术的方式,开发的可信硬件可以不依赖英特尔的sgx,从而可以降低安全多方计算的门槛,例如,使得安全多方计算可以应用于国内的安全性项目。
219.在本技术一个实施例中,通过本技术的方式,可以降低在进行安全多方计算时对
可信硬件的功能要求,可以不依赖于英特尔的sgx,可以使得可信硬件支持密码学源语(例如aes(advanced encryption standard,高级加密标准)、rsa(加密算法)、ecc(error correcting code,错误检查和纠正)、sm2/3/4(国家密码管理局发布的加密标准)、随机数以及与或等)即可,例如,支持使用密钥加密和解密的源语即可,由于降低了对可信硬件的功能要求,从而可以节省硬件成本。
220.另外,本技术不仅支持安全多方计算的分布化,由单一信任源扩展为多信任源,本技术还可以支持不同的主体中的可信硬件的种类可以不必完全相同,也即,支持安全多方计算中的可信硬件的异构化。
221.各个主体可以采用同一种类的api接口来调用各自的可信硬件,实现了逻辑上的可信硬件抽象层,而将具体的功能实现交给可信硬件接口层实现。这样,可以支持可信硬件接口层使用不同种类的可信硬件,例如,可以支持tpm(trusted platform module)安全芯片、smartcard(智能卡),trustzone以及esim(embedded-sim,虚拟智能卡)等。
222.由于是在可信硬件中进行计算且可信硬件的安全性高,因此,不需要为了数据计算的安全性而对算法进行冗余设计,从而简化了算法,进而可以降低计算量,从而可以提高计算效率,且由于是在可信硬件中进行计算且可信硬件的安全性高,因此,可以提高数据的安全性。
223.在本技术另一个实施例中,在多个主体的安全多方计算完毕的情况下,各个主体可以删除与安全多方计算有关的隐私数据,例如,对于第二主体而言,其可以删除第一主体的第一公钥、第一主体的第二公钥、第一主体的标识、第二签名信息、加密后的对称密钥、第一密文、第一位置、第二数据、第二位置、多个电路语句、第一mac数据、第1校验hash值、第2校验hash值......以及第n 1校验hash值以及第一签名信息等隐私数据,如此使得第二主体中之前存储的这些数据无法被追溯,之后即使第二主体被不法分子控制,不法分子也无法得到与安全多方计算有关的隐私数据,从而可以提高数据的安全性。
224.其次,在本技术另一实施例中,在多个主体进行安全多方计算的过程中,各个主体还可以将与安全多方计算有关的隐私数据存储在各个主体的可信硬件中,如此,即使主体中存储的与安全多方计算有关的隐私数据被损坏,由于主体的可信硬件中存储有与安全多方计算有关的隐私数据,因此,也可以完成安全多方计算,以保证安全多方计算能够顺利完成。
225.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
226.本技术实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本技术实施例中各方法步骤的指令(instructions)。
227.本技术实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本技术实施例中,所述电子设备包括服务器、网关、子设备等,子设备为物联网设备等设备。
228.本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括服务器(集群)、终端设备如iot设备等电子设备。
229.图5示意性地示出了可被用于实现本技术中所述的各个实施例的示例性装置
1300。
230.对于一个实施例,图5示出了示例性装置1300,该装置具有一个或多个处理器1302、被耦合到(一个或多个)处理器1302中的至少一个的控制模块(芯片组)1304、被耦合到控制模块1304的存储器1306、被耦合到控制模块1304的非易失性存储器(nvm)/存储设备1308、被耦合到控制模块1304的一个或多个输入/输出设备1310,以及被耦合到控制模块1306的网络接口1312。
231.处理器1302可包括一个或多个单核或多核处理器,处理器1302可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1300能够作为本技术实施例中所述网关等服务器设备。
232.在一些实施例中,装置1300可包括具有指令1314的一个或多个计算机可读介质(例如,存储器1306或nvm/存储设备1308)以及与该一个或多个计算机可读介质相合并被配置为执行指令1314以实现模块从而执行本公开中所述的动作的一个或多个处理器1302。
233.对于一个实施例,控制模块1304可包括任意适当的接口控制器,以向(一个或多个)处理器1302中的至少一个和/或与控制模块1304通信的任意适当的设备或组件提供任意适当的接口。
234.控制模块1304可包括存储器控制器模块,以向存储器1306提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
235.存储器1306可被用于例如为装置1300加载和存储数据和/或指令1314。对于一个实施例,存储器1306可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,存储器1306可包括双倍数据速率类型四同步动态随机存取存储器(ddr4sdram)。
236.对于一个实施例,控制模块1304可包括一个或多个输入/输出控制器,以向nvm/存储设备1308及(一个或多个)输入/输出设备1310提供接口。
237.例如,nvm/存储设备1308可被用于存储数据和/或指令1314。nvm/存储设备1308可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或多个数字通用光盘(dvd)驱动器)。
238.nvm/存储设备1308可包括在物理上作为装置1300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,nvm/存储设备1308可通过网络经由(一个或多个)输入/输出设备1310进行访问。
239.(一个或多个)输入/输出设备1310可为装置1300提供接口以与任意其他适当的设备通信,输入/输出设备1310可以包括通信组件、拼音组件、传感器组件等。网络接口1312可为装置1300提供接口以通过一个或多个网络通信,装置1300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如wifi、2g、3g、4g、5g等,或它们的组合进行无线通信。
240.对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器的逻辑封装在一起以形成系统级封装(sip)。对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多
个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(soc)。
241.在各个实施例中,装置1300可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1300包括一个或多个摄像机、键盘、液晶显示器(lcd)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(asic)和扬声器。
242.本技术实施例提供了一种电子设备,包括:一个或多个处理器;和,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本技术中一个或多个所述的安全多方计算方法。
243.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
244.本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
245.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
246.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
247.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
248.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
249.以上对本技术所提供的一种安全多方计算方法及装置,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助
理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

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

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

相关文献