首页 / 专利库 / 人工智能 / 量子计算机 / 基于区块链的抗量子计算公钥池更新方法和系统

基于链的抗量子计算公钥池更新方法和系统

阅读:706发布:2020-05-12

专利汇可以提供基于链的抗量子计算公钥池更新方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 区 块 链 的抗 量子计算 公钥池更新方法和系统,区块链的每个 节点 均配置有密钥卡,密钥卡内存储有私钥和公钥池,公钥池包含数量与区块链的节点数量相同的公钥池单元,各公钥池单元内存储有与节点对应的一个公钥、与该公钥对应的交易序列号;本发明中成员将公钥及签名信息传递给其他成员的过程中,使用公钥池中的公钥作为偏移量对公钥及签名信息进行加密,则 量子计算机 无法通过公钥及签名信息破解出私钥,为更优的抗量子计算方式,且对于交易序列号的安全存储和使用方法,节省了 区块链交易 过程中交易序列号的传输量和区块链存储时交易序列号的存储量;由于交易序列号从未公开,从而进一步提高了安全性。,下面是基于链的抗量子计算公钥池更新方法和系统专利的具体信息内容。

1.基于链的抗量子计算公钥池更新方法,其特征在于,实施在第一客户端,所述的抗量子计算公钥池更新方法,包括:
用哈希函数作用于原公钥得到第一原始值,对己方交易序列号和所述第一原始值进行哈希运算得到第一中间参数和第二中间参数,利用所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥;
对交易序列号和新公钥进行ECDSA签名得到第一签名,所述第一签名包括第一签名参数和第二签名参数,将所述新公钥与第一公钥相减得到第一偏移参数,将所述第一签名参数与第二公钥相减得到第二偏移参数;
将所述第一原始值、第一偏移参数、第二偏移参数和第二签名参数组合作为交易发送至第二客户端;所述第一原始值用于供第二客户端从密钥卡取出第一客户端的交易序列号,所述交易序列号和第一原始值用于供第二客户端进行哈希运算得到第一中间参数和第二中间参数,所述第一中间参数和第二中间参数用于供第二客户端分别从密钥卡中取出第一公钥和第二公钥,所述第一公钥用于供第二客户端结合第一偏移参数得到新公钥,所述第二公钥用于供第二客户端结合第二偏移参数得到第一签名参数,所述第一签名参数和第二签名参数用于供第二客户端得到第一签名,所述交易用于供第二客户端对所述第一签名验证成功后进行缓存。
2.基于区块链的抗量子计算公钥池更新方法,其特征在于,实施在第二客户端,所述的抗量子计算公钥池更新方法,包括:
接收来自第一客户端的交易,所述交易包括第一原始值、第一偏移参数、第二偏移参数和第二签名参数;所述第一原始值由第一客户端利用哈希函数作用于原公钥得到,所述第一偏移参数由第一客户端将新公钥与第一公钥相减得到,所述第一公钥由第一客户端根据第一中间参数从密钥卡中取出,所述第二偏移参数由第一客户端将第一签名参数与第二公钥相减得到,所述第二公钥由第一客户端根据第二中间参数从密钥卡中取出,所述第一中间参数和第二中间参数由第一客户端对己方交易序列号和所述第一原始值进行哈希运算得到,所述第一签名参数和第二签名参数由第一客户端对交易序列号和新公钥进行ECDSA签名得到;
根据所述第一原始值从密钥卡取出第一客户端的交易序列号,对所述交易序列号和第一原始值进行哈希运算得到第一中间参数和第二中间参数,根据所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥,将所述第一公钥和第一偏移参数相加得到新公钥,将所述第二公钥和第二偏移参数相加得到第一签名参数,根据所述第一签名参数和第二签名参数得到第一签名,对所述第一签名进行验证,并在验证成功后对所述交易进行缓存。
3.基于区块链的抗量子计算公钥池更新方法,其特征在于,所述的抗量子计算公钥池更新方法,包括:
第一客户端用哈希函数作用于原公钥得到第一原始值,对己方交易序列号和所述第一原始值进行哈希运算得到第一中间参数和第二中间参数,利用所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥;
所述第一客户端对交易序列号和新公钥进行ECDSA签名得到第一签名,所述第一签名包括第一签名参数和第二签名参数,将所述新公钥与第一公钥相减得到第一偏移参数,将所述第一签名参数与第二公钥相减得到第二偏移参数;
所述第一客户端将所述第一原始值、第一偏移参数、第二偏移参数和第二签名参数组合作为交易发送至第二客户端;
所述第二客户端接收来自第一客户端的交易,根据所述第一原始值从密钥卡取出第一客户端的交易序列号,对所述交易序列号和第一原始值进行哈希运算得到第一中间参数和第二中间参数,根据所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥,将所述第一公钥和第一偏移参数相加得到新公钥,将所述第二公钥和第二偏移参数相加得到第一签名参数,根据所述第一签名参数和第二签名参数得到第一签名,对所述第一签名进行验证,并在验证成功后对所述交易进行缓存。
4.如权利要求1~3任一项所述的基于区块链的抗量子计算公钥池更新方法,其特征在于,所述的抗量子计算公钥池更新方法,还包括:
矿工搜集多个验证成功的交易,计算得到记账权后将交易形成一个区块发布;
区块链中的其余节点对该区块进行验证,并在验证成功后接收该区块为新区块;
区块链的各节点根据新区块中每个交易的新公钥,将密钥卡中对应公钥进行更新,并将该公钥对应的交易序列号执行自加1操作,若更新的公钥为己方公钥,则将密钥卡中的私钥同时更新。
5.如权利要求4所述的基于区块链的抗量子计算公钥池更新方法,其特征在于,区块链的每个节点均配置有密钥卡,所述密钥卡内存储有私钥和公钥池,所述公钥池包含数量与区块链的节点数量相同的公钥池单元,各所述公钥池单元内存储有与节点对应的一个公钥、与该公钥对应的交易序列号。
6.如权利要求4所述的基于区块链的抗量子计算公钥池更新方法,其特征在于,所述第一客户端对交易序列号和新公钥进行ECDSA签名得到第一签名,包括:
取随机数rA,计算第一签名参数RA=rA*G=(xA,yA),其中,rA为随机数rA,G为基点;
对交易序列号和新公钥进行哈希运算得到参数hA;
计算第二签名参数sA=(hA+skA*xA)/rA,其中,hA为参数hA,skA为第一客户端的私钥,rA为随机数rA;
组合RA和sA得到所述第一签名。
7.如权利要求6所述的基于区块链的抗量子计算公钥池更新方法,其特征在于,对所述第一签名进行验证,包括:
对交易序列号和新公钥进行哈希运算得到参数hA;
计算(hA*G/sA)+(xA*pkA/sA)的值,其中,pkA为第一客户端的公钥,将计算结果与第一签名参数RA相比,若两者的值相等,则对第一签名验证成功;反之则对第一签名验证失败。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至2中任一项所述的基于区块链的抗量子计算公钥池更新方法的步骤。
9.基于区块链的抗量子计算公钥池更新系统,其特征在于,区块链的每个节点均配置有密钥卡,所述密钥卡内存储有私钥和公钥池,所述公钥池包含数量与区块链的节点数量相同的公钥池单元,各所述公钥池单元内存储有与节点对应的一个公钥、与该公钥对应的交易序列号;
区块链节点中提出公钥更新的作为第一客户端,其余各节点作为第二客户端,所述第一客户端和第二客户端通过通信网络实现权利要求3中所述的基于区块链的抗量子计算公钥池更新方法的步骤。

