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

远程证明的方法和装置与流程

2022-02-22 07:23:22 来源:中国专利 TAG:


1.本技术涉及可信计算(trusted computing)领域,并且更具体的,涉及可信计算领域中的一种远程证明的方法和装置。


背景技术:

2.在可信计算领域,远程证明指的是一个计算系统(证明者,prover)向一个远程系统(验证者,verifier)证明它的软/硬件配置和状态的一种技术。一个远程证明系统通常包括证明者和验证者两部分。证明者端具有系统完整性度量(integrity measurement)机制,能够根据证明者和验证者之间的远程证明协议(remote attestation protocol),将自身系统的度量值通过远程证明协议汇报给验证者,以便验证者验证证明者系统完整性。
3.为了保护证明者的隐私,证明者通常需要匿名参与远程证明协议,即验证者只需验证证明者的系统完整性,而无需了解证明者具体是谁。这通常是通过验证者使用(类)群签名技术来实现。群签名(group signature)是一类特殊的数字签名技术,具有下述核心特性:一个群管理员(group manager)拥有一对主公钥/主密钥,负责给群员(group member)发放签名私钥。私钥的签发需使用主密钥。群员使用私钥签名,产生的数字签名的合法性使用主公钥验证。在群签名技术中,只能验证签名是某个群员签发的,而不能确定具体是哪个群员。更进一步,同一个群员产生的不同签名不能被链接(unlinkability),即验证者无法确认不同的数字签名是否为同一个群员生成。因此使用群签名可保护签名者的隐私。
4.在一种远程证明方案中,芯片制造商作为处理器的分发机构,拥有一对主公钥/主密钥。芯片生产商根据该主密钥产生证明私钥(attestation key),用于证明者签发数字签名。验证者使用上述主公钥对该数字签名进行验证。由于芯片制造商是证明私钥的分发机构,因此用户需要完全信任该芯片制造商,即信任芯片制造商产生的证明私钥。但是,在某些情况下,用户可能不想完全信任芯片制造商,此时如何进行远程证明是亟待解决的问题。


技术实现要素:

5.本技术提供一种远程证明的方法和系统,能够实现用户在进行远程证明过程中,无需完全信任芯片制造商。
6.第一方面,提供了一种远程证明的方法,包括:
7.第二服务器根据第二主密钥a-msk2,向第一设备发送第二部分证明私钥;
8.所述第一设备接收来自所述第二服务器的所述第二部分证明私钥和来自第一服务器的第一部分证明私钥,其中,所述第一部分证明私钥是所述第一服务器根据第一主密钥a-msk1生成的;
9.所述第一设备根据所述第一部分证明私钥和所述第二部分证明私钥,生成证明私钥;
10.所述第一设备根据所述证明私钥,生成匿名签名,其中,用于验证所述匿名签名的联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥
a-mpk2确定的。
11.示例性的,第一服务器可以为可信第三方服务器,第二服务器可以为芯片制造商服务器,第一设备可以为可信设备。另外,可信第三方服务器的数量可以为至少一个,例如可以为一个,两个,或者更多,本技术实施例对此不作限定。
12.因此,本技术实施例中,以第一服务器可以为可信第三方服务器,第二服务器可以为芯片制造商服务器,第一设备可以为可信设备为例,通过至少一个用户(即可信设备和验证设备)信任的可信第三方服务器与芯片制造商服务器共同生成证明私钥(attestation key),能够将用户的信任分散到多方,使得任何单一一方(例如芯片制造商或任意一个可信第三方)无法生成或知道用户的attestation key,因此本技术实施例能够实现用户在远程证明的过程中,无需完全信任芯片制造商。
13.结合第一方面,在第一方面的某些实现方式中,还包括:
14.所述第二服务器确定所述第一设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径{u0,u1,

,u
l
},uj表示所述路径上的第j个节点,u
l
表示所述第一设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数;
15.其中,所述第二服务器根据第二主密钥a-msk2,向第一设备发送第二部分证明私钥,包括:
16.所述第二服务器根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第二签名;
17.所述第二服务器将所述每个uj的对(u
l
,uj)的第二签名发送给所述第一设备,其中每个uj的对(u
l
,uj)的第二签名为所述第二部分证明私钥;
18.其中,所述第一部分证明私钥是所述第一服务器根据第一签名确定的,所述第一签名是所述第一服务器根据所述a-msk1,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的签名。
19.这样,第一服务器可以根据自身的主密钥,对可信芯片对应的叶节点到二叉树的根节点的路径上的所有节点,生成签名作为第一服务器产生的部分attestation key;第二服务器可以根据自身的主密钥,对可信芯片对应的叶节点到二叉树的根节点的路径上的所有节点,生成签名作为第二服务器产生的部分attestation key。
20.结合第一方面,在第一方面的某些实现方式中,所述第二服务器根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第二签名,包括:
21.所述第二服务器根据所述a-msk2和临时加法同态加密算法,向所述第一商服务器发送对所述(u
l
,uj)的第一加密信息;
22.所述第二服务器接收所述第一服务器发送的第二加密信息,其中,所述第二加密信息是所述第一服务器根据所述第一加密信息和所述a-msk1生成的;
23.所述第二服务器解密所述第二加密信息,并根据所述第二加密信息,生成所述对(u
l
,uj)的第二签名。
24.因此,第二服务器可以通过临时加法同态加密算法,允许在保证第二服务器的秘密信息(即第二服务器生成部分attestation key的过程相关信息)的私密性的情况下,允许第一商服务器在秘密信息上进行计算,从而得到相应的计算结果。
25.结合第一方面,在第一方面的某些实现方式中,还包括:
26.在一些可能的实现方式中,第一服务器也可以根据所述a-msk1和临时加法同态加密算法,向第二服务器发送对所述(u
l
,uj)的加密信息c1;
27.所述第一服务器接收所述第二服务器发送的加密信息c2,其中,所述加密信息c2是所述第二服务器根据所述加密信息c1和所述a-msk1生成的;
28.所述第一解密所述加密信息c2,并根据所述加密信息c2,生成所述对(u
l
,uj)的第一签名。
29.这样,第一服务器可以通过临时加法同态加密算法,允许在保证第一服务器的秘密信息(即第一服务器生成部分attestation key的过程相关信息)的私密性的情况下,允许第二服务器在秘密信息上进行计算,从而得到相应的计算结果。
30.结合第一方面,在第一方面的某些实现方式中,还包括:
31.所述第二服务器确定集合r,其中r

cs(ru,bt),其中,bt表示所述二叉树,ru表示在时间段t内,所述二叉树中撤销的芯片的集合,r表示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点;
32.所述第二服务器根据所述a-msk2,对于每个uj∈r,生成对(t,uj)的第四签名;
33.所述第二商服务器根据所述第四签名和第三签名,确定所述时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名,其中,所述第三签名是所述第一服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的签名。
34.在一些实施例中,第一服务器也可以确定上述集合r,进而第一服务器可以与第二服务器共同确定上述撤销列表。
35.在一些实施例中,第一服务器和/或第二服务器可以公示上述撤销列表,以使得二叉树中的各个叶节点对应的可信设备可以获取该撤销列表。
36.当第一设备在时间段t内没有被撤销,则存在一个节点u,既属于该第一设备对应的叶节点到该二叉树的根节点的路径上的一个节点,又同时属于该sm算法的输出cs(ru,bt),即u∈{u0,u1,

,u
l
}∩{u
′1,u
′2,
…u′v}。此时,第一设备可以用零知识来证明其拥有对(id,u)的签名和对(t,u

)的签名,且满足u=u


37.当第一设备在时间段t内被撤销时,则必然在sm算法输出的cs(ru,bt)不包含该第一设备对应的叶节点至其根节点的路径上的任一节点。此时,第一设备不拥有对(t,u

)的签名。
38.因此,本技术提供了芯片撤销机制,可由第一服务器与第二商服务器共同生成撤销列表,从而共同完成芯片的撤销。
39.结合第一方面,在第一方面的某些实现方式中,所述第一设备根据所述证明私钥,生成匿名签名,包括:
40.获取验证设备发送的随机挑战信息;
41.确定节点包含在所述证明私钥中的对的签名,以及包含在所述撤销列表中的对的签名;
42.根据所述对的签名和所述对的签名,确定对所述随机挑战信息和平台完整性度量值的零知识签名。
43.因此,本技术实施例中,第一设备在获取证明私钥之后,可以确定一个既属于该第
一设备对应的叶节点到该二叉树的根节点的路径上的一个节点,又同时属于sm算法的输出cs(ru,bt)中的节点,并从证明私钥中获取对的签名,以及从撤销列表中获取对的签名,进而根据所述对的签名和所述对的签名,确定对随机挑战信息和平台完整性度量值的零知识签名,以使得验证设备根据该零知识签名验证第一设备的系统完整性。
44.结合第一方面,在第一方面的某些实现方式中,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名。
45.第二方面,提供了一种远程证明的方法,包括:
46.第一设备接收来自第一服务器的第一部分证明私钥,其中,所述第一部分证明私钥是所述第一服务器根据第一主密钥a-msk1生成的;
47.所述第一设备接收来自第二服务器的第二部分证明私钥,其中,所述第二部分证明私钥是所述第二服务器根据第二主密钥a-msk2生成的;
48.所述第一设备根据所述第一部分证明私钥和所述第二部分证明私钥,生成证明私钥;
49.所述第一设备根据所述证明私钥,生成匿名签名,其中,验证所述匿名签名的联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥a-mpk2确定的。
50.结合第二方面,在第二方面的某些实现方式中,所述第一部分证明私钥是所述第一服务器根据第一签名确定的,所述第一签名是所述第一服务器根据所述a-msk1,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的签名;
51.所述第二部分证明私钥是所述第二服务器根据第二签名确定的,所述第二签名是所述第一服务器根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的签名;
52.其中,{u0,u1,

,u
l
}表示所述第一设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径,uj表示所述路径上的第j个节点,u
l
表示所述第一设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数。
53.结合第二方面,在第二方面的某些实现方式中,所述第一设备获取时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名,其中,所述撤销列表是根据第三签名和第四签名确定的,所述第三签名是所述第一服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的签名,所述第四签名是所述第二服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的签名;
54.其中,r

