【技术实现步骤摘要】
共享集群密钥的方法及装置
本说明书一个或多个实施例涉及可验证计算
,尤其涉及一种共享集群密钥的方法及装置。
技术介绍
在相关技术中,针对各种场景下的隐私需求,一种方式是通过同态加密(Homomorphicencryption)和零知识证明(Zero-knowledgeproof)等加密技术实现隐私保护,但也随之带来了严重的性能损失。可信执行环境(TrustedExecutionEnvironment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失。
技术实现思路
有鉴于此,本说明书一个或多个实施例提供一种共享集群密钥的方法及装置,能够在链下环境内安全实现共享集群密钥的操作。为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方 ...
【技术保护点】
1.一种共享集群密钥的方法,包括:/n链下隐私计算集群中的任一节点获取所述链下隐私计算集群中其他节点发送的第一远程证明报告,所述第一远程证明报告由认证服务器对所述其他节点针对创建的第一链下可信执行环境产生的第一自荐信息进行验证后生成;/n所述任一节点获取对应于所述链下隐私计算集群的集群身份密钥,所述集群身份密钥在所述任一节点创建的第二链下可信执行环境内生成,在区块链节点与所述链下隐私计算集群中的各节点进行交互以部署或调用链下合约的过程中,所述集群身份密钥用于对交互数据进行加密解密和/或签名验签;/n所述任一节点在根据所述第一远程证明报告确定所述第一链下可信执行环境可信的情况 ...
【技术特征摘要】
1.一种共享集群密钥的方法,包括:
链下隐私计算集群中的任一节点获取所述链下隐私计算集群中其他节点发送的第一远程证明报告,所述第一远程证明报告由认证服务器对所述其他节点针对创建的第一链下可信执行环境产生的第一自荐信息进行验证后生成;
所述任一节点获取对应于所述链下隐私计算集群的集群身份密钥,所述集群身份密钥在所述任一节点创建的第二链下可信执行环境内生成,在区块链节点与所述链下隐私计算集群中的各节点进行交互以部署或调用链下合约的过程中,所述集群身份密钥用于对交互数据进行加密解密和/或签名验签;
所述任一节点在根据所述第一远程证明报告确定所述第一链下可信执行环境可信的情况下,向所述其他节点发送所述集群身份密钥和第二远程证明报告,在所述第二远程证明报告表明所述第二链下可信执行环境可信的情况下,所述集群身份密钥被所述其他节点认可,所述第二远程证明报告由认证服务器对所述任一节点针对所述第二链下可信执行环境产生的第二自荐信息进行验证后生成。
2.根据权利要求1所述的方法,所述任一节点根据所述第一远程证明报告确定所述第一链下可信执行环境可信的操作包括:
根据所述认证服务器的公钥对所述第一远程证明报告进行签名验证;
在签名验证通过且所述第一远程证明报告包含的远程认证结果为通过认证的情况下,从所述第一远程证明报告携带的所述第一自荐信息内提取出第一待检验哈希值,所述第一待检验哈希值为所述第一链下可信执行环境中预设信息的哈希值;
将预先获得的针对所述第一链下可信执行环境中预设信息的第一标准哈希值与所述第一待检验哈希值进行比较,并将比较结果一致作为确认所述第一链下可信执行环境可信的前提条件。
3.根据权利要求1所述的方法,所述任一节点在向所述其他节点发送所述集群身份密钥之前,还包括:
获取所述其他节点提供的第一节点身份信息,并对获取到的第一节点身份信息进行哈希计算以得到第二待校验哈希值,所述第一节点身份信息包含所述其他节点的节点身份公钥和所述其他节点的其他身份信息;
获取所述其他节点提供的第二标准哈希值,所述第二标准哈希值由所述其他节点在所述第一链下可信执行环境内生成自身的节点身份信息后对生成的节点身份信息进行哈希计算得到;
将所述第二待校验哈希值与所述第二标准哈希值进行比较,并在比较结果一致的情况下获取所述其他节点的节点身份信息中包含的节点身份公钥;
采用所述任一节点的节点身份私钥对所述集群身份密钥进行签名,并采用所述其他节点的节点身份公钥对签名后的集群身份密钥进行加密。
4.根据权利要求3所述的方法,还包括:
所述任一节点向所述其他节点提供第二节点身份信息,所述第二节点身份信息包含所述任一节点的节点身份公钥和所述任一节点的其他身份信息;
所述任一节点向所述其他节点提供第三标准哈希值,所述第三标准哈希值由所述任一节点在所述第二链下可信执行环境内生成自身的节点身份信息后对生成的节点身份信息进行哈希计算得到;
其中,在对所述第二节点身份信息进行哈希计算得到的第三待校验哈希值与所述第三标准哈希值一致的情况下,所述其他节点采用所述其他节点的节点身份私钥对接收到的集群身份密钥进行解密,以及采用所述任一节点的节点身份信息中包含的节点身份公钥验证所述集群身份密钥的签名,并在签名验证通过的情况下在所述第一链下可信执行环境内维护所述集群身份密钥。
5.根据权利要求1所述的方法,还包括:
在接收到被采用所述集群身份密钥中的集群身份公钥加密后的目标链下合约的情况下,在所述第二链下可信执行环境中通过所述集群身份密钥中的集群身份私钥解密所述目标链下合约并进行部署;
在区块链节点通过预言机机制对所述目标链下合约发起调用的情况下,在所述第二链下可信执行环境中执行所述目标链下合约,并通过所述预言机机制将执行结果反馈至所述区块链节点。
6.根据权利要求5所述的方法,所述任一节点在接收到加密后的所述目标链下合约之前,还包括:
响应于所述目标链下合约的部署方发起的挑战,向所述部署方提供所述第二远程证明报告;
其中,加密后的所述目标链下合约由所述部署方在根据所述第二远程证明报告确定所述第二链下可信执行环境可信的情况下发送。
7.根据权利要求5所述的方法,所述任一节点在通过所述预言机机制将执行结果反馈至所述区块链节点之前,还包括:
在所述第二链下可信执行环境内采用所述目标链下合约的合约身份密钥中的合约身份私钥对所述执行结果进行签名,签名后的所述执行结果在采用所述合约身份密钥中的合约身份公钥对所述执行结果进行签名验证且通过签名验证的情况下,被判定由所述目标链下合约生成。
8.根据权利要求7所述的方法,生成所述目标链下合约的合约身份密钥的操作包括:
在所述第二链下可信执行环境内采用所述链下隐私计算集群内各节点之间共用的密钥生成算法,基于所述集群身份密钥和所述目标链下合约的全局标识信息生成所述合约身份密钥;
其中,所述目标链下合约部署在所述链下隐私计算集群中的各个节点处。
9.根据权利要求5所述的方法,在区块链节点通过预言机机制对所述目标链下合约发起调用之前,所述方法还包括:
所述任一节点向所述目标链下合约的挑战方提供所述集群远程证明报告,所述集群远程证明报告由认证服务器对所述第二自荐信息进行验证后生成;
向所述挑战方提供部署于所述任一节点处的所述目标链下合约的待验证合约信息,所述待验证合约信息被所述任一节点在所述第二链下可信执行环境内采用所述集群身份密钥中的集群身份私钥进行签名,所述集群身份密钥中的集群身份私钥由所述任一节点维护在所述第二链下可信执行环境内;
所述待验证合约信息由所述挑战方在根据所述集群远程证明报告确定所述第二链下可信执行环境可信的情况下,采用所述集群身份密钥中的集群身份公钥对所述待验证合约信息进行签名验证,以及根据所述目标链下合约的合约信息对所述待验证合约信息进行合约信息验证,并在签名验证和合约信息验证通过的情况下,确定所述挑战方在通过区块链节点的预言机机制对所述目标链下合约发起调用时,所述目标链下合约由所述任一节点在所述第二链下可信执行环境中执行。
10.根据权利要求9所述的方法,所述集群远程证明报告携带的所述第二自荐信息内包含第四待检验哈希值,所述第四待检验哈希值为所述第二链下可信执行环境的预设信息的哈希值,所述第四待检验哈希值用于所述挑战方在根据所述认证服务器的公钥对所述集群远程证明报告进行签名验证并签名验证通过,且所述集群远程证明报告包含的远程认证结果为通过认证的情况下,与预先获得的针对所述第二链下可信执行环境中预设信息的第四标准哈希值进行比较,且比较结果一致被作为所述挑战方确认所述第二链下可信执行环境可信的前提条件。
11.根据权利要求9所述的方法,还包括:
所述任一节点向所述挑战方提供集群身份信息,所述集群身份信息中包含集群身份密钥中的集群身份公钥和所述任一节点的节点身份信息中除所述任一节点的节点身份公钥以外的其他身份信息,所述集群身份信息被所述挑战方进行哈希计算以得到第五待校验哈希值;
所述任一节点向所述挑战方提供第五标准哈希值,所述第五标准哈希值由所述任一节点在所述第二链下可信执行环境内生成所述集群身份信息后对所述集群身份信息进行哈希计算得到;
所述第五标准哈希值用于与所述第五待校验哈希值进行比较,且所述挑战方在比较结果一致的情况下获取所述集群身份信息中包含的所述集群身份公钥。
12.根据权利要求9所述的方法,所述挑战方在所述链下隐私计算集群中的每个节点均部署所述目标链下合约后发起挑战,且所发起的挑战由所述链下隐私计算集群的控制节点接收,以及转发至所述任一节点。
13.根据权利要求9所述的方法,还包括:
接收区块链节点通过预言机机制对所述目标链下合约发起的调用交易,所述调用交易被采用所述集群身份密钥中的集群身份公钥进行加密,所述调用交易由所述链下隐私计算集群的控制节点接收,并根据所述链下隐私计算集群的负载情况转发至所述任一节点;
在所述第二链下可信执行环境内采用所述集群身份密钥中的集群身份私钥对所述调用交易进行解密,以响应于解密后的调用交易执行所述目标链下合约。
14.一种共享集群密钥的方法,包括:
链下隐私计算集群中的任一节点向所述链下隐私计算集群中其他节点提供第一远程证明报告,所述第一远程证明报告由认证服务器对所述任一节点针对创建的第一链下可信执行环境产生的第一自荐信息进行验证后生成;
所述任一节点接收所述其他节点在根据所述第一远程证明报告确定所述第一链下可信执行环境可信的情况下发送的对应于所述链下隐私计算集群的集群身份密钥和第二远程证明报告,所述集群身份密钥在所述其他节点创建的第二链下可信执行环境内生成,在区块链节点与所述链下隐私计算集群中的各节点进行交互以部署或调用链下合约的过程中,所述集群身份密钥用于对交互数据进行加密解密和/或签名验签,所述第二远程证明报告由认证服务器对所述其他节点针对所述第二链下可信执行环境产生的第二自荐信息进行验证后生成;
所述任一节点在确定出所述第二远程证明报告表明所述第二链下可信执行环境可信的情况下认可所述集群身份密钥。
15.根据权利要求14所述的方法,所述任一节点根据所述第二远程证明报告确定所述第二链下可信执行环境可信的操作包括:
根据所述认证服务器的公钥对所述第二远程证明报告进行签名验证;
在签名验证通过且所述第二远程证明报告包含的远程认证结果为通过认证的情况下,从所述第二远程证明报告携带的所述第二自荐信息内提取出第一待检验哈希值,所述第一待检验哈希值为所述第二链下可信执行环境中预设信息的哈希值;
将预先获得的针对所述第二链下可信执行环境中预设信息的第一标准哈希值与所述第一待检验哈希值进行比较,并将比较结果一致作为确认所述第二链下可信执行环境可信的前提条件。
16.根据权利要求14所述的方法,还包括:
所述任一节点向所述其他节点提供第一节点身份信息,所述第一节点身份信息包含所述任一节点的节点身份公钥和所述任一节点的其他身份信息,所述第一节点身份信息被所述其他节点进行哈希计算以得到第二待校验哈希值;
所述任一节点向所述其他节点提供第二标准哈希值,所述第二标准哈希值由所述任一节点在所述第一链下可信执行环境内生成自身的节点身份信息后对生成的节点身份信息进行哈希计算得到;
在所述第二标准哈希值与所述第二待校验哈希值一致的情况下,所述集群身份密钥被所述其他节点采用所述其他节点的节点身份私钥进行签名,并采用所述任一节点的节点身份公钥对签名后的集群身份密钥进行加密。
17.根据权利要求16所述的方法,还包括:
所述任一节点获取所述其他节点提供的第二节点身份信息,并对所述第二节点身份信息进行哈希计算得到第三待校验哈希值,所述第二节点身份信息包含所述其他节点的节点身份公钥和所述其他节点的其他身份信息;
所述任一节点获取所述其他节点提供的第三标准哈希值,所述第三标准哈希值由所述其他节点在所述第二链下可信执行环境内生成自身的节点身份信息后对生成的节点身份信息进行哈希计算得到;
所述任一节点在所述第三待校验哈希值和所述第三标准哈希值一致的情况下,采用所述任一节点的节点身份私钥对接收到的集群身份密钥进行解密,以及采用所述其他节点的节点身份信息中包含的节点身份公钥验证所述集群身份密钥的签名,并在签名验证通过的情况下在所述第一链下可信执行环境内维护所述集群身份密钥。
18.根据权利要求14所述的方法,还包括:
在接收到被采用所述集群身份密钥中的集群身份公钥加密后的目标链下合约的情况下,在所述第一链下可信执行环境中通过所述集群身份密钥中的集群身份私钥解密所述目标链下合约并进行部署;
在区块链节点通过预言机机制对所述目标链下合约发起调用的情况下,在所述第一链下可信执行环境中执行所述目标链下合约,并通过所述预言机机制将执行结果反馈至所述区块链节点。
19.根据权利要求18所述的方法,所述任一节点在接收到加密后的所述目标链下合约之前,还包括:
响应于所述目标链下合约的部署方发起的挑战,向所述部署方提供所述第一远程证明报告;
其中,加密后的所述目标链下合约由所述部署方在根据所述第一远程证明报告确定所述第一链下可信执行环境可信的情况下发送。
20.根据权利要求18所述的方法,所述任一节点在通过所述预言机机制将执行结果反馈至所述区块链节点之前,还包括:
在所述第一链下可信执行环境内采用所述目标链下合约的合约身份密钥中的合约身份私钥对所述执行结果进行签名,签名后的所述执行结果在采用所述合约身份密钥中的合约身份公钥对所述执行结果进行签名验证且通过签名验证的情况下,被判定由所述目标链下合约生成。
21.根据权利要求20所述的方法,所述任一节点生成所述目标链下合约的合约身份密钥的操作包括:
在所述第一链下可信执行环境内采用所述链下隐私计算集群内各节点之间共用的密钥生成算法,基于所述集群身份密钥和所述目标链下合约的全局标识信息生成所述合约身份密钥;
其中,所述目标链下合约部署在所述链下隐私计算集群中的各个节点处。
22.根据权利要求18所述的方法,在区块链节点通过预言机机制对所述目标链下合约发起调用之前,所述方法还包括:
所述任一节点向所述目标链下合约的挑战方提供所述集群远程证明报告,所述集群远程证明报告由认证服务器对所述第一自荐信息进行验证后生成;
向所述挑战方提供部署于所述任一节点处的所述目标链下合约的待验证合约信息,所述待验证合约信息被所述任一节点在所述第一链下可信执行环境内采用所述集群身份密钥中的集群身份私钥进行签名;
所述待验证合约信息由所述挑战方在根据所述集群远程证明报告确定所述第一链下可信执行环境可信的情况下,采用所述集群身份密钥中的集群身份公钥对所述待验证合约信息进行签名验证,以及根据所述目标链下合约的合约信息对所述待验证合约信息进行合约信息验证,并在签名验证和合约信息验证通过的情况下,确定所述挑战方在通过区块链节点的预言机机制对所述目标链下合约发起调用时,所述目标链下合约由所述任一节点在所述第一链下可信执行环境中执行。
23.根据权利要求22所述的方法,所述集群远程证明报告携带的所述第一自荐信息内包含第四待检验哈希值,所述第四待检验哈希值为所述第一链下可信执行环境的预设信息的哈希值,所述第四待检验哈希值用于所述挑战方在根据所述认证服务器的公钥对所述集群远程证明报告进行签名验证并签名验证通过,且所述集群远程证明报告包含的远程认证结果为通过认证的情况下,与预先获得的针对所述第一链下可信执行环境中预设信息的第四标准哈希值进行比较,且比较结果一致被作为所述挑战方确认所述第一链下可信执行环境可信的前提条件。
24.根据权利要求22所述的方法,还包括:
所述任一节点向所述挑战方提供集群身份信息,所述集群身份信息中包含集群身份密钥中的集群身份公钥和所述任一节点的节点身份信息中除所述任一节点的节点身份公钥以外的其他身份信息,所述集群身份信息被所述挑战方进行哈希计算以得到第五待校验哈希值;
所述任一节点向所述挑战方提供第五标准哈希值,所述第五标准哈希值由所述任一节点在所述第一链下可信执行环境内生成所述集群身份信息后对所述集群身份信息进行哈希计算得到;
所述第五标准哈希值用于与所述第五待校验哈希值进行比较,且所述挑战方在比较结果一致的情况下获取所述集群身份信息中包含的所述集群身份公钥。
25.根据权利要求22所述的方法,所述挑战方在所述链下隐私计算集群中的每个节点均部署所述目标链下合约后发起挑战,且所发起的挑战由所述链下隐私计算集群的控制节点接收,以及转发至所述任一节点。
26.根据权利要求22所述的方法,还包括:
接收区块链节点通过预言机机制对所述目标链下合约发起的调用交易,所述调用交易被采用所述集群身份密钥中的集群身份公钥进行加密,所述调用交易由所述链下隐私计算集群的控制节点接收,并根据所述链下隐私计算集群的负载情况转发至所述任一节点;
在所述第一链下可信执行环境内采用所述集群身份密钥中的集群身份私钥对所述调用交易进行解密,以响应于解密后的调用交易执行所述目标链下合约。
27.一种共享集群密钥的方法,包括:
隐私计算集群中的任一节点获取所述隐私计算集群中其他节点发送的第一远程证明报告,所述第一远程证明报告由认证服务器对所述其他节点针对创建的第一可信执行环境产生的第一自荐信息进行验证后生成;
所述任一节点获取对应于所述隐私计算集群的集群身份密钥,所述集群身份密钥在所述任一节点创建的第二可信执行环境内生成,在客户端与所述隐私计算集群中的各节点进行交互以部署或调用智能合约的过程中,所述集群身份密钥用于对交互数据进行加密解密和/或签名验签;
所述任一节点在根据所述第一远程证明报告确定所述第一可信执行环境可信的情况下,向所述其他节点发送所述集群身份密钥和第二远程证明报告,在所述第二远程证明报告表明所述第二可信执行环境可信的情况下,所述集群身份密钥被所述其他节点认可,所述第二远程证明报告由认证服务器对所述任一节点针对所述第二可信执行环境产生的第二自荐信息进行验证后生成。
28.根据权利要求27所述的方法,所述任一节点根据所述第一远程证明报告确定所述第一可信执行环境可信的操作包括:
根据所述认证服务器的公钥对所述第一远程证明报告进行签名验证;
在签名验证通过且所述第一远程证明报告包含的远程认证结果为通过认证的情况下,从所述第一远程证明报告携带的所述第一自荐信息内提取出第一待检验哈希值,所述第一待检验哈希值为所述第一可信执行环境中预设信息的哈希值;
将预先获得的针对所述第一可信执行环境中预设信息的第一标准哈希值与所述第一待检验哈希值进行比较,并将比较结果一致作为确认所述第一可信执行环境可信的前提条件。
29.根据权利要求27所述的方法,所述任一节点在向所述其他节点发送所述集群身份密钥之前,还包括:<...
【专利技术属性】
技术研发人员:吴因佥,邱鸿霖,吴行行,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。