说明书全文

基于链的抗量子计算公钥池更新方法和系统

技术领域

[0001] 本发明涉及安全通信领域,尤其是一种基于区块链的抗量子计算公钥池更新方法和系统。

背景技术

[0002] 国际互联网的广泛应用使得远在世界各个落的互不相识的人们可以快速交换信息,共享信息资源。在交换的过程中,人们并不总是希望自己发出的信息被所有人获悉,处于种种考虑,发出信息的人只希望所发出的信息被与此有关的人获悉。为此人们使用密码对自己所发出的信息进行加密,只有配有相同密码的人才能解密信息。另外,在通过互联网把全球连接在一个如此广泛的网络世界的时代,出于全球电子商务和电子贸易的目的,人们需要使用统一的密码进行信息加密。因此在1975年公布的美国数据加密标准DES。作为传统密码体制的DES算法,使用时通信双方必须预先分配相同的密钥并妥善保管,在没有专的密钥管理机构时,互不认识的通信双方如何预先得到所需的密钥,如何识别对方的身份,是一个非常重要的问题。这个问题可以归结到如何授权对方成为自己本次通信的唯一合法的通信伙伴,使其具有合法的权利和能解密自己所发出去的密文。、[0003] 区块链是一种全新的分布式基础架构与计算范式,利用有序的链式数据结构存储数据,利用共识算法更新数据,利用密码学技术保障数据安全。在基于区块链的交易中,确保交易的数据安全和客户的隐私是区块链能够进一步发展的必要条件。为此,密码学技术尤其是公钥密钥学在区块链中得到了广泛的应用。
[0004] 密钥卡是结合了密码学技术、硬件安全隔离技术、量子物理学技术(搭载量子随机数发生器的情况下)的身份认证和加解密产品。密钥卡的内嵌芯片和操作系统可以提供密钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,密钥卡成为私钥和密钥池的安全载体。每一个密钥卡可以有硬件PIN码保护,PIN码和硬件构成了用户使用密钥卡的两个必要因素,即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的密钥卡和用户PIN码,才可以登录系统。即使用户的PIN码被泄露,只要用户持有的密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的密钥卡遗失,拾到者由于不知道用户PIN码,也无法仿冒合法用户的身份。总之,密钥卡使得密钥等绝密信息不以明文形式出现在主机的磁盘及内存中,从而能有效保证绝密信息的安全。
[0005] 现有技术存在的问题:
[0006] 1、当前公钥池技术,有公钥更新的需求。此时,用户必须以一种安全的方式将他的公钥信息传递给可信第三方机构。但是,因为没有安全的通信信道,用户将公钥信息传递给可信机构的过程中极易被攻击者拦截,则用户发出的公钥极有可能被量子计算机攻击者破解出私钥。怎样保证用户公钥信息传递过程的安全是当前亟待解决的一个问题。
[0007] 2、公钥更新后,一般通知公钥池颁发机构,其余通信方为了解公钥更新的信息,必须向公钥池颁发机构进行查询并下载公钥更新。而公钥池颁发机构的数据处理量又是有限的,极端情况可能发生网络问题而导致公钥池颁发机构通信功能丧失;另外,攻击者在获取公钥池颁发机构真实网络位置的情况下,可以发动拒绝服务式攻击。因此,公钥池颁发机构的中心化设计是导致整个系统出现系统性险的软肋。