cs(ru,bt),其中,bt表示所述二叉树,ru表示在时间段t内,所述二叉树中撤销的芯片的集合,r表示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点。
55.结合第二方面,在第二方面的某些实现方式中,所述第一设备根据所述证明私钥,生成匿名签名,包括:
56.获取验证设备发送的随机挑战信息;
57.确定节点包含在所述证明私钥中的对的签名,以及包含在所述撤销列表中的对的签名;
58.根据所述对的签名和所述对的签名,确定对所述随机挑战信息和平台完整性度量值的零知识签名。
59.结合第二方面,在第二方面的某些实现方式中,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名。
60.结合第二方面,在第二方面的某些实现方式中,所述第二服务器为所述第一设备的芯片制造商服务器。
61.第三方面,提供了一种远程证明的系统,包括:
62.第二服务器,用于根据第二主密钥a-msk2,向第一设备发送第二部分证明私钥;
63.所述第一设备,用于接收来自所述第二服务器的所述第二部分证明私钥和来自第一服务器的第一部分证明私钥,其中,所述第一部分证明私钥是所述第一服务器根据第一主密钥a-msk1生成的;
64.所述第一设备,还用于根据所述第一部分证明私钥和所述第二部分证明私钥,生成证明私钥;
65.所述第一设备还用于根据所述证明私钥,生成匿名签名,其中,验证所述匿名签名的联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥a-mpk2确定的。
66.结合第三方面,在第三方面的某些实现方式中,所述第二服务器还用于确定所述第一设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径{u0,u1,

,u
l
},uj表示所述路径上的第j个节点,u
l
表示所述第一设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数;
67.其中,所述第二服务器具体用于:
68.根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第二签名;
69.将所述每个uj的对(u
l
,uj)的第二签名发送给所述第一设备,其中每个uj的对(u
l
,uj)的第二签名为所述第二部分证明私钥;
70.其中,所述第一部分证明私钥是所述第一服务器根据第二签名确定的,所述第二签名是所述第一服务器根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的签名。
71.结合第三方面,在第三方面的某些实现方式中,所述第二服务器具体用于:
72.根据所述a-msk2和临时加法同态加密算法,向所述第一服务器发送对所述(u
l
,uj)的第一加密信息;
73.接收所述第一服务器发送的第二加密信息,其中,所述第二加密信息是所述第一服务器根据所述第一加密信息和所述a-msk1生成的;
74.解密所述第二加密信息,并根据所述第二加密信息,生成所述对(u
l
,uj)的第一签名。
75.结合第三方面,在第三方面的某些实现方式中,
76.所述第二服务器还用于确定集合r,其中r

cs(ru,bt),其中,bt表示所述二叉树,ru表示在时间段t内,所述二叉树中撤销的芯片的集合,r表示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点;
77.所述第二服务器还用于根据所述a-msk2,对于每个uj∈r,生成对(t,uj)的第四签
名;
78.所述第二商服务器还用于根据第三签名和所述第四签名,确定所述时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名,其中,所述第三签名是所述第一服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的签名。
79.结合第三方面,在第三方面的某些实现方式中,所述第一设备具体用于:
80.获取验证设备发送的随机挑战信息;
81.确定节点包含在所述证明私钥中的对的签名,以及包含在所述撤销列表中的对的签名;
82.根据所述对的签名和所述对的签名,确定对所述随机挑战信息和平台完整性度量值的零知识签名。
83.结合第三方面,在第三方面的某些实现方式中,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名。
84.结合第三方面,在第三方面的某些实现方式中,所述第二服务器为所述第一设备的芯片制造商服务器。
85.第四方面,提供了一种远程证明的装置,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法,具体的,该装置包括用于执行上述第二方面或第二方面任意可能的实现方式中的方法的模块,例如接收单元和生成单元,
86.接收单元,用于接收来自第一服务器的第一部分证明私钥,其中,所述第一部分证明私钥是所述第一服务器根据第一主密钥a-msk1生成的;
87.所述接收单元还用于接收来自第二服务器的第二部分证明私钥,其中,所述第二部分证明私钥是所述第二服务器根据第二主密钥a-msk2生成的;
88.生成单元,用于根据所述第一部分证明私钥和所述第二部分证明私钥,生成证明私钥;
89.所述生成单元还用于所述第一设备根据所述证明私钥,生成匿名签名,其中,验证所述匿名签名的联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥a-mpk2确定的。
90.结合第四方面,在第四方面的某些实现方式中,所述第一部分证明私钥是所述第一服务器根据第一签名确定的,所述第一签名是所述第一服务器根据所述a-msk1,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的签名;
91.所述第二部分证明私钥是所述第二服务器根据第二签名确定的,所述第二签名是所述第一服务器根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的签名;
92.其中,{u0,u1,

,u
l
}表示所述第一设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径,uj表示所述路径上的第j个节点,u
l
表示所述第一设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数。
93.结合第四方面,在第四方面的某些实现方式中,还包括获取单元,用于获取时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名,其中,所述撤销列表是根据第三签名和第四签名确定的,所述第三签名是所述第一服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的签名,所述第四签名是所述第二服务器根据所述a-msk1,对于每
个uj∈r,生成对(t,uj)的签名;
94.其中,r

cs(ru,bt),其中,bt表示所述二叉树,ru表示在时间段t内,所述二叉树中撤销的芯片的集合,r表示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点。
95.结合第四方面,在第四方面的某些实现方式中,所述生成单元具体用于:
96.获取验证设备发送的随机挑战信息;
97.确定节点包含在所述证明私钥中的对的签名,以及包含在所述撤销列表中的对的签名;
98.根据所述对的签名和所述对的签名,确定对所述随机挑战信息和平台完整性度量值的零知识签名。
99.结合第四方面,在第四方面的某些实现方式中,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名。
100.结合第四方面,在第四方面的某些实现方式中,所述第二服务器为所述第一设备的芯片制造商服务器。
101.第五方面,提供了一种远程证明的方法,包括:
102.可信第三方服务器根据第一主密钥a-msk1,向可信设备发送第一部分证明私钥;
103.芯片制造商服务器根据第二主密钥a-msk2,向所述可信设备发送第二部分证明私钥;
104.所述可信设备根据所述第一部分证明私钥和所述第二部分证明私钥,生成证明私钥;
105.所述可信设备根据所述证明私钥,生成匿名签名;
106.验证设备根据联合主公钥,对所述匿名签名进行验证,其中,所述联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥a-mpk2确定的。
107.因此,本技术实施例中,通过至少一个用户(即证明设备和验证设备)信任的可信第三方服务器与芯片制造商服务器共同生成证明私钥(attestation key),能够将用户的信任分散到多方,使得任何单一一方(例如芯片制造商或任意一个可信第三方)无法生成或知道用户的attestation key,因此本技术实施例能够实现用户在远程证明的过程中,无需完全信任芯片制造商。
108.在本技术实施例中,可信第三方服务器的数量可以为至少一个,例如可以为一个,两个,或者更多,本技术实施例对此不作限定。
109.结合第五方面,在第五方面的某些实现方式中,还包括:
110.所述可信第三方服务器和所述芯片制造商服务器共同确定所述可信设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径{u0,u1,

,u
l
},uj表示所述路径上的第j个节点,u
l
表示所述可信设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数;
111.其中,所述可信第三方服务器根据第一主密钥a-msk1,向可信设备发送第一部分证明私钥,包括:
112.所述可信第三方服务器根据所述a-msk1,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,
uj)的第一签名;
113.所述可信第三方服务器将所述每个uj的对(u
l
,uj)的第一签名发送给所述可信设备,其中每个uj的对(u
l
,uj)的第一签名为所述第一部分证明私钥;
114.其中,所述芯片制造商服务器根据第二主密钥a-msk2,向所述可信设备发送第二部分证明私钥,包括:
115.所述芯片制造商服务器根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第二签名;
116.所述芯片制造商服务器将所述每个uj的对(u
l
,uj)的第二签名发送给所述可信设备,其中每个uj的对(u
l
,uj)的第二签名为所述第二部分证明私钥。
117.这样,可信第三方服务器可以根据自身的主密钥,对可信芯片对应的叶节点到二叉树的根节点的路径上的所有节点,生成签名作为可信第三方服务器产生的部分attestation key;芯片制造商服务器可以根据自身的主密钥,对可信芯片对应的叶节点到二叉树的根节点的路径上的所有节点,生成签名作为芯片制造商服务器产生的部分attestation key。
118.结合第五方面,在第五方面的某些实现方式中,所述可信第三方服务器根据所述a-msk1,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第一签名,包括:
119.所述可信第三方服务器根据所述a-msk1和临时加法同态加密算法,向所述芯片制造商服务器发送对所述(u
l
,uj)的加密信息c1;
120.所述可信第三方服务器接收所述芯片制造商服务器发送的加密信息c2,其中,所述加密信息c2是所述芯片制造商服务器根据所述加密信息c1和所述a-msk2生成的;
121.所述可信第三方服务器解密所述加密信息c2,并根据所述加密信息c2,生成所述对(u
l
,uj)的第一签名。
122.因此,可信第三方服务器可以通过临时加法同态加密算法,允许在保证可信第三方服务器的秘密信息(即可信第三方服务器生成部分attestation key的过程相关信息)的私密性的情况下,允许芯片制造商服务器在秘密信息上进行计算,从而得到相应的计算结果。
123.在一些可能的实现方式中,芯片制造商服务器也可以根据所述a-msk2和临时加法同态加密算法,向所述可信第三服务器发送对所述(u
l
,uj)的加密信息c3;
124.所述芯片制造商服务器接收所述可信第三方服务器发送的加密信息c4,其中,所述加密信息c4是所述可信第三方服务器根据所述加密信息c3和所述a-msk1生成的;
125.所述芯片制造商服务器解密所述加密信息c4,并根据所述加密信息c4,生成所述对(u
l
,uj)的第一签名。
126.这样,芯片制造商服务器可以通过临时加法同态加密算法,允许在保证芯片制造商服务器的秘密信息(即芯片制造商服务器生成部分attestation key的过程相关信息)的私密性的情况下,允许可信第三方服务器在秘密信息上进行计算,从而得到相应的计算结果。
127.结合第五方面,在第五方面的某些实现方式中,还包括:
128.所述可信第三方服务器和所述芯片制造商服务器分别确定集合r,其中r

