CN113869901A - 密钥生成方法、装置、计算机可读存储介质及计算机设备 - Google Patents
密钥生成方法、装置、计算机可读存储介质及计算机设备 Download PDFInfo
- Publication number
- CN113869901A CN113869901A CN202111457968.3A CN202111457968A CN113869901A CN 113869901 A CN113869901 A CN 113869901A CN 202111457968 A CN202111457968 A CN 202111457968A CN 113869901 A CN113869901 A CN 113869901A
- Authority
- CN
- China
- Prior art keywords
- key generation
- key
- block
- generation request
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
Abstract
本申请公开了一种密钥生成方法、装置、计算机可读存储介质及计算机设备,方法通过接收密钥生成请求,密钥生成请求包括预设的用户信息;将密钥生成请求发送至区块链中进行存证;获取区块链中关于密钥生成请求的区块数据,区块数据包括密钥生成请求;基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥;向预设用户信息对应的用户发送目标密钥。以此,通过将密钥生成过程运行在可信执行环境中,并且将密钥生成请求在区块链中进行存证,使得密钥生成过程不受外部因素干扰且生成过程受到监督,从而大大提升了密钥生成过程的安全性。
Description
技术领域
本申请涉及网络安全技术领域,具体涉及一种密钥生成方法、装置、计算机可读存储介质及计算机设备。
背景技术
随着互联网技术的不断发展,人们的生活已经与互联网密不可分。由于互联网已经深入到人们生活的方方面面,网络数据传输的安全也就显得极为重要。为了保证网络数据传输的安全性,人们往往会对需要经过互联网传输的数据进行加密处理。
其中,对数据进行加密的方法包括对称加密算法和非对称加密算法,非对称算法以其可以对数据来源进行数字签名以供数据接收者验证数据来源身份的优势,受到更广泛的使用。
一般情况下,非对称加密算法的密钥可以由用户本地生成和保管,但在一些情况下,例如基于身份的加密/签名的情况下,由密钥生成中心(Key Generation Center,KGC)为用户生成其对应的密钥。目前,密钥生成中心为用户生成密钥的过程安全性较差。
发明内容
本申请实施例提供一种密钥生成方法、装置、计算机可读存储介质及计算机设备,该密钥生成方法可以有效提升密钥生成过程的安全性。
本申请第一方面提供一种密钥生成方法,应用于可信节点,方法包括:
接收密钥生成请求,所述密钥生成请求包括预设的用户信息;
将所述密钥生成请求发送至区块链中进行存证;
获取区块链中关于所述密钥生成请求的区块数据,所述区块数据包括所述密钥生成请求;
基于从所述区块数据中提取的密钥生成请求生成所述用户信息对应的目标密钥;
向所述预设用户信息对应的用户发送所述目标密钥。
相应的,本申请第二方面提供一种密钥生成装置,应用于可信节点,装置包括:
接收单元,用于接收密钥生成请求,所述密钥生成请求包括预设的用户信息;
第一发送单元,用于将所述密钥生成请求发送至区块链中进行存证;
获取单元,用于获取区块链中关于所述密钥生成请求的区块数据,所述区块数据包括所述密钥生成请求;
生成单元,用于基于从所述区块数据中提取的密钥生成请求生成所述用户信息对应的目标密钥;
第二发送单元,用于向所述预设用户信息对应的用户发送所述目标密钥。
在一些实施例中,所述生成单元,包括:
验证子单元,用于对所述区块数据进行数据验证;
第一生成子单元,用于当所述数据验证的结果合格时,基于从所述区块数据中提取的密钥生成请求生成所述用户信息对应的目标密钥。
在一些实施例中,所述验证子单元,包括:
第一获取模块,用于获取所述区块数据中包含的第一公钥;
验证模块,用于采用所述第一公钥对所述区块数据中的区块签名进行验证;
确定模块,用于当所述区块签名的验证结果合格时,确定所述区块数据的数据验证结果合格。
在一些实施例中,所述生成子单元,包括:
第二获取模块,用于获取预设密钥生成算法;
处理模块,用于调用所述预设密钥生成算法对所述用户信息进行处理,得到所述用户信息对应的目标密钥。
在一些实施例中,本申请提供的密钥生成装置,还包括:
接收子单元,用于接收远程证明请求,所述远程证明请求包括预设字符串;
第二生成子单元,用于生成根据所述预设字符串以及所述可信节点的属性信息生成远程证明;
第一发送子单元,用于向所述远程证明请求的发送方发送所述远程证明,以便所述发送方根据所述远程证明对所述可信节点的执行环境进行验证。
在一些实施例中,本申请提供的密钥生成装置,还包括:
第三生成子单元,用于生成包含所述远程证明的第一区块生成请求;
第二发送子单元,用于向区块链中发送所述第一区块生成请求,以在区块链中对所述远程证明进行存证。
在一些实施例中,所述第一发送单元,包括:
第四生成子单元,用于生成包含所述密钥生成请求的第二区块生成请求;
第三发送子单元,用于向区块链发送所述第二区块生成请求,以及向区块链的事件中心发送区块生成事件通知获取请求;
所述获取单元还用于:
接收区块链的事件中心返回的区块生成事件通知;
从所述区块生成事件通知中获取所述密钥生成请求对应的区块数据。
在一些实施例中,所述密钥生成请求中还包括第二公钥,第二发送单元,包括:
加密子单元,用于采用所述第二公钥对所述目标密钥进行加密,得到密文数据;
第四发送子单元,用于向所述预设用户信息对应的用户发送所述密文数据。
本申请第三方面还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请第一方面所提供的密钥生成方法中的步骤。
本申请第四方面提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请第一方面所提供的密钥生成方法中的步骤。
本申请第五方面提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现第一方面所提供的密钥生成方法中的步骤。
本申请实施例提供的密钥生成方法,通过接收密钥生成请求,密钥生成请求包括预设的用户信息;将密钥生成请求发送至区块链中进行存证;获取区块链中关于密钥生成请求的区块数据,区块数据包括密钥生成请求;基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥;向预设用户信息对应的用户发送目标密钥。
以此,本申请提供的密钥生成方法,在接收到用户的密钥生成请求时,将该请求发送至区块链进行存证,并采用经区块链存证后的请求数据生成用户密钥。从而保证密钥生成事件作为交易被记录在区块链的账本上,用户可以根据区块链存证对密钥生成行为进行监督。而且,由于密钥生成过程运行在可信节点上,使得生成过程运行在可信执行环境中,从硬件上避免了密钥生成过程中可能受到的干扰,从而提升了密钥生成过程的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请中密钥生成的一个场景示意图;
图2是本申请提供的密钥生成方法的流程示意图;
图3是本申请提供的区块数据结构的一个示意图;
图4是本申请提供的密钥生成方法的另一流程示意图;
图5是本申请提供的密钥生成系统的架构示意图;
图6是本申请中远程证明处理过程的交互时序图;
图7是本申请中密钥生成过程的交互时序图;
图8是本申请提供的密钥生成装置的结构示意图;
图9是本申请提供的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种密钥生成方法、装置、计算机可读存储介质及终端。其中,该密钥生成方法可以使用于密钥生成装置中。该密钥生成装置可以集成在计算机设备中,该计算机设备可以是终端也可以是服务器。其中,终端可以为手机、平板电脑、笔记本电脑、智能电视、穿戴式智能设备、个人计算机(PC,Personal Computer)以及车载终端等设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,服务器可以为区块链中的节点。
请参阅图1,为本申请提供的密钥生成方法的一场景示意图。如图所示,计算机设备A接收密钥生成请求,密钥生成请求包括预设的用户信息;将密钥生成请求发送至区块链中进行存证;获取区块链中关于密钥生成请求的区块数据,区块数据包括密钥生成请求;基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥;向预设用户信息对应的用户发送目标密钥。
需要说明的是,图1所示的密钥生成场景示意图仅仅是一个示例,本申请实施例描述的密钥生成场景是为了更加清楚地说明本申请的技术方案,并不构成对于本申请提供的技术方案的限定。本领域普通技术人员可知,随着密钥生成场景演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
基于上述实施场景以下分别进行详细说明。
在相关技术中,在一些非对称密钥生成场景中,需要通过密钥生成中心(KeyGeneration Center,KGC)为用户生成密钥。例如,基于身份的加密(Identity BasedEncryption,IBE)、基于属性的加密(Attribute based Encryption,ABE)以及门限加密等场景中,便需要有一个中心化的KGC来为每个用户生成其对应的密钥(包括私钥或者公私钥对)。然而,目前在这些场景下,由于所有参与者的密钥都是由KGC来生成以及下发,KGC拥有整个算法的主密钥以及拥有使用主密钥为其他参与者分发用户密钥的权限,使得KGC拥有的权限过大,导致用户密钥生成过程安全性不高。为解决上述场景中KGC权限过大导致密钥生成过程安全性较差的问题,本申请提供一种密钥生成方法,下面对本申请提供的密钥生成方法作进一步详细描述。
本申请实施例将从密钥生成装置的角度进行描述,该密钥生成装置可以集成在计算机设备中。其中,计算机设备可以是终端也可以是服务器。其中,终端可以为手机、平板电脑、笔记本电脑、智能电视、穿戴式智能设备、个人计算机(PC,Personal Computer)以及车载终端等设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。如图2所示,为本申请提供的密钥生成方法的流程示意图,该方法包括:
步骤101,接收密钥生成请求。
其中,本申请实施例提供的密钥生成方法可以运行于可信节点中,即本申请提供的密钥生成方法可以是运行在可信执行环境(Trusted Execution Environment,TEE)中的。可信执行环境是基于硬件的安全计算平台,其具有固有的签注密钥用于保护数据隐私和认证数据完整性、来源可靠性等;可信执行环境与外部有存储器屏障,即外部(包括操作系统)没有可信执行环境域内存储空间的访问权限,使得可信执行环境域内的数据、程序逻辑在没有主动输出的情况下无法被外部环境窥探。
本申请实施例中,密钥生成装置可以运行于可信节点,即在可信执行环境中执行密钥生成的步骤,即密钥生成装置在可信执行环境中接收用户发送的密钥生成请求。其中,密钥生成请求中包含用户的用户信息。用户信息可以为用户的身份信息,如用户身份标识(Identity Document,ID),也可以为用户的属性信息,例如医生、护士和主任等。
其中,用户在向密钥生成装置发送密钥生成请求之前,还可以先对密钥生成装置运行的可信执行环境进行远程认证,以确保密钥生成的逻辑没有收到篡改。
即在一些实施例中,本申请提供的密钥生成方法,还包括:
1、接收远程证明请求,远程证明请求包括预设字符串;
2、根据预设字符串以及可信节点的属性信息生成远程证明;
3、向远程证明请求的发送方发送远程证明,以便发送方根据远程证明对可信节点的执行环境进行验证。
其中,在本申请实施例中,用户可以向密钥生成装置发送远程证明请求,该远程证明请求可以附带一个预设的字符串,该预设字符串也可以是随机生成的随机字符串。密钥生成装置接收到用户发送的远程证明请求以及其携带的预设字符串后,可以根据预设字符串以及可信节点的属性信息生成远程证明。生成远程证明后,密钥生成装置将远程证明发送给远程证明请求的发送方,即将生成的远程证明发送给用户。用户在接收到远程证明后,可以对该远程证明进行数据验证,以验证可信节点的执行环境是否确实是可信执行环境。
在一些实施例中,本申请提供的密钥生成方法,还可以包括:
A、生成包含远程证明的第一区块生成请求;
B、向区块链中发送第一区块生成请求,以在区块链中对远程证明进行存证。
在本申请实施例中,密钥生成装置在生成远程证明后,还可以将生成的远程证明发送到区块链中进行存证。具体地,密钥生成装置可以根据生成的远程证明生成区块生成请求,将包含远程证明的区块生成请求发送到区块链中,区块链在接收到包含远程证明的区块生成请求后便可以通过共识将该远程证明写入区块,从而生成远程证明对应的区块,实现对远程证明的存证。如此,其他用户在发起密钥生成请求前需要对密钥生成装置运行的可信执行环境进行远程证明时,可以直接从区块链中下载对应的远程证明进行验证,从而可以提升密钥生成效率。
其中在一些实施例中,密钥生成请求中还可以包括用户自行生成的公私钥对中的公钥,以便密钥生成装置在生成用户请求生成的密钥后,对该密钥进行加密发送给用户。
步骤102,将密钥生成请求发送至区块链中进行存证。
其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
其中,在本申请实施例中,密钥生成装置在接收到用户发送的密钥生成请求后,可以不直接根据用户发送的密钥生成请求生成密钥。而是先将用户发送的密钥生成请求发送至区块链中进行存证。如此,每个用户发送给密钥生成装置的密钥生成请求都会在区块链中实现存证,其他用户可以查阅并进行监督。
具体地,区块链在接收到密钥生成装置发送的密钥生成请求后,触发用户私钥生成合约,将该密钥生成请求通过共识生成区块,存入区块链。
步骤103,获取区块链中关于密钥生成请求的区块数据。
其中,将密钥生成请求在区块链中存证后,接收区块链返回的关于密钥生成请求的区块数据,并进一步基于区块数据中的密钥生成请求生成对应的密钥。
在一些实施例中,将密钥生成请求发送至区块链中进行存证,包括:
1、生成包含密钥生成请求的第二区块生成请求;
2、向区块链发送第二区块生成请求,以及向区块链的事件中心发送区块生成事件通知获取请求;
获取区块链中关于密钥生成请求的区块数据,包括:
3、接收区块链的事件中心返回的区块生成事件通知;
4、从区块生成事件通知中获取密钥生成请求对应的区块数据。
在本申请实施例中,密钥生成装置可以向区块链发送包含密钥生成请求的区块生成请求,区块生成请求触发区块链中的密钥生成合约,然后将密钥生成请求通过共识存入区块。密钥生成装置还可以向区块链中的事件中心发送区块生成事件通知获取请求,使得当区块链的事件中心检测到有区块生成事件时,向密钥生成装置发送区块生成事件对应的通知消息,该通知消息里可以包括由密钥生成请求生成的区块数据,密钥生成装置可以从区块生成事件通知中提取出密钥生成请求对应的区块数据。
其中,密钥生成合约是一种智能合约,智能合约是计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易。 例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约, 还可以执行对接收的信息进行处理的合约。
在区块链中生成区块后,新生成的区块在区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。在本申请实施例中,新生成的区块中记录了密钥生成请求对应的数据。
区块数据包括一定的区块结构,如图3所示,为本申请提供的区块数据的区块结构的一个示意图。每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。其中,在本申请实施例中,区块结构中的数据记载了密钥生成请求数据。
步骤104,基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥。
其中,密钥生成装置在获取到区块链返回的区块数据后,从区块数据中提取出密钥生成请求,并根据该密钥生成请求中的用户信息生成相应的目标密钥。
其中,在一些实施例中,基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥,包括:
1、对区块数据进行数据验证;
2、当数据验证的结果合格时,基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥。
其中,在本申请实施例中,当密钥生成装置接收到区块链返回的区块数据后,可以进一步对获取到的区块数据进行数据验证。当数据验证结果合格时,再根据从区块数据中提取的密钥生成请求生成目标密钥,即使用该密钥生成请求中包含的预设用户信息生成目标密钥。
在一些实施例中,对所述区块数据进行数据验证,包括:
1.1、获取所述区块数据中包含的第一公钥;
1.2、采用所述第一公钥对所述区块数据中的区块签名进行验证;
1.3、当所述区块签名的验证结果合格时,确定所述区块数据的数据验证结果合格。
具体地,区块数据在生成时,会在区块节点打包交易出块时采用负责这一轮出块的节点的私钥对区块数据进行签名,同时会将公钥放在打包的区块里。因此当密钥生成装置接收到区块数据后,可以提取区块数据中包含的公钥,并使用该公钥对区块数据的区块签名进行验证。当签名验证合格时,则可以确定区块数据的验证结果合格,否则则确定区块数据的数据验证结果不合格,此时则会进行报错。从而进一步提高了用户密钥生成过程中的安全性。
其中,在不同的场景下,生成用户对应的目标密钥的方法也可以存在差异,例如:
当需要生成的目标密钥的使用场景是基于身份的加密场景时,密钥生成装置采用主公私钥对为用户信息中包含的用户身份ID生成目标密钥;
当需要生成的目标密钥的使用场景是基于属性的加密场景时,密钥生成装置采用主公私钥对为用户信息中包含的属性信息或者属性策略生成目标密钥;
当需要生成的目标密钥的使用场景是阈值加密场景时,密钥生成装置根据主公私钥对中的密钥信息以及密钥分片算法,生成新的密钥分片作为目标密钥。
步骤105,向预设用户信息对应的用户发送目标密钥。
其中,当密钥生成装置生成了用户的目标密钥后,可以将生成的目标密钥发送给用户信息对应的用户,或者将目标密钥发送给密钥生成指令的发送方。
在一些实施例中,用户发送的密钥生成指令还可以包括用户自行生成的公私钥对中的公钥,为与前述对区块数据的签名数据进行验证的公钥进行区分,此处可称之为第二公钥,向预设用户信息对应的用户发送目标密钥,包括:
1、采用第二公钥对目标密钥进行加密,得到密文数据;
2、向预设用户信息对应的用户发送密文数据。
其中,密钥生成装置在生成了用户信息对应的目标密钥后,可以采用密钥生成指令中包含的第二公钥对目标密钥信息进行加密,再把密文数据发送给用户,用户在接收到密文数据后,可以采用自行生成的公私钥对中的私钥对该密文数据进行解密,从而得到目标密钥。如此可以进一步提高密钥生成过程中的安全性。
根据上述描述可知,本申请实施例提供的密钥生成方法,通过接收密钥生成请求,密钥生成请求包括预设的用户信息;将密钥生成请求发送至区块链中进行存证;获取区块链中关于密钥生成请求的区块数据,区块数据包括密钥生成请求;基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥;向预设用户信息对应的用户发送目标密钥。
以此,本申请提供的密钥生成方法,在接收到用户的密钥生成请求时,将该请求发送至区块链进行存证,并采用经区块链存证后的请求数据生成用户密钥。从而保证密钥生成事件作为交易被记录在区块链的账本上,用户可以根据区块链存证对密钥生成行为进行监督。而且,由于密钥生成过程运行在可信节点上,使得生成过程运行在可信执行环境中,从硬件上避免了密钥生成过程中可能受到的干扰,从而提升了密钥生成过程的安全性。
本申请还提供了一种密钥生成方法,该方法可以使用于可信节点中,该可信节点可以为终端也可以为服务器。如图4所示,为本申请提供的密钥生成方法的另一流程示意图,方法具体包括:
步骤201,可信节点接收用户发送的远程证明请求。
其中,可信节点为运行在可信执行环境中的节点,具体可以为一个运行在可信执行环境中的服务,例如Enclave。在系统初始化阶段,Enclave可以接收用户发送的远程证明请求,该请求中一般会包含随机挑战,即随机生成的一个字符串。Enclave可以生成一对加密公私钥对(PK1,SK1),其中PK为公钥(Public Key,PK)、SK为私钥(Secret Key,SK)。Enclave还可以生成一对签名公私钥对(PK2,SK2)以及一对公私密钥(MPK,MSK)。
步骤202,可信节点根据远程证明请求中的字符串生成远程证明。
Enclave接收到远程证明请求后,使用远程证明请求中包含的随机挑战生成远程证明,远程证明中包含PK1、PK2、MPK以及使用SK2对该远程证明的签名。
步骤203,可信节点向用户以及区块链发送远程证明。
生成了远程证明后,Enclave将远程证明发送给用户,以供用户对Enclave的运行环境进行验证,以及验证Enclave中运行的代码完整性,以保证Enclave中的密钥生成算法的代码没有被篡改。
同时,Enclave还可以将生成的远程证明发送到区块链中。具体地,可以调用区块链上预先部署的远程证明验证及存证合约接口将远程证明存入到区块链中。区块链中远程证明验证及存证合约也会对该远程证明的合法性进行验证。并采用远程证明中包含的签名公钥PK2验证证明中的签名是否合格。当验证合格时,区块链会通过共识将该远程证明以及其中携带的PK1、PK2和MPK写入区块中进行存证。将远程证明发送至区块链中进行存证,其他用户可以直接从区块链上获取远程证明进行自行验证,并从中获取到密钥生成服务的PK1、PK2和MPK,从而提高密钥生成效率。
同样地,当用户对远程证明的验证通过时,用户也可以从远程证明中提取出PK1、PK2以及MPK以备用。
步骤204,可信节点接收用户发送的密钥生成请求。
当用户对远程证明验证合格,确认Enclave运行在TEE中后,便可以向Enclave发送密钥生成请求以生成密钥,此处密钥可以仅包括私钥,也可以包括公私钥对。
其中,当用户需要生成用户私钥时,首先会自行生成一对加密公私钥对(PKU、SKU),然后将PKU和用户信息随密钥生成请求一同发送给可信节点进行密钥生成。
其中,在基于身份的密码算法中,用户将自己的ID随密钥生成请求一起发送给Enclave;
在基于属性的密码算法中,用户将自己拥有的属性或者属性策略随请求一起发送给Enclave;
在阈值加密算法中,用户只需将PKU随密钥生成请求发送给Enclave即可。
步骤205,可信节点将密钥生成请求发送到区块链中进行存证。
其中,在本申请实施例中,Enclave不再根据用户发送的密钥生成请求生成密钥,而是需要先将密钥生成请求发送到区块链中进行存证。具体地,Enclave可以向区块链中发送密钥生成请求,并触发预先在区块链中部署的用户私钥生成合约将该密钥生成请求通过共识存入区块,生成对应的区块数据。
同时,Enclave还可以在区块链的事件中心订阅密钥生成请求对应的出块事件,当密钥生成请求成功进入到区块并且成功通过共识出块后,该事件就会进入区块链事件中心,区块链事件中心便会向Enclave发送事件通知,事件通知中包含密钥生成请求对应的区块数据。
步骤206,可信节点接收区块链返回的区块数据。
其中,区块链的事件中心检测到密钥生成请求对应的出块事件后,向Enclave发送包含密钥生成请求对应的区块数据的事件通知。Enclave便可以从事件通知中提取出对应的区块数据。
步骤207,可信节点基于区块数据中包含的密钥生成求生成目标密钥。
其中,在提取出事件通知中的区块数据后,Enclave可以先采用预置的联盟链组织根证书或者公有链中的用户公钥对接收到的区块数据中的签名数据进行验证,当验证合格时,Enclave便从区块数据中提取出其中包含的密钥生成请求。
然后,Enclave根据密钥生成请求中的用户信息,采用主公私钥对(MPK,MSK)为用户生成对应的目标密钥。
步骤208,可信节点对目标密钥进行加密并将密文发送给用户。
生成用户对应的目标密钥后,Enclave还可以采用签名密钥SK2对目标密钥进行签名,以及使用密钥生成请求中包含的加密公钥PKU进行加密,将签名和密文一同发送给用户。用户接收到签名和密文后,可以使用PK2对签名进行验证,以及使用SKU对密文进行解密,从而得到目标密钥。
在一些实施例中,用户向Enclave包含用户信息的密钥生成请求时,可以先采用加密公钥PK1对用户信息进行加密,如此当Enclave从区块数据中获取到密钥生成请求以及其中包含的用户信息的密文时,需要使用SK1对密文进行解密,得到用户信息,再进一步生成用户信息对应的目标密钥。
根据上述描述可知,本申请提供的密钥生成方法,通过接收密钥生成请求,密钥生成请求包括预设的用户信息;将密钥生成请求发送至区块链中进行存证;获取区块链中关于密钥生成请求的区块数据,区块数据包括密钥生成请求;基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥;向预设用户信息对应的用户发送目标密钥。
以此,本申请提供的密钥生成方法,在接收到用户的密钥生成请求时,将该请求发送至区块链进行存证,并采用经区块链存证后的请求数据生成用户密钥。从而保证密钥生成事件作为交易被记录在区块链的账本上,用户可以根据区块链存证对密钥生成行为进行监督。而且,由于密钥生成过程运行在可信节点上,使得生成过程运行在可信执行环境中,从硬件上避免了密钥生成过程中可能受到的干扰,从而提升了密钥生成过程的安全性。
本申请实施例还进一步提供了一种密钥生成系统,如图5所示,为本申请提供的密钥生成系统的架构示意图,该密钥生成系统包括至少一个运行于TEE的可信节点10、至少一个用户20、代理组件30和区块链40。
其中,在系统初始化阶段,部署区块链40,启动可信节点10中的密钥生成服务,并启动代理组件30。其中,代理组件30可以为一个具有数据接收、数据处理和数据发送功能的组件,其可以为一个具有硬件结构的设备也可以为一个虚拟的应用程序组件。具体地,例如代理组件30为一个可以安装在终端上的应用程序客户端,其通过显示在终端上的用户交互界面与用户实现数据交互。即用户可以在用户交互界面中输入信息和指令,客户端也可以在终端的用户交互界面中显示返回给用户的数据,例如密钥信息。代理组件30还与可信节点10以及区块链40连接并且可以进行数据交互。部署区块链40包括安装与用户密钥生成服务相关的合约,包括:远程证明验证及存证合约41和用户密钥生成合约43。区块链40中还包括多个区块42。可信节点10的初始化包括预置区块链的验证用公共信息,包括联盟链的组织根证书或公有链中的用户公钥。可信节点10还可以调用密钥生成算法生成一对加密公私钥对(PK1、SK1)、一对签名公私钥对(PK2、SK2)以及一对主公私钥对(MPK、MSK),其中SK1、SK2以及MSK使用可信节点的同态加密机制(Simple Encrypted Arithmetic Library,SEAL)加密保管。各组件启动后,用户20发起远程证明流程验证密钥生成服务是否真实运行在TEE中,并验证密钥生成服务的代码完整性。如图6所示,为本申请中远程证明处理过程的交互时序图,具体流程如下:
1、用户20向代理组件30发送远程证明请求,代理组件30根据用户发送的远程证明请求生成一个随机挑战(随机字符串)。
其中,如前所述,代理组件30可以为一个安装在终端中的应用程序客户端,该应用程序客户端可以基于其安装的终端直接与可信节点10以及区块链40连接,也可以基于与该应用程序客户端连接的服务器与可信节点10以及区块链40连接并进行数据交互。
当用户20需要向可信节点10发送远程证明请求时,可以在应用程序客户端的用户交互界面上点击发送远程证明请求控件,响应于对该控件的点击操作,触发应用程序后台随机生成一个随机字符串,然后根据该随机字符串生成远程证明请求,并将该远程证明请求发送至可信节点10以请求生成远程证明。
在一些实施例中,代理组件30也可以为在浏览器中以网页形式进行展示的功能组件。
2、代理组件30将携带随机挑战的远程证明请求转发给可信节点10;可信节点10使用收到的随机挑战生成远程证明,远程证明中包含PK1、PK2、MPK以及使用SK2对远程证明的签名;可信节点10将远程证明返回给代理组件30。
3、代理组件30将收到的远程证明发送给用户20,并且调用区块链40上的远程证明验证及存证合约41将远程证明存入到区块链40中。如此,用户20和区块链40中的远程证明验证及存证合约41便可以分别验证该远程证明的合法性,并使用远程证明中的签名公钥PK2验证远程证明及其中签名是否匹配。若验证通过,区块链40会通过共识将该远程证明连通PK1、PK2以及MPK写入区块,用户可以提取出PK1、PK2以及MPK作后续使用。
如此,当任一用户20需要使用本申请提供的密钥生成系统生成密钥时,用户可以先生成一对加密公私钥对(PKU,SKU),然后从区块链40中获取远程证明并验证,若验证合法,则获取其中的PK1、PK2以及MPK,然后据此发起密钥生成请求以生成其对应的密钥。如图7所示,为本申请中密钥生成过程的交互时序图,具体流程如下:
1、用户20向代理组件30发送密钥生成请求,密钥生成请求中携带PKU以及下列中的一项:
a、在基于身份的密码算法中,用户20将自己的ID随密钥生成请求一起发送给代理组件30;
b、在基于属性的密码算法中,用户20将自己拥有的属性或者属性策略随密钥生成请求一起发送给代理组件30;
c、在阈值加密或签名算法中,用户20向代理组件30发出私钥生成请求即可,无需携带额外信息。
具体地,用户20可以在安装代理组件30对应的应用程序客户端的终端用户交互界面中点击密钥生成控件,响应于对密钥生成控件的点击操作,后台获取PKU以及用户ID、属性或属性策略中的一种,并将获取到的数据随密钥生成请求一同发送给区块链40。
2、代理组件30收到用户20发送的密钥生成请求后,将密钥生成请求发送给区块链40,代理组件30会在区块链的事件中心44中订阅密钥生成请求的出块事件。
3、区块链40收到代理组件30转发的密钥生成请求后,触发用户密钥生成合约43,将密钥生成请求通过共识存入区块。
4、若密钥生成请求成功进入到区块并成功通过共识出块,该事件会进入区块链事件中心44。
5、事件中心44发现有密钥生成请求进入区块,向代理组件30发送事件通知,事件通知中包含带有密钥生成请求这条交易的区块。
6、代理组件30将收到的事件通知转发给可信节点10。可信节点10使用区块链的证书或公钥验证事件通知中的区块签名,若合法,则根据区块中密钥生成请求的信息,调用密钥生成算法生成用户密钥。可信节点10将生成的用户密钥用SK2签名,并使用用户的加密公钥PKU加密后,将签名和密文发送给代理组件30。
7、代理组件30接收到可信节点10发送的签名和密文,将签名和密文转发给用户20。用户可以使用SKU解密密文得到密钥,并使用PK2验证签名,若签名合法则保留密钥。从而完成整个密钥生成过程。
为了更好地实施以上方法,本申请实施例还提供一种密钥生成装置,该密钥生成装置可以集成在终端或服务器中。
例如,如图8所示,为本申请实施例提供的密钥生成装置的结构示意图,该密钥生成装置应用于可信节点,该装置可以包括接收单元301、第一发送单元302、获取单元303、生成单元304以及第二发送单元305,如下:
接收单元301,用于接收密钥生成请求,密钥生成请求包括预设的用户信息;
第一发送单元302,用于将密钥生成请求发送至区块链中进行存证;
获取单元303,用于获取区块链中关于密钥生成请求的区块数据,区块数据包括密钥生成请求;
生成单元304,用于基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥;
第二发送单元305,用于向预设用户信息对应的用户发送目标密钥。
在一些实施例中,生成单元,包括:
验证子单元,用于对区块数据进行数据验证;
第一生成子单元,用于当数据验证的结果合格时,基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥。
在一些实施例中,验证子单元,包括:
第一获取模块,用于获取区块数据中包含的第一公钥;
验证模块,用于采用第一公钥对区块数据中的区块签名进行验证;
确定模块,用于当区块签名的验证结果合格时,确定区块数据的数据验证结果合格。
在一些实施例中,生成子单元,包括:
第二获取模块,用于获取预设密钥生成算法;
处理模块,用于调用预设密钥生成算法对用户信息进行处理,得到用户信息对应的目标密钥。
在一些实施例中,本申请提供的密钥生成装置,还包括:
接收子单元,用于接收远程证明请求,远程证明请求包括预设字符串;
第二生成子单元,用于生成根据预设字符串以及可信节点的属性信息生成远程证明;
第一发送子单元,用于向远程证明请求的发送方发送远程证明,以便发送方根据远程证明对可信节点的执行环境进行验证。
在一些实施例中,本申请提供的密钥生成装置,还包括:
第三生成子单元,用于生成包含远程证明的第一区块生成请求;
第二发送子单元,用于向区块链中发送第一区块生成请求,以在区块链中对远程证明进行存证。
在一些实施例中,第一发送单元,包括:
第四生成子单元,用于生成包含密钥生成请求的第二区块生成请求;
第三发送子单元,用于向区块链发送第二区块生成请求,以及向区块链的事件中心发送区块生成事件通知获取请求;
获取单元还用于:
接收区块链的事件中心返回的区块生成事件通知;
从区块生成事件通知中获取密钥生成请求对应的区块数据。
在一些实施例中,密钥生成请求中还包括第二公钥,第二发送单元,包括:
加密子单元,用于采用第二公钥对目标密钥进行加密,得到密文数据;
第四发送子单元,用于向预设用户信息对应的用户发送密文数据。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
根据上述描述可知,本申请实施例提供的密钥生成装置,通过接收单元301接收密钥生成请求,密钥生成请求包括预设的用户信息;第一发送单元302将密钥生成请求发送至区块链中进行存证;获取单元303获取区块链中关于密钥生成请求的区块数据,区块数据包括密钥生成请求;生成单元304基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥;第二发送单元305向预设用户信息对应的用户发送目标密钥。
以此,本申请提供的密钥生成方法,在接收到用户的密钥生成请求时,将该请求发送至区块链进行存证,并采用经区块链存证后的请求数据生成用户密钥。从而保证密钥生成事件作为交易被记录在区块链的账本上,用户可以根据区块链存证对密钥生成行为进行监督。而且,由于密钥生成过程运行在可信节点上,使得生成过程运行在可信执行环境中,从硬件上避免了密钥生成过程中可能受到的干扰,从而提升了密钥生成过程的安全性。
本申请实施例还提供一种计算机设备,该计算机设备可以为终端或服务器,如图9所示,为本申请提供的计算机设备的结构示意图。具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理单元401、一个或一个以上存储介质的存储单元402、电源模块403和输入模块404等部件。本领域技术人员可以理解,图9中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理单元401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储单元402内的软件程序和/或模块,以及调用存储在存储单元402内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理单元401可包括一个或多个处理核心;优选的,处理单元401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理单元401中。
存储单元402可用于存储软件程序以及模块,处理单元401通过运行存储在存储单元402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储单元402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能以及网页访问等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储单元402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储单元402还可以包括存储器控制器,以提供处理单元401对存储单元402的访问。
计算机设备还包括给各个部件供电的电源模块403,优选的,电源模块403可以通过电源管理系统与处理单元401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源模块403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入模块404,该输入模块404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理单元401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储单元402中,并由处理单元401来运行存储在存储单元402中的应用程序,从而实现各种功能,如下:
接收密钥生成请求,密钥生成请求包括预设的用户信息;将密钥生成请求发送至区块链中进行存证;获取区块链中关于密钥生成请求的区块数据,区块数据包括密钥生成请求;基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥;向预设用户信息对应的用户发送目标密钥。
应当说明的是,本申请实施例提供的计算机设备与上文实施例中的方法属于同一构思,以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种方法中的步骤。例如,该指令可以执行如下步骤:
接收密钥生成请求,密钥生成请求包括预设的用户信息;将密钥生成请求发送至区块链中进行存证;获取区块链中关于密钥生成请求的区块数据,区块数据包括密钥生成请求;基于从区块数据中提取的密钥生成请求生成用户信息对应的目标密钥;向预设用户信息对应的用户发送目标密钥。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本发明实施例所提供的任一种方法中的步骤,因此,可以实现本发明实施例所提供的任一种方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
其中,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在存储介质中。计算机设备的处理器从存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述密钥生成方法中各种可选实现方式中提供的方法。
以上对本发明实施例所提供的密钥生成方法、装置、计算机可读存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种密钥生成方法,其特征在于,应用于可信节点,所述方法包括:
接收密钥生成请求,所述密钥生成请求包括预设的用户信息;
将所述密钥生成请求发送至区块链中进行存证;
获取区块链中关于所述密钥生成请求的区块数据,所述区块数据包括所述密钥生成请求;
基于从所述区块数据中提取的密钥生成请求生成所述用户信息对应的目标密钥;
向所述预设用户信息对应的用户发送所述目标密钥。
2.根据权利要求1所述的方法,其特征在于,所述基于从所述区块数据中提取的密钥生成请求生成所述用户信息对应的目标密钥,包括:
对所述区块数据进行数据验证;
当所述数据验证的结果合格时,基于从所述区块数据中提取的密钥生成请求生成所述用户信息对应的目标密钥。
3.根据权利要求2所述的方法,其特征在于,所述对所述区块数据进行数据验证,包括:
获取所述区块数据中包含的第一公钥;
采用所述第一公钥对所述区块数据中的区块签名进行验证;
当所述区块签名的验证结果合格时,确定所述区块数据的数据验证结果合格。
4.根据权利要求2所述的方法,其特征在于,所述基于从所述区块数据中提取的密钥生成请求生成所述用户信息对应的目标密钥,包括:
获取预设密钥生成算法;
调用所述预设密钥生成算法对所述用户信息进行处理,得到所述用户信息对应的目标密钥。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收远程证明请求,所述远程证明请求包括预设字符串;
根据所述预设字符串以及所述可信节点的属性信息生成远程证明;
向所述远程证明请求的发送方发送所述远程证明,以便所述发送方根据所述远程证明对所述可信节点的执行环境进行验证。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
生成包含所述远程证明的第一区块生成请求;
向区块链中发送所述第一区块生成请求,以在区块链中对所述远程证明进行存证。
7.根据权利要求1所述的方法,其特征在于,所述将所述密钥生成请求发送至区块链中进行存证,包括:
生成包含所述密钥生成请求的第二区块生成请求;
向区块链发送所述第二区块生成请求,以及向区块链的事件中心发送区块生成事件通知获取请求;
所述获取区块链中关于所述密钥生成请求的区块数据,包括:
接收区块链的事件中心返回的区块生成事件通知;
从所述区块生成事件通知中获取所述密钥生成请求对应的区块数据。
8.根据权利要求1所述的方法,其特征在于,所述密钥生成请求还包括第二公钥,所述向所述预设用户信息对应的用户发送所述目标密钥,包括:
采用所述第二公钥对所述目标密钥进行加密,得到密文数据;
向所述预设用户信息对应的用户发送所述密文数据。
9.一种密钥生成装置,其特征在于,所述装置应用于可信节点,所述装置包括:
接收单元,用于接收密钥生成请求,所述密钥生成请求包括预设的用户信息;
第一发送单元,用于将所述密钥生成请求发送至区块链中进行存证;
获取单元,用于获取区块链中关于所述密钥生成请求的区块数据,所述区块数据包括所述密钥生成请求;
生成单元,用于基于从所述区块数据中提取的密钥生成请求生成所述用户信息对应的目标密钥;
第二发送单元,用于向所述预设用户信息对应的用户发送所述目标密钥。
10.根据权利要求9所述的装置,其特征在于,所述生成单元,包括:
验证子单元,用于对所述区块数据进行数据验证;
生成子单元,用于当所述数据验证的结果合格时,基于从所述区块数据中提取的密钥生成请求生成所述用户信息对应的目标密钥。
11.根据权利要求10所述的装置,其特征在于,所述验证子单元,包括:
第一获取模块,用于获取所述区块数据中包含的第一公钥;
验证模块,用于采用所述第一公钥对所述区块数据中的区块签名进行验证;
确定模块,用于当所述区块签名的验证结果合格时,确定所述区块数据的数据验证结果合格。
12.根据权利要求10所述的装置,其特征在于,所述生成子单元,包括:
第二获取模块,用于获取预设密钥生成算法;
处理模块,用于调用所述预设密钥生成算法对所述用户信息进行处理,得到所述用户信息对应的目标密钥。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8中任一项所述的密钥生成方法中的步骤。
14.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的密钥生成方法中的步骤。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1至8中任一项所述的密钥生成方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111457968.3A CN113869901B (zh) | 2021-12-02 | 2021-12-02 | 密钥生成方法、装置、计算机可读存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111457968.3A CN113869901B (zh) | 2021-12-02 | 2021-12-02 | 密钥生成方法、装置、计算机可读存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113869901A true CN113869901A (zh) | 2021-12-31 |
CN113869901B CN113869901B (zh) | 2022-05-10 |
Family
ID=78985589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111457968.3A Active CN113869901B (zh) | 2021-12-02 | 2021-12-02 | 密钥生成方法、装置、计算机可读存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113869901B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553590A (zh) * | 2022-03-17 | 2022-05-27 | 北京字节跳动网络技术有限公司 | 数据传输方法及相关设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103501303A (zh) * | 2013-10-12 | 2014-01-08 | 武汉大学 | 一种针对云平台虚拟机度量的主动远程证明方法 |
CN106897879A (zh) * | 2017-03-06 | 2017-06-27 | 广东工业大学 | 基于pki‑clc异构聚合签密算法的区块链加密方法 |
CN109462474A (zh) * | 2018-11-14 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种Keystone中Fernet密钥的生成方法及相关装置 |
CN109617698A (zh) * | 2019-01-09 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 发放数字证书的方法、数字证书颁发中心和介质 |
CN109933987A (zh) * | 2018-11-30 | 2019-06-25 | 上海点融信息科技有限责任公司 | 用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备 |
CN109934579A (zh) * | 2018-11-30 | 2019-06-25 | 上海点融信息科技有限责任公司 | 用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备 |
CN111090875A (zh) * | 2020-03-18 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 部署合约的方法及装置 |
US10715339B1 (en) * | 2019-04-26 | 2020-07-14 | Alibaba Group Holding Limited | Distributed key management for trusted execution environments |
US20210014072A1 (en) * | 2018-12-20 | 2021-01-14 | Launch Tech Co., Ltd. | Method for information processing and non-transitory computer readable storage medium |
WO2021012574A1 (zh) * | 2019-07-24 | 2021-01-28 | 深圳壹账通智能科技有限公司 | 多重签名方法、签名中心、介质及电子设备 |
CN112291059A (zh) * | 2020-07-28 | 2021-01-29 | 北京金山云网络技术有限公司 | 密钥生成方法及装置、存储介质及电子设备 |
CN112367168A (zh) * | 2020-10-30 | 2021-02-12 | 深圳前海微众银行股份有限公司 | 一种区块链用户的密钥生成的方法及装置 |
CN113609527A (zh) * | 2021-07-06 | 2021-11-05 | 微易签(杭州)科技有限公司 | 一种基于区块链创建数字签名的方法、系统及设备 |
-
2021
- 2021-12-02 CN CN202111457968.3A patent/CN113869901B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103501303A (zh) * | 2013-10-12 | 2014-01-08 | 武汉大学 | 一种针对云平台虚拟机度量的主动远程证明方法 |
CN106897879A (zh) * | 2017-03-06 | 2017-06-27 | 广东工业大学 | 基于pki‑clc异构聚合签密算法的区块链加密方法 |
CN109462474A (zh) * | 2018-11-14 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种Keystone中Fernet密钥的生成方法及相关装置 |
CN109933987A (zh) * | 2018-11-30 | 2019-06-25 | 上海点融信息科技有限责任公司 | 用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备 |
CN109934579A (zh) * | 2018-11-30 | 2019-06-25 | 上海点融信息科技有限责任公司 | 用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备 |
US20210014072A1 (en) * | 2018-12-20 | 2021-01-14 | Launch Tech Co., Ltd. | Method for information processing and non-transitory computer readable storage medium |
CN109617698A (zh) * | 2019-01-09 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 发放数字证书的方法、数字证书颁发中心和介质 |
US10715339B1 (en) * | 2019-04-26 | 2020-07-14 | Alibaba Group Holding Limited | Distributed key management for trusted execution environments |
WO2021012574A1 (zh) * | 2019-07-24 | 2021-01-28 | 深圳壹账通智能科技有限公司 | 多重签名方法、签名中心、介质及电子设备 |
CN111090875A (zh) * | 2020-03-18 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 部署合约的方法及装置 |
CN112291059A (zh) * | 2020-07-28 | 2021-01-29 | 北京金山云网络技术有限公司 | 密钥生成方法及装置、存储介质及电子设备 |
CN112367168A (zh) * | 2020-10-30 | 2021-02-12 | 深圳前海微众银行股份有限公司 | 一种区块链用户的密钥生成的方法及装置 |
CN113609527A (zh) * | 2021-07-06 | 2021-11-05 | 微易签(杭州)科技有限公司 | 一种基于区块链创建数字签名的方法、系统及设备 |
Non-Patent Citations (1)
Title |
---|
周艺华等: "基于区块链的数据管理方案", 《信息安全研究》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553590A (zh) * | 2022-03-17 | 2022-05-27 | 北京字节跳动网络技术有限公司 | 数据传输方法及相关设备 |
CN114553590B (zh) * | 2022-03-17 | 2023-08-22 | 抖音视界有限公司 | 数据传输方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113869901B (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10685099B2 (en) | System and method for mapping decentralized identifiers to real-world entities | |
EP4120114A1 (en) | Data processing method and apparatus, smart device and storage medium | |
US20200304315A1 (en) | System and method for blockchain-based cross-entity authentication | |
WO2021000337A1 (en) | System and method for mapping decentralized identifiers to real-world entities | |
CN110046996B (zh) | 数据处理方法和装置 | |
Yavari et al. | An improved blockchain-based authentication protocol for IoT network management | |
CN111080295B (zh) | 一种基于区块链的电子合同处理方法以及设备 | |
Zhong et al. | Distributed blockchain-based authentication and authorization protocol for smart grid | |
CN112115205B (zh) | 基于数字证书认证的跨链信任方法、装置、设备以及介质 | |
CN111241557B (zh) | 基于区块链的服务请求方法及装置 | |
CN107493291A (zh) | 一种基于安全元件se的身份认证方法和装置 | |
CN111127021B (zh) | 基于区块链的服务请求方法及装置 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN111274597B (zh) | 一种数据处理方法以及设备 | |
CN111049806B (zh) | 一种联合权限控制方法、装置、电子设备和存储介质 | |
CN112231755A (zh) | 一种基于区块链的数据授权方法、装置及系统 | |
CN113869901B (zh) | 密钥生成方法、装置、计算机可读存储介质及计算机设备 | |
CN112235276B (zh) | 主从设备交互方法、装置、系统、电子设备和计算机介质 | |
US20230244797A1 (en) | Data processing method and apparatus, electronic device, and medium | |
CN113315740B (zh) | 一种基于超级账本的数据完整性审计协议 | |
CN112398649A (zh) | 一种利用USBKey和CA进行服务器加密的方法及系统 | |
Yavari et al. | Research Article An Improved Blockchain-Based Authentication Protocol for IoT Network Management | |
CN115134144A (zh) | 企业级业务系统认证方法、装置和系统 | |
CN115580417A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
Alblooshi | Blockchain-based Ownership Management for Medical IoT (MIoT) Devices and their Data |
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 |