用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备技术

技术编号:21455237 阅读:23 留言:0更新日期:2019-06-26 05:11
一种用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备,所述密钥生成方法包括:A.获取区块链节点本地存储的第一密钥,所述区块链节点的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于所述可信计算环境的密钥管理程序读取;C.将所述第三密钥存储至所述区块链节点本地。通过本发明专利技术提供的方案能够提高区块链节点的密钥的安全系数,降低密钥被盗风险,确保存储于区块链账本上的数据的安全性。

【技术实现步骤摘要】
用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备
本专利技术涉及区块链
,具体地涉及一种用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备。
技术介绍
区块链是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链技术包括以块结构存储数据,使用密码学保证传输和访问安全等,其能够实现数据一致性存储、反篡改、去中心的技术体系。根据现有的区块链系统,区块链由所有参加的区块链节点共同维护,每一个参与维护的区块链节点都可以获得一份区块链数据(可简称为数据)的完整拷贝并独立进行验证。具体地,每一个区块链节点都拥有一个节点密钥(可简称为密钥),当每一笔交易在一个区块链节点上执行时,该区块链节点会对该交易进行签名,签名使用的密钥即为该区块链节点的密钥。区块链节点对于交易的签名确认了交易在执行环节的可靠性。
技术实现思路
本专利技术的实施例提供了一种用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备。本专利技术实施例的第一方面提供一种用于区块链网络的密钥生成方法,包括:A.获取区块链节点本地存储的第一密钥,所述区块链节点的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于所述可信计算环境的密钥管理程序读取;C.将所述第三密钥存储至所述区块链节点本地。本实施例所述方案将区块链节点的密钥封装在安全的密钥数据文件中,能够确保密钥本身的安全性,提高区块链节点的密钥的安全系数,降低密钥被盗风险。具体地,在可信计算环境中使用第二密钥对区块链节点的密钥(也可称为第一密钥)进行加密处理,生成第三密钥并存储至所述区块链节点本地,由于所述第二密钥仅能被运行于所述可信计算环境的密钥管理程序读取,使得外界无法直接获得区块链节点的第一密钥,从而降低区块链节点被冒用的风险,提高第一密钥的安全系数。所述外界可以是除所述区块链节点外的第三方。本专利技术实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.获取区块链节点本地存储的第一密钥,所述区块链节点的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于所述可信计算环境的密钥管理程序读取;C.将所述第三密钥存储至所述区块链节点本地。本专利技术实施例还提供一种用于区块链网络的签名方法,包括:A.获取待签名的数据;B.获取区块链节点本地存储的第三密钥,所述区块链节点的计算环境包括可信计算环境,所述第三密钥是在所述可信计算环境中使用第二密钥对第一密钥加密处理生成的,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于所述可信计算环境的密钥管理程序读取;C.在所述可信计算环境中,使用所述第二密钥对所述第三密钥进行解密处理,以得到所述第一密钥;D.在所述可信计算环境中,使用所述第一密钥对所述待签名的数据进行签名。本实施例所述方案将使用密钥进行签名的运算逻辑运行在可信计算环境中,能够确保签名运算过程中的安全性,同时确保存储于区块链上的数据的安全性。具体地,对待签名的数据进行签名的操作是在可信计算环境中进行的,且用于对待签名的数据进行签名的区块链节点的密钥是预先被处理过的、仅能在所述可信计算环境中被使用的,降低区块链节点的密钥被盗取的风险,使得他人无法伪造区块链节点处理区块链上的数据,从而达到提高数据安全性的效果。进一步地,存储于所述区块链节点本地的实际是第三密钥,他人即使盗取所述第三密钥也没法使用。所述区块链节点在签名时,可以在可信计算环境中使用第二密钥解密第三密钥,以还原出第一密钥进行签名操作。本专利技术实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.获取待签名的数据;B.获取区块链节点本地存储的第三密钥,所述区块链节点的计算环境包括可信计算环境,所述第三密钥是在所述可信计算环境中使用第二密钥对第一密钥加密处理生成的,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于所述可信计算环境的密钥管理程序读取;C.在所述可信计算环境中,使用所述第二密钥对所述第三密钥进行解密处理,以得到所述第一密钥;D.在所述可信计算环境中,使用所述第一密钥对所述待签名的数据进行签名。本专利技术实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述方法的步骤。附图说明图1是本专利技术实施例的一种用于区块链网络的密钥生成方法的流程图;图2是本专利技术实施例的一个典型的应用场景的示意图;图3是本专利技术实施例的一种用于区块链网络的签名方法的流程图;图4是本专利技术实施例的另一个典型的应用场景的示意图。具体实施方式本申请专利技术人经过分析发现,现有的区块链系统中,缺乏对区块链节点的密钥的有效保护,严重影响区块链网络中数据的安全性。具体而言,现有区块链节点的密钥是明文存储在区块链节点的磁盘里的,在区块链节点服务启动时,从磁盘加载密钥到内存,然后每次交易时,使用密钥对交易进行签名。现有区块链节点的密钥是明文存储在区块链节点上的,对于密钥的保护主要依赖于操作系统的用户权限机制。但是,如果该区块链节点的根用户(root)的权限被盗取或泄漏,则不法分子可以轻易的获取到该区块链节点的密钥。一旦区块链节点的密钥被他人获取,也就意味着他人可以冒充正常的区块链节点执行交易,并使得错误的交易数据进入到区块链中。本专利技术实施例的第一方面提供一种用于区块链网络的密钥生成方法,包括:A.获取区块链节点本地存储的第一密钥,所述区块链节点的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于所述可信计算环境的密钥管理程序读取;C.将所述第三密钥存储至所述区块链节点本地。本实施例所述方案将区块链节点的密钥封装在安全的密钥数据文件中,能够确保密钥本身的安全性,提高区块链节点的密钥的安全系数,降低密钥被盗风险。具体地,在可信计算环境中使用第二密钥对区块链节点的密钥(也可称为第一密钥)进行加密处理,生成第三密钥并存储至所述区块链节点本地,由于所述第二密钥仅能被运行于所述可信计算环境的密钥管理程序读取,使得外界无法直接获得区块链节点的第一密钥,从而降低区块链节点被冒用的风险,提高第一密钥的安全系数。所述外界可以是除所述区块链节点外的第三方。为使本专利技术的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分可以包括一个或多个用于实现各个实施例中所本文档来自技高网...