cs(ru,bt),其中,bt表示所述二叉树,ru表示在时间段t内,所述二叉树中撤销的芯片的集合,r表
示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点;
129.所述可信第三方服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的第三签名;
130.所述芯片制造商服务器根据所述a-msk2,对于每个uj∈r,生成对(t,uj)的第四签名;
131.所述可信第三方服务器和所述芯片制造商服务器根据所述第三签名和所述第四签名,确定所述时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名。
132.在一些实施例中,可信第三方服务器和/或芯片制造商服务器可以公示上述撤销列表,以使得二叉树中的各个叶节点对应的可信设备可以获取该撤销列表。
133.当可信设备在时间段t内没有被撤销,则存在一个节点u,既属于该可信设备对应的叶节点到该二叉树的根节点的路径上的一个节点,又同时属于该sm算法的输出cs(ru,bt),即u∈{u0,u1,

,u
l
}∩{u
′1,u
′2,
…u′v}。此时,可信设备可以用零知识来证明其拥有对(id,u)的签名和对(t,u

)的签名,且满足u=u


134.当可信设备在时间段t内被撤销时,则必然在sm算法输出的cs(ru,bt)不包含该可信设备对应的叶节点至其根节点的路径上的任一节点。此时,可信设备不拥有对(t,u

)的签名。
135.因此,本技术提供了芯片撤销机制,可由可信第三方服务器与芯片制造商服务器共同生成撤销列表,从而共同完成芯片的撤销。
136.结合第五方面,在第五方面的某些实现方式中,所述可信设备根据所述证明私钥,生成匿名签名,包括:
137.获取所述验证设备发送的随机挑战信息;
138.确定节点包含在所述证明私钥中的对的签名,以及包含在所述撤销列表中的对的签名;
139.根据所述对的签名和所述对的签名,确定对所述随机挑战信息和平台完整性度量值的零知识签名。
140.因此,本技术实施例中,可信设备在获取证明私钥之后,可以确定一个既属于该可信设备对应的叶节点到该二叉树的根节点的路径上的一个节点,又同时属于sm算法的输出cs(ru,bt)中的节点,并从证明私钥中获取对的签名,以及从撤销列表中获取对的签名,进而根据所述对的签名和所述对的签名,确定对随机挑战信息和平台完整性度量值的零知识签名,以使得验证设备根据该零知识签名验证可信芯片的系统完整性。
141.结合第五方面,在第五方面的某些实现方式中,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名,但是本技术实施例并不限于此。
142.在一些可选的实施例中,可信第三方服务器可以使用该可信第三方服务器的用于身份认证的第一公/私钥对,芯片制造商服务器使用该芯片制造商服务器的用于身份认证的第二公/私钥对,可信设备使用其背书钥(endorsement key),进行互相认证,并建立安全通道。示例性的,该安全通道可以用于传输部分attestation key。
143.因此,本技术实施例通过建立可信第三方服务器、芯片制造商服务器和可信设备
之间的安全通道,能够有助于可信第三方服务器、芯片制造商服务器和可信设备之间更加安全的进行数据传输。
144.第六方面,提供了一种远程证明的系统,包括:
145.可信第三方服务器,用于根据第一主密钥a-msk1,向可信设备发送第一部分证明私钥;
146.芯片制造商服务器,用于根据第二主密钥a-msk2,向所述可信设备发送第二部分证明私钥;
147.所述可信设备,用于根据所述第一部分证明私钥和所述第二部分证明私钥,生成证明私钥;
148.所述可信设备还用于根据所述证明私钥,生成匿名签名;
149.验证设备,用于根据联合主公钥,对所述匿名签名进行验证,其中,所述联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥a-mpk2确定的。
150.结合第六方面,在第六方面的某些实现方式中,所述可信第三方服务器和所述芯片制造商服务器还用于共同确定所述可信设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径{u0,u1,

,u
l
},uj表示所述路径上的第j个节点,u
l
表示所述可信设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数;
151.其中,所述可信第三方服务器具体用于:
152.根据所述a-msk1,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第一签名;
153.将所述每个uj的对(u
l
,uj)的第一签名发送给所述可信设备,其中每个uj的对(u
l
,uj)的第一签名为所述第一部分证明私钥;
154.其中,所述芯片制造商服务器具体用于:
155.根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第二签名;
156.将所述每个uj的对(u
l
,uj)的第二签名发送给所述可信设备,其中每个uj的对(u
l
,uj)的第二签名为所述第二部分证明私钥。
157.结合第六方面,在第六方面的某些实现方式中,所述可信第三方服务器具体用于根据所述a-msk1和临时加法同态加密算法,向所述芯片制造商服务器发送对所述(u
l
,uj)的加密信息c1;
158.所述芯片制造商服务器具体用于根据所述加密信息c1和所述a-msk2,生成加密信息c2,并向所述可信第三方服务器发送所述加密信息c2;
159.所述可信第三方服务器具体用于解密所述加密信息c2,并根据所述加密信息c2,生成所述对(u
l
,uj)的第一签名。
160.结合第六方面,在第六方面的某些实现方式中,所述可信第三方服务器和所述芯片制造商服务器分别还用于确定集合r,其中r

cs(ru,bt),其中,bt表示所述二叉树,ru表示在时间段t内,所述二叉树中撤销的芯片的集合,r表示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点;
161.所述可信第三方服务器还用于根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的第三签名;
162.所述芯片制造商服务器还用于根据所述a-msk2,对于每个uj∈r,生成对(t,uj)的
第四签名;
163.所述可信第三方服务器和所述芯片制造商服务器还用于根据所述第三签名和所述第四签名,确定所述时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名。
164.结合第六方面,在第六方面的某些实现方式中,所述可信设备具体用于:
165.获取所述验证设备发送的随机挑战信息;
166.确定节点包含在所述证明私钥中的对的签名,以及包含在所述撤销列表中的对的签名;
167.根据所述对的签名和所述对的签名,确定对所述随机挑战信息和平台完整性度量值的零知识签名。
168.结合第二方面,在第二方面的某些实现方式中,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名。
169.第七方面,提供了一种远程证明的方法,包括:
170.第二服务器根据第二主密钥a-msk2,生成第二部分证明私钥;
171.所述第二服务器向第一设备发送所述第二部分证明私钥,其中,所述第二部分证明私钥用于所述第一设备根据第一部分证明私钥和所述第二部分证明私钥生成证明私钥,所述第二部分证明私钥是所述第二服务器根据第二主密钥a-msk2生成的,所述证明私钥用于生成匿名签名,用于验证所述匿名签名的联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥a-mpk2确定的。
172.结合第七方面,在第七方面的某些实现方式中,
173.所述第二服务器确定所述第一设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径{u0,u1,

,u
l
},uj表示所述路径上的第j个节点,u
l
表示所述第一设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数;
174.其中,所述第二服务器根据第二主密钥a-msk2,向第一设备发送第二部分证明私钥,包括:
175.所述第二服务器根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第二签名;
176.所述第二服务器将所述每个uj的对(u
l
,uj)的第二签名发送给所述第一设备,其中每个uj的对(u
l
,uj)的第二签名为所述第二部分证明私钥。
177.结合第七方面,在第七方面的某些实现方式中,所述第二服务器根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第二签名,包括:
178.所述第二服务器根据所述a-msk2和临时加法同态加密算法,向所述第一商服务器发送对所述(u
l
,uj)的第一加密信息;
179.所述第二服务器接收所述第一服务器发送的第二加密信息,其中,所述第二加密信息是所述第一服务器根据所述第一加密信息和所述a-msk1生成的;
180.所述第二服务器解密所述第二加密信息,并根据所述第二加密信息,生成所述对(u
l
,uj)的第二签名。
181.结合第七方面,在第七方面的某些实现方式中,
182.所述第二服务器确定集合r,其中r