发明内容

[0008] 基于此,有必要针对上述技术问题,提供一种基于区块链的抗量子计算公钥池更新方法和系统。
[0009] 本申请提供一种基于区块链的抗量子计算公钥池更新方法,实施在第一客户端,所述的抗量子计算公钥池更新方法,包括:
[0010] 用哈希函数作用于原公钥得到第一原始值,对己方交易序列号和所述第一原始值进行哈希运算得到第一中间参数和第二中间参数,利用所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥;
[0011] 对交易序列号和新公钥进行ECDSA签名得到第一签名,所述第一签名包括第一签名参数和第二签名参数,将所述新公钥与第一公钥相减得到第一偏移参数,将所述第一签名参数与第二公钥相减得到第二偏移参数;
[0012] 将所述第一原始值、第一偏移参数、第二偏移参数和第二签名参数组合作为交易发送至第二客户端;所述第一原始值用于供第二客户端从密钥卡取出第一客户端的交易序列号,所述交易序列号和第一原始值用于供第二客户端进行哈希运算得到第一中间参数和第二中间参数,所述第一中间参数和第二中间参数用于供第二客户端分别从密钥卡中取出第一公钥和第二公钥,所述第一公钥用于供第二客户端结合第一偏移参数得到新公钥,所述第二公钥用于供第二客户端结合第二偏移参数得到第一签名参数,所述第一签名参数和第二签名参数用于供第二客户端得到第一签名,所述交易用于供第二客户端对所述第一签名验证成功后进行缓存。
[0013] 本申请提供一种基于区块链的抗量子计算公钥池更新方法,实施在第二客户端,所述的抗量子计算公钥池更新方法,包括:
[0014] 接收来自第一客户端的交易,所述交易包括第一原始值、第一偏移参数、第二偏移参数和第二签名参数;所述第一原始值由第一客户端利用哈希函数作用于原公钥得到,所述第一偏移参数由第一客户端将新公钥与第一公钥相减得到,所述第一公钥由第一客户端根据第一中间参数从密钥卡中取出,所述第二偏移参数由第一客户端将第一签名参数与第二公钥相减得到,所述第二公钥由第一客户端根据第二中间参数从密钥卡中取出,所述第一中间参数和第二中间参数由第一客户端对己方交易序列号和所述第一原始值进行哈希运算得到,所述第一签名参数和第二签名参数由第一客户端对交易序列号和新公钥进行ECDSA签名得到;
[0015] 根据所述第一原始值从密钥卡取出第一客户端的交易序列号,对所述交易序列号和第一原始值进行哈希运算得到第一中间参数和第二中间参数,根据所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥,将所述第一公钥和第一偏移参数相加得到新公钥,将所述第二公钥和第二偏移参数相加得到第一签名参数,根据所述第一签名参数和第二签名参数得到第一签名,对所述第一签名进行验证,并在验证成功后对所述交易进行缓存。
[0016] 本申请提供一种基于区块链的抗量子计算公钥池更新方法,所述的抗量子计算公钥池更新方法,包括:
[0017] 第一客户端用哈希函数作用于原公钥得到第一原始值,对己方交易序列号和所述第一原始值进行哈希运算得到第一中间参数和第二中间参数,利用所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥;
[0018] 所述第一客户端对交易序列号和新公钥进行ECDSA签名得到第一签名,所述第一签名包括第一签名参数和第二签名参数,将所述新公钥与第一公钥相减得到第一偏移参数,将所述第一签名参数与第二公钥相减得到第二偏移参数;
[0019] 所述第一客户端将所述第一原始值、第一偏移参数、第二偏移参数和第二签名参数组合作为交易发送至第二客户端;
[0020] 所述第二客户端接收来自第一客户端的交易,根据所述第一原始值从密钥卡取出第一客户端的交易序列号,对所述交易序列号和第一原始值进行哈希运算得到第一中间参数和第二中间参数,根据所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥,将所述第一公钥和第一偏移参数相加得到新公钥,将所述第二公钥和第二偏移参数相加得到第一签名参数,根据所述第一签名参数和第二签名参数得到第一签名,对所述第一签名进行验证,并在验证成功后对所述交易进行缓存。
[0021] 进一步的,所述的抗量子计算公钥池更新方法,还包括:
[0022] 矿工搜集多个验证成功的交易,计算得到记账权后将交易形成一个区块发布;
[0023] 区块链中的其余节点对该区块进行验证,并在验证成功后接收该区块为新区块;
[0024] 区块链的各节点根据新区块中每个交易的新公钥,将密钥卡中对应公钥进行更新,并将该公钥对应的交易序列号执行自加1操作,若更新的公钥为己方公钥,则将密钥卡中的私钥同时更新。
[0025] 进一步的,区块链的每个节点均配置有密钥卡,所述密钥卡内存储有私钥和公钥池,所述公钥池包含数量与区块链的节点数量相同的公钥池单元,各所述公钥池单元内存储有与节点对应的一个公钥、与该公钥对应的交易序列号。
[0026] 进一步的,所述第一客户端对交易序列号和新公钥进行ECDSA签名得到第一签名,包括:
[0027] 取随机数rA,计算第一签名参数RA=rA*G=(xA,yA),其中,rA为随机数rA,G为基点;
[0028] 对交易序列号和新公钥进行哈希运算得到参数hA;
[0029] 计算第二签名参数sA=(hA+skA*xA)/rA,其中,hA为参数hA,skA为第一客户端的私钥,rA为随机数rA;
[0030] 组合RA和sA得到所述第一签名。
[0031] 进一步的,对所述第一签名进行验证,包括:
[0032] 对交易序列号和新公钥进行哈希运算得到参数hA;
[0033] 计算(hA*G/sA)+(xA*pkA/sA)的值,其中,pkA为第一客户端的公钥,将计算结果与第一签名参数RA相比,若两者的值相等,则对第一签名验证成功;反之则对第一签名验证失败。
[0034] 本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述的基于区块链的抗量子计算公钥池更新方法的步骤。
[0035] 本申请还提供一种基于区块链的抗量子计算公钥池更新系统,区块链的每个节点均配置有密钥卡,所述密钥卡内存储有私钥和公钥池,所述公钥池包含数量与区块链的节点数量相同的公钥池单元,各所述公钥池单元内存储有与节点对应的一个公钥、与该公钥对应的交易序列号;
[0036] 区块链节点中提出公钥更新的作为第一客户端,其余各节点作为第二客户端,所述第一客户端和第二客户端通过通信网络实现所述的基于区块链的抗量子计算公钥池更新方法的步骤。
[0037] 本申请中,成员将公钥及签名信息传递给其他成员的过程中,使用公钥池中的公钥作为偏移量对公钥及签名信息进行加密,则量子计算机无法通过公钥及签名信息破解出私钥,为更优的抗量子计算方式。
[0038] 本申请中,公钥更新后,通过区块链区块通知其余通信方公钥更新的信息,不存在中心服务器,且无需向中心服务器进行查询并下载公钥更新,避免了中心服务器在极端情况可能发生网络问题而导致中心服务器通信功能丧失,从而无法进行公钥更新查询;另外,由于不存在中心服务器,攻击者无法发动拒绝服务式攻击,保证了公钥更新系统的正常运行。且对于NONCE(交易序列号)的安全存储和使用方法,节省了区块链交易过程中NONCE的传输量和区块链存储时NONCE的存储量;并且NONCE从未公开,从而提高了安全性。附图说明
[0039] 图1为本申请的区块链交易结构图。