【技术保护点】
1.一种用于区块链网络的密钥生成方法,其特征在于,包括:A.获取区块链节点本地存储的第一密钥,所述区块链节点的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于所述可信计算环境的密钥管理程序读取;C.将所述第三密钥存储至所述区块链节点本地。

【技术特征摘要】
1.一种用于区块链网络的密钥生成方法,其特征在于,包括:A.获取区块链节点本地存储的第一密钥,所述区块链节点的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于所述可信计算环境的密钥管理程序读取;C.将所述第三密钥存储至所述区块链节点本地。2.根据权利要求1所述的密钥生成方法,其特征在于,在执行所述步骤B之前,还包括:D.从BaaS平台下载所述密钥管理程序,所述BaaS平台用于存储所述密钥管理程序,并与所述区块链网络中的各个区块链节点相通信。3.根据权利要求2所述的密钥生成方法,其特征在于,在所述步骤D之后,所述步骤B之前,还包括:E.对所述密钥管理程序的签名进行验证,以确认所述密钥管理程序是由所述区块链网络中的组织签名的。4.根据权利要求2所述的密钥生成方法,其特征在于,所述步骤D进一步包括:D1.向所述BaaS平台发送请求信息,所述请求信息包含所述区块链节点的请求凭证,所述请求凭证与所述区块链节点一一对应并预先获取自所述BaaS平台;D2.接收响应于所述请求信息的反馈信息,所述反馈信息包含所述密钥管理程序。5.根据权利要求1至4中任一项所述的密钥生成方法,其特征在于,所述第二密钥是在所述可信计算环境内动态生成后,存储至所述受保护的内存中的。6.根据权利要求1至4中任一项所述的密钥生成方法,其特征在于,所述步骤C进一步包括:C1.将所述第三密钥替换所述第一密钥存储于所述区块链节点本地。7.一种计算设备,其特征在于,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.获取区块链节点本地存储的第一密钥,所述区块链节点的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于所述可信计算环境的密钥管理程序读取;C.将所述第三密钥存储至所述区块链节点本地。8.根据权利要求7所述的计算设备,其特征在于,在执行所述步骤B之前,所述计算设备还执行以下步骤:D.从BaaS平台下载所述密钥管理程序,所述BaaS平台用于存储所述密钥管理程序,并与所述区块链网络中的各个区块链节点相通信。9.根据权利要求8所述的计算设备,其特征在于,在所述步骤D之后,所述步骤B之前,所述计算设备还执行以下步骤:E.对所述密钥管理程序的签名进行验证,以确认所述密钥管理程序是由所述区块链网络中的组织签名的。10.根据权利要求8所述的计算设备,其特征在于,所述步骤D进一步包括:D1.向所述BaaS平台发送请求信息,所述请求信息包含所述区块链节点的请求凭证,所述请求凭证与所述区块链节点一一对应并预先获取自所述BaaS平台;D2.接收响应于所述请求信息的反馈信息,所述反馈信息包含所述密钥管理程序。11.根据权利要求7至10中任一项所述的计算设备,其特征在于,所述第二密钥是在所述可信计算环境内动态生成后,存储至所述受保护的内存中的。12.根据权利要求7至10中任一项所述的计算设备,其特征在于,所述步骤C进一步包括:C1.将所述第三密钥替换所述第一密钥存储于所述区块链节点本地。13.一种用于区块链网络的签名方法,其特征在于,包括:A...

【专利技术属性】
技术研发人员:史锋锋
申请(专利权)人:上海点融信息科技有限责任公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1