cs(ru,bt),其中,bt表示所述二叉树,ru表示
在时间段t内,所述二叉树中撤销的芯片的集合,r表示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点;
183.所述第二服务器根据所述a-msk2,对于每个uj∈r,生成对(t,uj)的第四签名;
184.所述第二服务器根据第三签名和所述第四签名,确定所述时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名,其中,所述第三签名是所述第一服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的签名。
185.结合第七方面,在第七方面的某些实现方式中,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名。
186.结合第七方面,在第七方面的某些实现方式中,所述第二服务器为所述第一设备的芯片制造商服务器。
187.第八方面,提供了一种远程证明的装置,用于执行上述第七方面或第七方面的任意可能的实现方式中的方法,具体的,该装置包括用于执行上述第七方面或第七方面任意可能的实现方式中的方法的模块。
188.第九方面,提供了一种远程证明的方法,包括:
189.第一服务器根据第一主密钥a-msk1,生成第一部分证明私钥;
190.所述第一服务器向第一设备发送所述第一部分证明私钥,其中,所述第一部分证明私钥用于所述第一设备根据所述第一部分证明私钥和第二部分证明私钥生成证明私钥,所述第二部分证明私钥是所述第二服务器根据第二主密钥a-msk2生成的,所述证明私钥用于生成匿名签名,用于验证所述匿名签名的联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥a-mpk2确定的。
191.结合第九方面,在第九方面的某些实现方式中,
192.所述第一服务器确定所述第一设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径{u0,u1,

,u
l
},uj表示所述路径上的第j个节点,u
l
表示所述第一设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数;
193.其中,所述第一服务器根据第一主密钥a-msk1,向第一设备发送第一部分证明私钥,包括:
194.所述第一服务器根据所述a-msk1,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第一签名;
195.所述第一服务器将所述每个uj的对(u
l
,uj)的第一签名发送给所述第一设备,其中每个uj的对(u
l
,uj)的第一签名为所述第一部分证明私钥。
196.结合第九方面,在第九方面的某些实现方式中,
197.第一服务器根据所述a-msk1和临时加法同态加密算法,向第二服务器发送对所述(u
l
,uj)的加密信息c1;
198.所述第一服务器接收所述第二服务器发送的加密信息c2,其中,所述加密信息c2是所述第二服务器根据所述加密信息c1和所述a-msk1生成的;
199.所述第一解密所述加密信息c2,并根据所述加密信息c2,生成所述对(u
l
,uj)的第一签名。
200.结合第九方面,在第九方面的某些实现方式中,
201.所述第一服务器确定集合r,其中r

cs(ru,bt),其中,bt表示所述二叉树,ru表示
在时间段t内,所述二叉树中撤销的芯片的集合,r表示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点;
202.所述第一服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的第三签名;
203.所述第一商服务器根据所述第三签名和第四签名,确定所述时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名,其中,所述第四签名是所述第二服务器根据所述a-msk2,对于每个uj∈r,生成对(t,uj)的签名。
204.结合第九方面,在第九方面的某些实现方式中,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名。
205.结合第九方面,在第九方面的某些实现方式中,所述第一服务器为所述第一设备的可信第三方服务器。
206.第十方面,提供了一种远程证明的装置,用于执行上述第九方面或第九方面的任意可能的实现方式中的方法,具体的,该装置包括用于执行上述第九方面或第九方面任意可能的实现方式中的方法的模块。
207.第十一方面,提供了一种远程证明的装置,包括:存储器、处理器。其中,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该视频编码的装置执行第一方面或第一方面的任意可能的实现方式中的方法,或执行第二方面或第二方面的任意可能的实现方式中的方法,或执行第五方面或第五方面的任意可能的实现方式中的方法,或执行第七方面或第七方面的任意可能的实现方式中的方法,或执行第九方面或第九方面的任意可能的实现方式中的方法。
208.第十二方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令,或执行第二方面或第二方面的任意可能的实现方式中的方法的指令,或执行第五方面或第五方面的任意可能的实现方式中的方法的指令,或执行第七方面或第七方面的任意可能的实现方式中的方法的指令,或执行第九方面或第九方面的任意可能的实现方式中的方法的指令。
209.第十三方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行第一方面或第一方面的任意一种可能的实现方式中的方法,或执行第二方面或第二方面的任意可能的实现方式中的方法,或执行第五方面或第五方面的任意可能的实现方式中的方法,或执行第七方面或第七方面的任意可能的实现方式中的方法,或执行第九方面或第九方面的任意可能的实现方式中的方法。
210.应理解,本技术的第二至第十三方面及对应的实现方式所取得的有益效果参见本技术的第一方面及对应的实现方式所取得的有益效果,不再赘述。
附图说明
211.图1是一种远程证明系统的示意性架构图;
212.图2是基于tpm的可信架构的示意图;
213.图3是基于处理器的sgx的系统架构的示意图;
214.图4是本技术实施例提供的一种远程证明系统的示意性架构图;
215.图5是本技术提供的一种远程证明的方法的示意性流程图;
216.图6是sm算法的一个例子;
217.图7是本技术提供的一种远程证明的装置的示意性框图;
218.图8是本技术提供的另一种远程证明的装置的示意性框图;
219.图9是本技术提供的另一种远程证明的装置的示意性框图;
220.图10是本技术提供的另一种远程证明的装置的示意性框图;
221.图11是本技术提供的另一种远程证明的装置的示意性框图。
具体实施方式
222.下面将结合附图,对本技术中的技术方案进行描述。
223.图1是一种远程证明系统的示意性架构图。如图1所示,远程证明系统包括证明者和验证者两部分。证明者端具有完整性度量模块(integrity measurement module)和远程认证模块(remote attestation module),验证者端具有远程认证模块。其中,完整性度量模块能够根据系统完整性度量机制,生成自身系统的度量值。证明者的远程认证模块能够根据远程证明协议,将完整性度量模块产生的度量值发送给验证者的远程认证模块,以便验证者验证证明者系统完整性。
224.作为一种方案,基于可信平台模块(trusted platform module,tpm)的可信架构提供了硬件信任根,实现了可度量的系统启动过程,能够形成始于硬件的信任链。如图2所示,该信任链可以为:可信的硬件tpm
--
》tmp度量引导加载程序(boot loader)
--
》boot loader度量操作系统(operating system)
--
》操作系统度量应用程序(application)。
225.基于tmp的远程证明协议是直接匿名证明(direct anonymous attestation,daa)。用于远程证明协议的attestation key是tmp制造厂商作为分发机构分发的。因此,基于tpm的可信架构中,可信计算的信仰关系是用户(即证明者和验证者)需要信任tmp制造厂商。
226.作为另一种方案,基于处理器的软件防护扩展(software guard extensions,sgx)是一组与安全有关的指令集。如图3所示,sgx可以扩展处理器,允许用户级程序或操作系统定义有限的私有内存区域enclaves。enclave内的内容被加密保护,因此不能被任何别的程序读取,包括那些有更高权限的程序。
227.sgx的远程证明协议是增强的隐私(enhanced privacy id,epid)。芯片制造商作为处理器的分发机构,产生attestation key。因此,在基于处理器的sgx方案中,可信计算的信仰关系也是用户(即证明者和验证者)需要信任tmp制造厂商。
228.在上述两种方案中,用户需要信任芯片制造商,具体的需要信任芯片制造商产生的attestation key。但是,在某些情况下,用户可能不想完全信任芯片制造商。有鉴于此,本技术实施例提供了一种远程证明系统,该系统中包括至少一个用户(即证明设备和验证设备)信任的可信第三方(trusted third party,ttp)服务器,可信第三方服务器能够与芯片制造商服务器共同生成attestation key,因此能够将用户的信任分散到多方,即至少一个可信第三方和芯片制造商。在这种情况下,任何单一一方(例如芯片制造商或任意一个可信第三方)无法生成或知道用户的attestation key,因此本技术实施例能够实现用户需要不完全信任芯片制造商。
229.图4是本技术实施例提供的一种远程证明系统的示意性架构图。如图4所示,该系统中包括第一服务器410、第二服务器420、第一设备430和验证设备440。示例性的,第一服
务器410可以为可信第三方服务器410,第二服务器420可以为芯片制造商服务器420,第一设备430可以为可信设备430。这里,可信设备430即为证明者的一个示例,验证设备440即为验证者的一个示例。在一些可能的实施例中,可信设备还可以称为可信芯片,本技术实施例对此不作限定。
230.下面,将以第一服务器410可以为可信第三方服务器410,第二服务器420可以为芯片制造商服务器420,第一设备430可以为可信设备430为例描述本技术实施例,但这并不对本技术实施例构成限定。
231.其中,芯片制造商服务器420和可信第三方服务器410可以分别作为可信设备430的attestation key的分发机构。芯片制造商服务器420和可信第三方服务器410各自拥有主公钥/密钥对,他们相对应的主公钥组成联合主公钥。在attestation key的远程分发过程中,可信第三方服务器410和芯片制造商服务器420可以分别利用其主密钥为可信设备430颁发部分attestation key,可信设备430对各部分attestation key进行可信聚合生成完整的attestation key。在远程证明协议中,验证设备440利用联合主公钥验证attestation key的有效性。
232.需要说明的是,在图4所示的系统中,可信第三方服务器410的数量可以为至少一个,例如可以为一个,两个,或者更多,本技术实施例对此不作限定。当可信第三方服务器410的数量为两个,或者更多时,该至少两个可信第三方服务器410分别拥有不同的主公钥/密钥对,并分别可以根据各自拥有的主密钥,产生部分attestation key,并发送给可信设备430。可信设备430可以根据该至少两个可信第三方服务器410分别发送的部分attestation key,和芯片制造商服务器420发送的部分attestation key,可信聚合生成完整的attestation key。另外,用于验证设备440进行远程证明的联合主公钥可以是根据该至少两个可信第三方服务器410的主公钥和芯片制造商服务器420的主公钥确定的。
233.因此,本技术实施例中,通过至少一个用户(即证明者和验证者)信任的可信第三方服务器与芯片制造商服务器共同生成attestation key,能够将用户的信任分散到多方,使得任何单一一方(例如芯片制造商或任意一个可信第三方)无法生成或知道用户的attestation key,因此本技术实施例能够实现用户在远程证明的过程中,无需完全信任芯片制造商。
234.应理解,在以下实施例中将主要基于远程证明系统中包括一个可信第三方服务器进行描述。当系统中包括两个及以上可信第三方服务器时,其具体实现可以参照系统中包括一个可信第三方服务器的相关描述,可能需要做一些简单的适配,但是也在本技术实施例的保护范围内。
235.图5示出了本技术提供的一种远程证明的方法500的示意性流程图。方法500可以应用于图4所示的系统中。如图5所示,方法500包括步骤510至550。
236.510,可信第三方服务器根据第一主密钥a-msk1,向可信设备430发送第一部分证明私钥attestation key。
237.示例性的,可信第三方服务器410可以拥有第一主公钥/密钥对(a-mpk1/a-msk1)。可信第三方服务器410可以根据a-msk1,生成第一部分attestation key,记为a-key1,并将a-key1发送给可信设备430。
238.520,芯片制造商服务器根据第二主密钥a-msk2,向可信设备430发送第二部分证
明私钥attestation key。
239.示例性的,芯片制造商服务器420可以拥有第二主公钥/密钥对(a-mpk2/a-msk2)。芯片制造商服务器420可以根据a-msk2,生成第二部分attestation key,记为a-key2,并将a-key2发送给可信设备440。
240.530,所述可信设备根据所述第一部分证明私钥和所述第二部分证明私钥,生成证明私钥。
241.示例性的,可信设备430接收到a-key1和a-key2之后,可以对a-key1和a-key2进行可信聚合,生成完整的attestation key,记为a-key。
242.540,所述可信设备根据所述证明私钥,生成匿名签名。
243.示例性的,可信设备430在获取a-key之后,远程认证模块可以根据该a-key对消息进行匿名签名,生成匿名签名。示例性的,该消息可以为从验证设备接收的随机挑战信息和从完整性度量模块获得的平台完整性度量值。
244.550,验证设备440根据联合主公钥,对所述匿名签名进行验证。
245.在一些可能的实现方式中,验证设备440可以从可信第三方服务器410(例如公开目录中)获取a-mpk1,从芯片制造商服务器420(例如公开目录中)获取a-mpk2,并根据a-mpk1和a-mpk2,生成联合主公钥a-mpk。
246.在一些可能的实现方式中,可信第三方服务器410或芯片制造商服务器420可以根据a-mpk1和a-mpk2,生成联合主公钥a-mpk,验证设备440可以从可信第三方服务器410或芯片制造商服务器420获取该联合主公钥a-mpk。验证设备440可以从可信第三方服务器410或芯片制造商服务器420(例如公开目录)获取该联合主公钥a-mpk。验证设备440在获取联合主公钥a-mpk之后,可以使用该联合主公钥a-mpk对获得的上述匿名签名进行验证。
247.因此,本技术实施例中,通过至少一个用户(即证明者和验证设备)信任的可信第三方服务器与芯片制造商服务器共同生成attestation key,能够将用户的信任分散到多方,使得任何单一一方(例如芯片制造商或任意一个可信第三方)无法生成或知道用户的attestation key,因此本技术实施例能够实现用户在远程证明的过程中,无需完全信任芯片制造商。
248.在一些可选的实施例中,可信第三方服务器410可以使用该可信第三方服务器410的用于身份认证的第一公/私钥对,芯片制造商服务器420使用该芯片制造商服务器420的用于身份认证的第二公/私钥对,可信设备430使用其背书钥(endorsement key),进行互相认证,并建立安全通道。其中,背书钥是一个公/私钥对,与可信设备是一一对应的,用于认证可信设备的身份。示例性的,该安全通道可以用于传输部分attestation key。
249.因此,本技术实施例通过建立可信第三方服务器410、芯片制造商服务器420和可信设备430之间的安全通道,能够有助于可信第三方服务器410、芯片制造商服务器420和可信设备430之间更加安全的进行数据传输。
250.作为示例,可信第三方服务器410的该用于身份认证的公/私钥可以为记为id-pk1/id-sk1,芯片制造商服务器420的该用于身份认证的公/私钥可以为记为id-pk2/id-sk2。在一些可能的实现方式中,在可信设备430的生产过程中,芯片制造商服务器420可以在该可信设备430中预置自己和可信第三方服务器的身份公钥,即id-pk1和id-pk2,以及可信设备430的背书钥。之后,可信设备430可以用背书钥,分别与可信第三方服务器410和芯
片制造商服务器420进行身份认证和密钥交换,建立各自的安全通道。
251.在一些实施例中,可信第三方服务器410和芯片制造商服务器420可以(例如通过协商)在已知二叉树(binary tree)上为可信设备430分配一个叶节点,其中该二叉树中的每个节点表示密钥材料。这样,可信第三方服务器410和芯片制造商服务器420可以分别根据该二叉树的根节点到该叶节点的路径上的所有节点的密钥材料,以及自身的主密钥,确定为该叶节点对应的可信设备430生成的部分attestation key。
252.示例性的,对于可信设备430,假设其id为其用户名,并且该可信设备430对应的叶节点到二叉树的根节点的路径为{u0,u1,

,u
l
},其中下标l表示该路径上的节点个数,为正整数。此时可信第三方服务器410和芯片制造商服务器420可以根据各自的主密钥(例如可信第三方服务器根据a-msk1,芯片制造商服务器420根据a-msk2),分别分发对(id,uj)
j=0