具体实施方式

[0040] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041] 为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。
[0042] 应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0043] 其中一实施例中,提供一种基于区块链的抗量子计算公钥池更新方法,所述的抗量子计算公钥池更新方法,包括:
[0044] 第一客户端用哈希函数作用于原公钥得到第一原始值,对己方交易序列号和所述第一原始值进行哈希运算得到第一中间参数和第二中间参数,利用所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥;
[0045] 所述第一客户端对交易序列号和新公钥进行ECDSA签名得到第一签名,所述第一签名包括第一签名参数和第二签名参数,将所述新公钥与第一公钥相减得到第一偏移参数,将所述第一签名参数与第二公钥相减得到第二偏移参数;
[0046] 所述第一客户端将所述第一原始值、第一偏移参数、第二偏移参数和第二签名参数组合作为交易发送至第二客户端;
[0047] 所述第二客户端接收来自第一客户端的交易,根据所述第一原始值从密钥卡取出第一客户端的交易序列号,对所述交易序列号和第一原始值进行哈希运算得到第一中间参数和第二中间参数,根据所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥,将所述第一公钥和第一偏移参数相加得到新公钥,将所述第二公钥和第二偏移参数相加得到第一签名参数,根据所述第一签名参数和第二签名参数得到第一签名,对所述第一签名进行验证,并在验证成功后对所述交易进行缓存。
[0048] 需要说明的是,当称参数A,参数B得到参数C时,可以仅由参数A和参数B得到参数C,也可以存在其他参数,例如由参数A、参数B和参数D得到参数C。
[0049] 本实施例中,使用公钥池中的公钥作为偏移量对公钥及签名信息进行加密,则量子计算机无法通过公钥及签名信息破解出私钥,为更优的抗量子计算方式。同时结合交易序列号NONCE的使用,节省了区块链交易过程中NONCE的传输量和区块链存储时NONCE的存储量,且NONCE从未公开,从而提高了安全性。
[0050] 为了便于直观了解在抗量子计算公钥池更新过程中,区块链中各节点产生的相应动作,以下通过实施在单侧的形式进一步说明抗量子计算公钥池更新方法。
[0051] 在另一实施例中,提供一种基于区块链的抗量子计算公钥池更新方法,实施在第一客户端,所述的抗量子计算公钥池更新方法,包括:
[0052] 用哈希函数作用于原公钥得到第一原始值,对己方交易序列号和所述第一原始值进行哈希运算得到第一中间参数和第二中间参数,利用所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥;
[0053] 对交易序列号和新公钥进行ECDSA签名得到第一签名,所述第一签名包括第一签名参数和第二签名参数,将所述新公钥与第一公钥相减得到第一偏移参数,将所述第一签名参数与第二公钥相减得到第二偏移参数;
[0054] 将所述第一原始值、第一偏移参数、第二偏移参数和第二签名参数组合作为交易发送至第二客户端;所述第一原始值用于供第二客户端从密钥卡取出第一客户端的交易序列号,所述交易序列号和第一原始值用于供第二客户端进行哈希运算得到第一中间参数和第二中间参数,所述第一中间参数和第二中间参数用于供第二客户端分别从密钥卡中取出第一公钥和第二公钥,所述第一公钥用于供第二客户端结合第一偏移参数得到新公钥,所述第二公钥用于供第二客户端结合第二偏移参数得到第一签名参数,所述第一签名参数和第二签名参数用于供第二客户端得到第一签名,所述交易用于供第二客户端对所述第一签名验证成功后进行缓存。
[0055] 在另一实施例中,提供一种基于区块链的抗量子计算公钥池更新方法,实施在第二客户端,所述的抗量子计算公钥池更新方法,包括:
[0056] 接收来自第一客户端的交易,所述交易包括第一原始值、第一偏移参数、第二偏移参数和第二签名参数;所述第一原始值由第一客户端利用哈希函数作用于原公钥得到,所述第一偏移参数由第一客户端将新公钥与第一公钥相减得到,所述第一公钥由第一客户端根据第一中间参数从密钥卡中取出,所述第二偏移参数由第一客户端将第一签名参数与第二公钥相减得到,所述第二公钥由第一客户端根据第二中间参数从密钥卡中取出,所述第一中间参数和第二中间参数由第一客户端对己方交易序列号和所述第一原始值进行哈希运算得到,所述第一签名参数和第二签名参数由第一客户端对交易序列号和新公钥进行ECDSA签名得到;
[0057] 根据所述第一原始值从密钥卡取出第一客户端的交易序列号,对所述交易序列号和第一原始值进行哈希运算得到第一中间参数和第二中间参数,根据所述第一中间参数和第二中间参数分别从密钥卡中取出第一公钥和第二公钥,将所述第一公钥和第一偏移参数相加得到新公钥,将所述第二公钥和第二偏移参数相加得到第一签名参数,根据所述第一签名参数和第二签名参数得到第一签名,对所述第一签名进行验证,并在验证成功后对所述交易进行缓存。
[0058] 其中,对于区块链的抗量子计算公钥池更新方法而言,还包括:
[0059] 矿工搜集多个验证成功的交易,计算得到记账权后将交易形成一个区块发布;
[0060] 区块链中的其余节点对该区块进行验证,并在验证成功后接收该区块为新区块;
[0061] 区块链的各节点根据新区块中每个交易的新公钥,将密钥卡中对应公钥进行更新,并将该公钥对应的交易序列号执行自加1操作,若更新的公钥为己方公钥,则将密钥卡中的私钥同时更新。
[0062] 本实施例中通过区块链区块通知其余通信方公钥更新的信息,不存在中心服务器,且无需向中心服务器进行查询并下载公钥更新,避免了中心服务器在极端情况可能发生网络问题而导致中心服务器通信功能丧失,从而无法进行公钥更新查询;另外,由于不存在中心服务器,攻击者无法发动拒绝服务式攻击,保证了公钥更新系统的正常运行。
[0063] 为了便于公钥和交易序列号的取用,在另一实施例中,区块链的每个节点均配置有密钥卡,所述密钥卡内存储有私钥和公钥池,所述公钥池包含数量与区块链的节点数量相同的公钥池单元,各所述公钥池单元内存储有与节点对应的一个公钥、与该公钥对应的交易序列号。
[0064] 在另一实施例中,所述第一客户端对交易序列号和新公钥进行ECDSA签名得到第一签名,包括:
[0065] 取随机数rA,计算第一签名参数RA=rA*G=(xA,yA),其中,rA为随机数rA,G为基点;
[0066] 对交易序列号和新公钥进行哈希运算得到参数hA;
[0067] 计算第二签名参数sA=(hA+skA*xA)/rA,其中,hA为参数hA,skA为第一客户端的私钥,rA为随机数rA;
[0068] 组合RA和sA得到所述第一签名。
[0069] 同时,在对所述第一签名进行验证时,包括:
[0070] 对交易序列号和新公钥进行哈希运算得到参数hA;
[0071] 计算(hA*G/sA)+(xA*pkA/sA)的值,其中,pkA为第一客户端的公钥,将计算结果与第一签名参数RA相比,若两者的值相等,则对第一签名验证成功;反之则对第一签名验证失败。
[0072] 在一实施例中,密钥卡中有成员(即区块链节点)各自的私钥sk和公钥池,公钥池中有一个个的公钥池单元,每个公钥池单元存储有某个成员的一个公钥pk和一个各不相同的NONCE。其中NONCE是交易序列号,从某个随机整数开始增长,一次交易完成之后进行自加一操作。密钥卡由颁发机构颁发给各个成员,初始状态公钥池中的公钥池单元完全一致,并且是由所有成员的公钥池单元组成。
[0073] 本实施例中的区块链交易如图1所示,其中的To是更新公钥的智能合约地址,Data是将要更新的公钥pkAnew。密钥卡颁发后,出于成员自身安全等考虑,可由成员发起密钥更新的需求,且将区块链节点中提出公钥更新的作为第一客户端,其余各节点作为第二客户端。
[0074] 在未做特殊说明的情况下,本申请中的随机数rA、参数hA等表述中的rA、hA仅仅是为了便于区分和叙述,并不对参数本身有额外限定,例如原公钥pkA、私钥skA中的pkA、skA;又如第二签名参数sA、第一签名RA||sA中的sA、RA||sA;其他同理。
[0075] 实施例1
[0076] 1、成员A(即为第一客户端)向区块链提出需要更新公钥pkA。
[0077] 用哈希函数作用于原公钥pkA得到HASH(pkA),作为第一原始值FROM;用将要更新的公钥pkAnew作为Data,并且把将要更新的私钥skAnew暂存在本地密钥卡中。根据公式(H1,H2)=HASH(FROM||NONCE),对FROM||NONCE进行哈希运算得到点(H1,H2),其中H1为第一中间参数,H2为第二中间参数,再根据H1从密钥卡的公钥池中找到对应的公钥池单元并从中取出第一公钥pk1,根据H2从密钥卡的公钥池中找到对应的公钥池单元并从中取出第二公钥pk2。
[0078] 成员A对To||NONCE||Data进行ECDSA签名:取随机数rA,计算第一签名参数RA=rA*G=(xA,yA)。对To||NONCE||Data做哈希运算得到参数hA,取出A的私钥skA,根据公式sA=(hA+skA*xA)/rA计算得到第二签名参数sA,从而得到第一签名,第一签名为RA||sA。将消息FROM||To|Data-pk1||RA-pk2||sA发送给区块链成员。此处pk1和pk2分别作为Data和RA的偏移量,对这2个数据进行了加密,得到Data-pk1作为第一偏移参数,RA-pk2作为第二偏移参数。
[0079] 2、区块链成员(第二客户端)处理成员A的请求
[0080] 区块链成员接收到来自成员A的消息FROM||To||Data-pk1||RA-pk2||sA后并得到其中的各个部分。根据FROM找到对应的公钥池单元,取出NONCE。根据公式(H1,H2)=HASH(FROM||NONCE),对FROM||NONCE进行哈希运算得到(H1,H2),再根据H1从密钥卡的公钥池中找到对应的公钥池单元并从中取出公钥pk1,根据H2从密钥卡的公钥池中找到对应的公钥池单元并从中取出公钥pk2,再用pk1加上Data-pk1得到Data,用pk2加上RA-pk2得到RA,从而得到第一签名RA||sA。
[0081] 根据FROM从密钥卡公钥池中取出pkA,然后验证签名RA||sA。组成原文To||NONCE||Data,并对其做哈希运算得到hA。计算hA*G/sA的值,计算xA*pkA/sA的值,再将得到的两个值相加,将得到的结果和rA*G进行对比,如果相等则说明验证签名成功。
[0082] 验证签名成功之后,可说明该交易为有效交易,对该交易进行缓存。
[0083] 3、形成区块
[0084] 矿工搜集一定数量的有效交易,再计算出一个满足规则的随机数,即获得本次记账权,将搜集到的有效交易形成一个区块并发布。
[0085] 4、执行交易
[0086] 区块链其余节点对该区块进行验证,主要是验证挖矿随机数是否满足规则,如果验证成功,则接受该区块为新区块。
[0087] 区块链所有节点的成员对于区块内容,根据其中的有效交易更新公钥pk为pknew,并将对应公钥池单元中的NONCE进行自加1,即NONCE=NONCE+1。当某个成员例如成员A发现自身的pkAnew得到更新后,也将本地密钥卡中的skA用skAnew代替。
[0088] 本实施例就每个步骤而言可视为针对前述相应的实施例,就所有步骤而言也可视为前述相应实施例的结合。
[0089] 本实施例中,使用密钥卡存储成员各自的私钥sk和公钥池,其中公钥池中的公钥池单元存储有公钥和NONCE。根据哈希值可以选择密钥卡中的公钥进行计算,而且整个计算过程中公钥和私钥不会出密钥卡,因此本实施例解决了公钥被量子计算机破解的问题。密钥池一直位于密钥卡中,密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥可能性大大降低。
[0090] 本实施例中,成员将公钥及签名信息传递给其他成员的过程中,使用公钥池中的公钥作为偏移量对公钥及签名信息进行加密,则量子计算机无法通过公钥及签名信息破解出私钥。而现有技术的做法是,对公钥及签名进行对称加密计算,其计算量大大高于本申请的偏移量计算。因此本实施例的偏移量计算是一种更优的抗量子计算方式。
[0091] 本实施例中,公钥更新后,通过区块链区块通知其余通信方公钥更新的信息,不存在中心服务器,且无需向中心服务器进行查询并下载公钥更新。区块链是一种无中心网络通信系统,避免了中心服务器在极端情况可能发生网络问题而导致中心服务器通信功能丧失,从而无法进行公钥更新查询;另外,由于不存在中心服务器,攻击者无法发动拒绝服务式攻击,保证了公钥更新系统的正常运行。且本实施例中,对于NONCE的安全存储和使用方法,节省了区块链交易过程中NONCE的传输量和区块链存储时NONCE的存储量;并且NONCE从未公开,从而提高了安全性。
[0092] 在一实施例中,提供了一种计算机设备,即一种基于区块链的抗量子计算公钥池更新系统,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现基于区块链的抗量子计算公钥池更新方法的步骤。
[0093] 计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,计算机设备的处理器用于提供计算和控制能力。计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述基于区块链的抗量子计算公钥池更新方法。计算机设备的显示屏可以是液晶显示屏或者电子墨显示屏,各设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0094] 在另一实施例中,提供了一种基于区块链的抗量子计算公钥池更新系统,区块链的每个节点均配置有密钥卡,所述密钥卡内存储有私钥和公钥池,所述公钥池包含数量与区块链的节点数量相同的公钥池单元,各所述公钥池单元内存储有与节点对应的一个公钥、与该公钥对应的交易序列号;
[0095] 区块链节点中提出公钥更新的作为第一客户端,其余各节点作为第二客户端,所述第一客户端和第二客户端通过通信网络实现所述的基于区块链的抗量子计算公钥池更新方法的步骤。
[0096] 关于基于区块链的抗量子计算公钥池更新系统的具体限定可以参见上文中对于基于区块链的抗量子计算公钥池更新方法的限定,在此不再赘述。
[0097] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0098] 以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