l
的签名给该可信设备420作为部分attestation key,其中,j正整数。可信设备430可以根据可信第三方服务器410发送的部分attestation key和芯片制造商服务器420发送的部分attestation key,生成attestation key,attestation key的大小为o(logn)。
253.可选的,当存在被撤销的可信设备时,可信第三方服务器410和/或芯片制造商服务器420可以根据完整子树方法(complete subtree method,sm)算法,确定二叉树中的有效节点。sm算法的输出cs(ru,bt)表示在撤销部分叶节点之后,二叉树中剩余的有效节点所构成的所有的子树的根节点。其中,bt表示该二叉树,ru表示在该二叉树中撤销的芯片的集合。在一些可能的实现方式中,可以统计在时间段t(或者周期t)中被撤销的叶节点,以及剩余的有效节点。
254.示例性的,图6示出了sm算法的一个例子。请参考图6,当撤销了二叉树中的叶节点1和叶节点3之后,该撤销的叶节点至其根节点的路径上的所有节点均为无效节点(例如图6中旁边标记有
“×”
的节点)。此时,该二叉树中的剩余的有效叶节点为叶节点2,叶节点4,叶节点5和叶节点6。对于图6中的二叉树而言,cs(ru,bt)包括图6中旁边标记有“√”节点,比如叶节点2,叶节点4和节点7。
255.在根据sm算法输出cs(ru,bt)之后,可以确定二叉树的撤销列表(revocation list,rl)。示例性的,可以确定在时间段t对应的撤销列表。其中,撤销列表中的每一项是对(t,u
′j)的签名。其中,u
′j∈{u
′1,u
′2,
…u′v},{u
′1,u
′2,
…u′v}为sm算法的输出,即cs(ru,bt),v表示sm算法输出的节点的个数,为正整数。
256.示例性的,可信第三方服务器410和芯片制造商服务器420可以根据各自的主密钥(例如可信第三方服务器根据a-msk1,芯片制造商服务器420根据a-msk2),分别生成对(t,u
′j)的部分签名。然后,可信第三方服务器410和/或芯片制造商服务器420可以根据可信第三方服务器410生成的对(t,u
′j)的部分签名和芯片制造商服务器420生成的对(t,u
′j)的部分签名,进行聚合生成完整的对(t,u
′j)的签名,从而生成撤销列表。在一些实施例中,可信第三方服务器410和/或芯片制造商服务器420可以公示该撤销列表,以使得二叉树中的各个叶节点对应的可信设备可以获取该撤销列表。
257.作为一种可能的情况,当可信设备430在时间段t内没有被撤销,则存在一个节点u,既属于该可信设备430对应的叶节点到该二叉树的根节点的路径上的一个节点,又同时属于该sm算法的输出cs(ru,bt),即u∈{u0,u1,

,u
l
}∩{u
′1,u
′2,
…u′v}。此时,可信设备430可以用零知识来证明其拥有对(id,u)的签名和对(t,u

)的签名,且满足u=u


258.另一种可能的情况,当可信设备430在时间段t内被撤销时,则必然在sm算法输出的cs(ru,bt)不包含该可信设备430对应的叶节点至其根节点的路径上的任一节点。此时,可信设备430不拥有对(t,u

)的签名。
259.因此,本技术提供了芯片撤销机制,可由可信第三方服务器与芯片制造商服务器共同生成撤销列表,从而共同完成芯片的撤销。
260.在一些实施例中,对(id,uj)
j=0

l
的签名,以及对(t,u
′j)的签名可以为bbs 签名;或者对(id,uj)
j=0

l
的签名,以及对(t,u
′j)的签名可以为lmpy(libert-mouhartem-peters-yung)签名,但是本技术实施例并不限于此。
261.下面,描述本技术实施例提供的两个具体的例子。其中,在示例一中以对(id,uj)
j=0

l
的签名,以及对(t,u
′j)的签名为bbs 签名为例进行描述,在示例二中以对(id,uj)
j=0

l
的签名,以及对(t,u
′j)的签名为lmpy 签名为例进行描述。
262.应注意,下面的例子仅仅是为了帮助本领域技术人员理解和实现本发明的实施例,而非限制本技术实施例的范围。本领域技术人员可以根据这里给出的例子进行等价变换或修改,这样的变换或修改仍然应落入本技术实施例的范围内。
263.示例一
264.为了便于理解,在描述示例一之前,首先介绍bbs 签名的相关算法的知识。bbs 签名的相关算法如下所示:
265.密钥生成函数keygen(1
λ
):选取双线性配对cp=(e:g1×
g2→gt
,p),其中g1,g2为阶是素数p的椭圆曲线群,g
t
为阶是素数p的整数乘法群。选取a,b,d

r g1和h

r g2,选取随机数ω

r z
p*
,并计算w=h
ω
。则公钥vk为(cp,a,b,d,h,w),私钥sk为ω。
266.签名函数sign(sk,m∈z
p*
):选取随机数x,s

r z
p*
,并计算a=(a
mbs
d)
1/(x ω)
。则对消息m的签名为σ:=(a,x,s)。
267.证明函数verify(vk,σ=(a,x,s),m):如果e(a,h
x
.w)=e(a
mbs
d,h)=e(a,h)m.e(b,h)s.e(d,h),则接受(即认为签名是正确的),否则拒绝(即认为签名是不正确的)。
268.需要说明的是,上述过程是针对单一签名数据m的构造过程。可以将上述构造过程扩展到多数据m1,m2,

,m
l
,即在本技术中,需要对两个消息进行bbs 签名,例如对(id,uj)进行bbs 签名,或对(t,u

)进行bbs 签名。
269.实际上,一个拥有对消息m的bbs 签名σ=(a,x,s)的用户可以用零知识证明来证明其知道一个bbs 签名,既不泄露m,也不泄露σ给验证者。
270.示例性的,假设对消息m的bbs 签名为σ=(a,x,s),让t=a.br,r

r z
p*
,可以进行如下推导:
271.e(t,h
x
.w)=e(t,h)
x
.e(t,w)
272.=e(a,h
x
.w).e(br,h
x
.w)
273.=e(a,h)m.e(b,h)s.e(d,h).e(b,h)
r.x
.e(b,w)r274.=e(a,h)m.e(b,h)
s r.x
.e(d,h).e(b,w)r275.所以,e(t,w)/e(d,h)=e(t,h)-x
.e(a,h)m.e(b,h)
s r.x
.e(b,w)r。
276.让k=s r.x,证明拥有(m,σ=(a,x,s))的零知识证明是:pok{(x,m,k,r):e(t,w)/e(d,h)=e(t,h)-x
.e(a,h)m.e(b,h)k.e(b,w)r}。
277.下面,描述示例一中的远程证明的方法,该方法包括初始化、attestation key分
发、芯片撤销和远程证明四个过程。下面,分别对这四个过程进行详细描述。
278.在初始化阶段,可信第三方服务器和芯片制造商服务器分别获取自己的用于身份认证的公/私钥对、主公钥/主密钥对,可信设备获取自己的背书钥。
279.示例性的,可信第三方服务器生成id-pk1/id-sk1,芯片制造商服务器生成id-pk2/id-sk2。
280.示例性的,可信第三方服务器可以设置主公钥/主密钥对为a-mpk1/a-msk1,芯片制造商服务器可以设置主公钥/主密钥对为a-mpk2/a-msk2。
281.作为一个示例,可信第三方服务器和芯片制造商服务器可以共同确定cp=(e:g1×
g2→gt
,p),其中g1,g2为阶是素数p的椭圆曲线群,g
t
为阶是素数p的整数乘法群。可信第三方服务器选取a1,a2,b,d

r g1,h

r g2,芯片制造商服务器选取a
’1,a
’2,b’,d
’←
r g1,h
’←
r g2,其中a1,a2,b,d,h,a
’1,a
’2,b’,d’,h’。然后,可信第三方服务器选取随机数(ω1,ω
’1←
r z
p*
),并计算芯片制造商服务器选取随机数(ω2,ω
’2←
r z
p*
),并计算之后,可信第三方服务器设置a-msk1=(ω1,ω
’1),芯片制造商服务器设置a-msk2=(ω2,ω
’2)。此时,联合主公钥a-mpk为mpk为
282.示例性的,可信设备可以自己生产背书钥,或者芯片制造商在生产可信设备时,将背书钥烧注在可信设备中,本技术实施例对此不作限定。
283.在attestation key分发阶段,可信第三方服务器和芯片制造商服务器分别向可信设备分发部分attestation key。
284.在一些实施例中,可信设备可以使用背书钥,可信第三方服务器使用id-pk1/id-sk1,进行互相认证以及密钥交换,建立可信设备与可信第三方服务器之间的安全通道。同时,可信设备可以使用背书钥,芯片制造商服务器使用id-pk2/id-sk2,进行互相认证以及密钥交换,建立可信设备与芯片制造商服务器之间的安全通道。示例性的,安全通道可以用于传输部分attestation key。
285.其中,通过密钥交换,可信第三方服务器或芯片制造商服务器可以获取加密部分attestation key的加密密钥。在一些可能的实现方式中,加密该部分attestation key的加密密钥可以根据可信设备的背书钥得到。
286.在一些实施例中,当可信设备(例如可以记为u)还没有注册过,则可信第三方服务器和芯片制造商服务器可以分配一个二叉树的叶节点给可信设备u,并赋予该可信设备u一个索引值indx∈z
p*
。此时,可以确定可信设备u的叶节点到根节点的路径,并可以表示为path(indx)。
287.对于可信设备u的叶节点到根节点的路径上的每个节点uj,即uj∈path(indx),可信第三方服务器和芯片制造商服务器可以合作生成对(u,uj)的bbs 签名。示例性的,u可以为可信设备的id。
288.下面示出了生成对(u,uj)的bbs 签名的一个示例。
289.首先,可信第三方服务器可以生成临时加法同态加密(additive homomorphic encryption)he

(),选取随机数x
j1

r z
p*
,计算并发送加密信息c1=he

(x
j1
ω1)给芯片制造商服务器。
290.然后,芯片制造商服务器选取随机数s
j2
,rj,x
j2
←rz
p*
,计算并发送,计算并发送给可信第三方服务器,其中,c2为加密信息。
291.然后,可信第三方服务器解密c2,选取随机数s
j1
←rz
p*
,并计算,并计算
292.然后,可信第三方服务器发送bbs 签名给可信设备,同时芯片制造商服务器发送给可信设备。
293.然后,可信设备计算和xj=x
j1
x
j2
,得到可信设备u的attestation key为即path(indx)中每个节点uj对应的(u,uj)的bbs 签名的集合。
294.这样,可信第三方服务器可以通过临时加法同态加密算法,允许在保证可信第三方服务器的秘密信息(即可信第三方服务器生成部分attestation key的过程相关信息,比如该部分attestation key,随机数等)的私密性的情况下,允许芯片制造商服务器在秘密信息上进行计算,从而得到相应的计算结果。
295.或者,在一些实施例中,可以由芯片制造商服务器根据a-msk2和临时加法同态加密算法,向所述可信第三服务器发送对所述(u
l
,uj)的加密信息c3。然后,可信第三方服务器根据加密信息c3和a-msk1生成的加密信息c4,芯片制造商服务器接收可信第三方服务器发送的加密信息c4,并解密加密信息c4,生成对(u
l
,uj)的bbs 签名。
296.这样,芯片制造商服务器可以通过临时加法同态加密算法,允许在保证芯片制造商服务器的秘密信息(即芯片制造商服务器生成部分attestation key的过程相关信息,比如该部分attestation key,随机数等)的私密性的情况下,允许可信第三方服务器在秘密信息上进行计算,从而得到相应的计算结果。
297.在芯片撤销阶段,可信第三方服务器和芯片制造商服务器运行r

cs(ru,bt)。对于每个uj∈r,可信第三方服务器和芯片制造商服务器交互生成一个对(t,uj)的bbs 签名(a’j
,s’j
,x’j
)。示例性的,可信第三方服务器可以根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的部分bbs 签名,芯片制造商服务器可以根据所述a-msk2,对于每个uj∈r,生成对(t,uj)的部分bbs 签名。然后,可信第三方服务器和所述芯片制造商服务器可以根据这两部分bbs 签名,确定时间段t的撤销列表rl
t
。示例性的,。示例性的,即该撤销列表包括每个uj的对(t,uj)的联合签名(a’j
,s’j
,x’j
)。具体的,生成(a’j
,s’j
,x’j
)的方式可以与上述的生成对(u,uj)的bbs 签名的方式类似,不再赘述。
298.在远程证明阶段,可信设备u可以用零知识来证明其知道(u,uj)的bbs 签名,以及对(t,uj)的bbs 签名。具体的过程可以如下所示。
299.首先,验证设备可以向可信设备u发送一个随机挑战信息chal。
300.然后,可信设备可以选取获取包含在sku中的一个对的bbs 签名(a,s,x),以及rl
t
中的对的bbs 签名(a’,s’,x’)。示例性的,可信第三方服务器或芯片制造商服务器可以公开发布撤销列表rl
t
,可信设备可以根据需要获取rl
t
中的对的bbs 签名(a’,s’,x’)。之后,可信设备进行如下计算:
301.选取r,r
’←
r z
p*
并计算t=a.br,t’=a’.b’r’;
302.计算对于chal和平台完整性度量值intm的nizk(non-interactive zero knowledge)签名ψ,如下公式所示:
[0303][0304]
回复¥=(t,t’,ψ)给验证设备。
[0305]
然后,验证设备使用联合主公钥a-mpk验证¥的合法性。
[0306]
因此,本技术实施例中,可信设备在获取证明私钥之后,可以确定一个既属于该可信设备对应的叶节点到该二叉树的根节点的路径上的一个节点,又同时属于sm算法的输出cs(ru,bt)中的节点,并从证明私钥中获取对的签名,以及从撤销列表中获取对的签名,进而根据所述对的签名和所述对的签名,确定对随机挑战信息和平台完整性度量值的零知识签名,以使得验证设备根据该零知识签名验证可信芯片的系统完整性。
[0307]
示例二
[0308]
为了便于理解,在描述示例二之前,首先介绍lmpy签名的相关算法的知识。lmpy签名方案会用到线性子空间的半适应非交互零知识证明(qa-nizkarguments for linear subspaces)。
[0309]
qa-nizk arguments for linear subspaces用以证明一个向量v=(v1,v2,

,vn)是一个矩阵m=(m
i,j
)
i∈[1,t],j∈[1,n]
)的行向量的一个线性组合。
[0310]
cp=(e:g1×
g2→gt
),其中g1,g2为阶是素数p的椭圆曲线群,g
t
为阶是素数p的整数乘法群。qa-nizk arguments for linear subspaces包括下述函数:
[0311]
密钥生成函数qa.keygen(cp,m):让m=(m
i,j
)
i∈[1,t],j∈[1,n]
∈g
1t
×n。选取h
←rg2和后门tk=(x1,

,xn)

r z
pn
。计算for j∈[1,n],for i∈[1,t]。该函数输出通用参考字串crs=({zi}
ti=1
,h,{hj}
nj=1
)∈g
1t
×g2n 1
和后门tk∈z
pn

[0312]
证明函数qa.prove(crs,v,{ωi}
ti=1
):让该函数输出一个证据证明v是m的行向量的一个线性组合。
[0313]
验证函数qa.verify(crs,v,π):如果则输出1,否则输出0。
[0314]
下面介绍lmpy签名的相关算法。
[0315]
密钥生成函数keygen(λ,l):选取cp=(e:g1×
g2→gt
,p),g

r g
1 and h

r g2。选取ω,a
←rz
p*
并设α=ga,ω=α
ω
。选取η=(η1,η2,


l
,w)

r g
1l 1
。对于g∈g1和身份矩阵i
l 1
,我们用g
il 1
表示一个(l 1)
×
(l 1)矩阵,其对角线元素为g而所有其它元素为让设置矩阵m∈g
1l 2
×g12l 4
为:
[0316][0317]
运行qa.keygen(cp,m),可以得到crs=({zi}
i=1..l 2
,h,{hj}
j=1..2l 4
)和tk∈z
p2l 4
。此时可以输出签名私钥sk=ω,公钥vk=(cp,g,α,h,η,ω,crs)。
[0318]
签名函数sign(sk,m=(m1,m2,

,m
l
)):选取s

r z
p*
,并计算σ1=g
ω

1m1
η
2m2

η
lml
w)s,σ2=gs,σ3=αs。设v=(σ1,σ
2m1

2m2


2ml
,σ2,σ
3m1

3m2


3ml
,σ3,ω)∈g
12l 4
。运行qa.prove(crs,v,(ω,s.m1,s.m2,

,s.m
l
,s))=π=z

(z
2m1
…zl 1mlzl 2
)s。输出σ=(σ1,σ2,σ3,π)。
[0319]
证明函数verify(vk,σ,m):如果证明函数verify(vk,σ,m):如果则输出1,否则输出0。
[0320]
下面,描述示例二中的远程证明方法,该方法包括初始化、attestation key分发、芯片撤销和远程证明四个过程。下面,分别对这四个过程进行详细描述。
[0321]
在初始化阶段,可信第三方服务器和芯片制造商服务器分别获取自己的用于身份认证的公/私钥对、主公钥/主密钥对,可信设备获取自己的背书钥。
[0322]
示例性的,可信第三方服务器生成id-pk1/id-sk1,芯片制造商服务器生成id-pk2/id-sk2。
[0323]
示例性的,可信第三方服务器可以设置主公钥/主密钥对为a-mpk1/a-msk1,芯片制造商服务器可以设置主公钥/主密钥对为a-mpk2/a-msk2。
[0324]
作为一个示例,可信第三方服务器和芯片制造商服务器可以共同确定cp=(e:g1×
g2→gt
,p),其中g1,g2为阶是素数p的椭圆曲线群,g
t
为阶是素数p的整数乘法群。可信第三方服务器选取b,g

r g1,h

r g2,芯片制造商服务器选取b’,g
’←
r g1,h
’←
r g2。之后,可信第三方服务器和芯片制造商服务器决定一个杂凑函数h:{0, 1}
*
→zp*
。然后,可信第三方服务器和芯片制造商服务器共同生成两套用于生成lmpy签名的公密钥对。生成公密钥对的过程如下:
[0325]
首先,可信第三方服务器和芯片制造商服务器共同选取η=(η1,η2,w)

r g
13
,η’=(η
’1,η
’2,w’)

r g
13

[0326]
然后,可信第三方服务器选取ω1,ω
’1,a1,a
’1←
r z
p*
,芯片制造商服务器选取ω2,ω
’2,a2,a
’2←
r z
p*
,并通过dh(diffie-hellman key exchange)计算和然后可信第三方服务器计算芯片制造商服务器计算算示例性的,可以由可信第三方服务器和/或芯片制造商服务器通过dh(diffie-hellman key exchange)来计算和
[0327]
对于lmpy签名方案,可信第三方服务器和/或芯片制造商服务器可以设l=2并设矩阵m和m’为:
[0328][0329][0330]
可信第三方服务器和芯片制造商服务器通过简单交互,共同运行qa.keygen(cp,
msk2,对于每个uj∈r,生成对(t,uj)的部分lmpy签名。然后,可信第三方服务器和所述芯片制造商服务器可以根据这两部分lmpy签名,确定时间段t的撤销列表rl
t
。示例性的,即该撤销列表包括每个uj的对(t,uj)的联合签名具体的,生成的方式与上述生成对(u,uj)的lmpy签名的方式类似,不再赘述。
[0343]
在远程证明阶段,可信设备u可以用零知识来证明其知道(u,uj)的lmpy签名,以及对(t,uj)的lmpy签名。具体的过程可以如下所示。
[0344]
首先,验证设备可以向可信设备u发送一个随机挑战信息chal。
[0345]
然后,可信设备可以选取获取包含在sku中的一个对的lmpy签名(σ1,σ2,σ3,π),以及rl
t
中的对的lmpy签名(σ
’1,σ
’2,σ
’3,π’)。示例性的,可信第三方服务器或芯片制造商服务器可以公开发布撤销列表rl
t
,可信设备可以根据需要获取rl
t
中的对的lmpy签名(σ
’1,σ
’2,σ
’3,π’)。之后,可信设备进行如下计算:
[0346]
选取s,s
’←
r z
p*
,并盲化上述两个lmpy签名如下:
[0347][0348][0349]
选取r1,r2,r
’1,r
’2←
r z
p*
,并进行如下计算:
[0350][0351]
计算对于chal和平台完整性度量值intm的nizk(non-interactive zero knowledge)签名ψ,如下公式所示:
[0352][0353]
回复给验证设备。
[0354]
然后,验者使用联合主公钥a-mpk验证¥的合法性。
[0355]
因此,本技术实施例中,可信设备在获取证明私钥之后,可以确定一个既属于该可信设备对应的叶节点到该二叉树的根节点的路径上的一个节点,又同时属于sm算法的输出cs(ru,bt)中的节点,并从证明私钥中获取对的签名,以及从撤销列表中获取对的签名,进而根据所述对的签名和所述对的签名,确定对随机挑战信息和平台完整性度量值的零知识签名,以使得验证设备根据该零知识签名验证可信芯片的系统完整性。
[0356]
需要说明的是,在远程证明的设备上,本技术实施例提供的方案可以以硬件芯片的形态实现,也可以以软件代码的形态实现,本技术实施例对此不作限定。
[0357]
本技术实施例还提供了一种远程证明的装置,请参见图7。示例性的,该远程证明的装置700可以为需要进行系统完整性证明的第一设备,例如可信设备。本技术实施例中,装置700可以包括接收单元710和生成单元720。
[0358]
接收单元710,用于接收来自第一服务器的第一部分证明私钥,其中,所述第一部分证明私钥是所述第一服务器根据第一主密钥a-msk1生成的;
[0359]
所述接收单元710还用于接收来自第二服务器的第二部分证明私钥,其中,所述第二部分证明私钥是所述第二服务器根据第二主密钥a-msk2生成的;
[0360]
生成单元720,用于根据所述第一部分证明私钥和所述第二部分证明私钥,生成证明私钥;
[0361]
所述生成单元720还用于所述第一设备根据所述证明私钥,生成匿名签名,其中,验证所述匿名签名的联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥a-mpk2确定的。
[0362]
可选的,所述第一部分证明私钥是所述第一服务器根据第一签名确定的,所述第一签名是所述第一服务器根据所述a-msk1,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的签名;
[0363]
所述第二部分证明私钥是所述第二服务器根据第二签名确定的,所述第二签名是所述第一服务器根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的签名;
[0364]
其中,{u0,u1,

,u
l
}表示所述第一设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径,uj表示所述路径上的第j个节点,u
l
表示所述第一设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数。
[0365]
可选的,还包括获取单元,用于获取时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名,其中,所述撤销列表是根据第三签名和第四签名确定的,所述第三签名是所述第一服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的签名,所述第四签名是所述第二服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的签名;
[0366]
其中,r

cs(ru,bt),其中,bt表示所述二叉树,ru表示在时间段t内,所述二叉树中撤销的芯片的集合,r表示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点。
[0367]
可选的,所述生成单元720具体用于:
[0368]
获取验证设备发送的随机挑战信息;
[0369]
确定节点包含在所述证明私钥中的对的签名,以及包含在所述撤销列表中的对的签名;
[0370]
根据所述对的签名和所述对的签名,确定对所述随机挑战信息和平台完整性度量值的零知识签名。
[0371]
可选的,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名。
[0372]
可选的,所述第二服务器为所述第一设备的芯片制造商服务器。
[0373]
可选的,还包括发送单元,用于向验证设备发送所述匿名签名。
[0374]
以上装置700中各模块或单元的功能和动作仅为示例性说明,装置700中各模块或单元可以用于执行上述方法中可信设备所执行的各动作或处理过程,具体可以参见前述实施例中关于这些内容的描述,此处不做赘述。
[0375]
本技术实施例还提供了一种远程证明的装置,请参见图8。示例性的,该远程证明
的装置800可以是为可信设备分发部分attestation key的第一服务器,例如可信第三方服务器。本技术实施例中,装置800可以包括生成单元810和发送单元820。
[0376]
生成单元810,用于根据第一主密钥a-msk1,生成第一部分证明私钥;
[0377]
发送单元820,用于向第一设备发送所述第一部分证明私钥,其中,所述第一部分证明私钥用于所述第一设备根据所述第一部分证明私钥和第二部分证明私钥生成证明私钥,所述第二部分证明私钥是所述第二服务器根据第二主密钥a-msk2生成的,所述证明私钥用于生成匿名签名,用于验证所述匿名签名的联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥a-mpk2确定的。
[0378]
可选的,生成单元还用于确定所述第一设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径{u0,u1,

,u
l
},uj表示所述路径上的第j个节点,u
l
表示所述第一设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数;
[0379]
根据所述a-msk1,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第一签名;
[0380]
所述发送单元具体用于将所述每个uj的对(u
l
,uj)的第一签名发送给所述第一设备,其中每个uj的对(u
l
,uj)的第一签名为所述第一部分证明私钥。
[0381]
可选的,所述发送单元820具体用于:
[0382]
所述a-msk1和临时加法同态加密算法,向第二服务器发送对所述(u
l
,uj)的加密信息c1;
[0383]
还包括接收单元,用于接收所述第二服务器发送的加密信息c2,其中,所述加密信息c2是所述第二服务器根据所述加密信息c1和所述a-msk1生成的;
[0384]
所述生成单元810具体用于解密所述加密信息c2,并根据所述加密信息c2,生成所述对(u
l
,uj)的第一签名。
[0385]
可选的,生成单元810还用于确定集合r,其中r

cs(ru,bt),其中,bt表示所述二叉树,ru表示在时间段t内,所述二叉树中撤销的芯片的集合,r表示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点;
[0386]
根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的第三签名;
[0387]
根据所述第三签名和第四签名,确定所述时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名,其中,所述第四签名是所述第二服务器根据所述a-msk2,对于每个uj∈r,生成对(t,uj)的签名。
[0388]
可选的,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名。
[0389]
以上装置800中各模块或单元的功能和动作仅为示例性说明,装置800中各模块或单元可以用于执行上述方法中可信第三方服务器所执行的各动作或处理过程,具体可以参见前述实施例中关于这些内容的描述,此处不做赘述。
[0390]
本技术实施例还提供了一种远程证明的装置,请参见图9。示例性的,该远程证明的装置900可以是为可信设备分发部分attestation key的第二服务器,例如芯片制造商服务器。本技术实施例中,装置900可以包括生成单元910和发送单元920。
[0391]
生成单元910用于根据第二主密钥a-msk2,生成第二部分证明私钥;
[0392]
发送单元920用于向第一设备发送所述第二部分证明私钥,其中,所述第二部分证明私钥用于所述第一设备根据第一部分证明私钥和所述第二部分证明私钥生成证明私钥,
所述第二部分证明私钥是所述第二服务器根据第二主密钥a-msk2生成的,所述证明私钥用于生成匿名签名,用于验证所述匿名签名的联合主公钥是根据所述a-msk1对应的第一主公钥a-mpk1和所述a-msk2对应的第二主公钥a-mpk2确定的。
[0393]
可选的,生成单元910还用于确定所述第一设备在二叉树中所在的叶子节点到所述二叉树中的根节点的路径{u0,u1,

,u
l
},uj表示所述路径上的第j个节点,u
l
表示所述第一设备所在的叶子节点,u0表示所述根节点,0≤j≤l,j和l均为正整数;
[0394]
根据所述a-msk2,对于每个uj∈{u0,u1,

,u
l
},生成对(u
l
,uj)的第二签名;
[0395]
所述发送单元920还用于将所述每个uj的对(u
l
,uj)的第二签名发送给所述第一设备,其中每个uj的对(u
l
,uj)的第二签名为所述第二部分证明私钥。
[0396]
可选的,所述发送单元920还用于根据所述a-msk2和临时加法同态加密算法,向所述第一商服务器发送对所述(u
l
,uj)的第一加密信息;
[0397]
还包括接收单元,用于接收所述第一服务器发送的第二加密信息,其中,所述第二加密信息是所述第一服务器根据所述第一加密信息和所述a-msk1生成的;
[0398]
生成单元910还用于解密所述第二加密信息,并根据所述第二加密信息,生成所述对(u
l
,uj)的第二签名。
[0399]
可选的,生成单元910还用于确定集合r,其中r

cs(ru,bt),其中,bt表示所述二叉树,ru表示在时间段t内,所述二叉树中撤销的芯片的集合,r表示在所述二叉树bt中撤销ru节点之后,剩余的有效节点所构成的所有的子树的根节点;
[0400]
根据所述a-msk2,对于每个uj∈r,生成对(t,uj)的第四签名;
[0401]
根据第三签名和所述第四签名,确定所述时间段t的撤销列表,所述撤销列表包括所述每个uj的对(t,uj)的联合签名,其中,所述第三签名是所述第一服务器根据所述a-msk1,对于每个uj∈r,生成对(t,uj)的签名。
[0402]
可选的,所述第一签名和所述第二签名为bbs 签名,或者所述第一签名和所述第二签名为lmpy签名。
[0403]
以上装置900中各模块或单元的功能和动作仅为示例性说明,装置900中各模块或单元可以用于执行上述方法中芯片制造商服务器所执行的各动作或处理过程,具体可以参见前述实施例中关于这些内容的描述,此处不做赘述。
[0404]
本技术实施例还提供了一种远程证明的装置,请参见图10。示例性的,该远程证明的装置1000可以是验证可信设备系统完整性的验证设备。本技术实施例中,装置1000可以包括接收单元1010和处理单元1020。
[0405]
接收单元1010,用于从可信设备接收匿名签名,其中,所述匿名签名是根据证明私钥生成的,所述证明私钥是根据第一服务器生成的部分证明私钥和第二服务器生成的部分证明私钥生成的;
[0406]
处理单元1020,用于根据联合主公钥,对所述匿名签名进行验证,其中,所述联合主公钥是根据所述第一服务器的第一主公钥a-mpk1和第二服务器的第二主公钥a-mpk2确定的。
[0407]
以上装置1000中各模块或单元的功能和动作仅为示例性说明,装置1000中各模块或单元可以用于执行上述方法中验证设备所执行的各动作或处理过程,具体可以参见前述实施例中关于这些内容的描述,此处不做赘述。
[0408]
需要说明的是,上述处理单元可以由处理器实现,接收单元或发送单元可以由通信接口实现。
[0409]
图11是本技术实施例的远程证明的装置1100的硬件结构示意图。图11所示的装置1100可以看成是一种计算机设备,例如可以为第一设备、第一服务器、第二服务器或验证设备。装置1100可以作为本技术实施例的远程证明的装置的一种实现方式。装置1100包括处理器1101、存储器1102和总线1104,还可以包括通信接口1103。其中,处理器1101、存储器1102和通信接口1103通过总线1104实现彼此之间的通信连接。
[0410]
处理器1101可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的远程证明的装置中的模块所需执行的功能,或者执行本技术方法实施例的远程证明的方法。处理器1101可能是一种集成电路芯片,具有信号的处理能力。
[0411]
在实现过程中,当装置1100为第一设备时,上述方法中由第一设备执行的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。当装置1100为第一服务器时,上述方法中由第一服务器执行的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。当装置1100为第二服务器时,上述方法中由第二服务器执行的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。当装置1100为验证设备时,上述方法中由验证设备执行的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。
[0412]
上述的处理器1101可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1102,处理器1101读取存储器1102中的信息,结合其硬件完成本技术实施例的远程证明的装置中包括的模块所需执行的功能,或者执行本技术方法实施例的远程证明的方法。
[0413]
存储器1102可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器1102可以存储操作系统以及其他应用程序。在通过软件或者固件来实现本技术实施例的远程证明的装置中包括的模块所需执行的功能,或者执行本技术方法实施例的远程证明的方法时,用于实现本技术实施例提供的技术方案的程序代码保存在存储器1102中,并由处理器1101来执行远程证明的装置中包括的模块所需执行的操作,或者执行本技术方法实施例提供的远程证明的方法。
[0414]
通信接口1103使用例如但不限于收发器一类的收发装置,来实现装置1100与其他设备或通信网络之间的通信。可以作为装置1100中的接收单元或者发送单元。
[0415]
总线1104可包括在装置1100各个部件(例如处理器1101、存储器1102和通信接口
1103)之间传送信息的通路。
[0416]
应注意,尽管图11所示的装置1100仅仅示出了处理器1101、存储器11021、通信接口1103以及总线1104,但是在具体实现过程中,本领域的技术人员应当明白,装置1100还包括实现正常运行所必须的其他器件,例如,根据具体需要,装置1100还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,装置1100也可仅仅包括实现本技术实施例所必须的器件,而不必包括图11中所示的全部器件。
[0417]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0418]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机程序,当其在计算机上运行时,使得该计算机执行上述方法实施例提供的方法。
[0419]
本技术实施例还提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述方法实施例提供的方法。
[0420]
本技术实施例还提供了一种远程证明的系统,包括上述第一设备和第二服务器。
[0421]
本技术实施例还提供了一种远程证明的系统,包括上述第一设备、第一服务器和第二服务器。
[0422]
本技术实施例还提供了一种远程证明的系统,包括上述第一设备、第一服务器、第二服务器和验证设备。
[0423]
应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0424]
应理解,本技术实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本技术实施例中对设备个数的特别限定,不能构成对本技术实施例的任何限制。
[0425]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0426]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0427]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0428]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0429]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0430]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0431]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献