CN110690957B - 抗量子计算私钥备份、挂失及恢复方法及系统 - Google Patents
抗量子计算私钥备份、挂失及恢复方法及系统 Download PDFInfo
- Publication number
- CN110690957B CN110690957B CN201910991424.1A CN201910991424A CN110690957B CN 110690957 B CN110690957 B CN 110690957B CN 201910991424 A CN201910991424 A CN 201910991424A CN 110690957 B CN110690957 B CN 110690957B
- Authority
- CN
- China
- Prior art keywords
- key
- client
- private key
- user
- transaction
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种抗量子计算私钥备份、挂失及恢复方法及系统,实施在相互通信的联盟链成员之间,联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有服务端公钥池;服务端的密钥卡存储有客户端公钥池,客户端公钥池中储存有与各客户端一一对应的客户端单元,客户端单元包括与客户端相对应的用户名、当前身份标识、公钥更新状态、隐式证书、备份身份标识列表以及无效身份标识列;客户端成员均配置有独立的用户名,在同一个用户名下的客户端成员配置有主密钥卡以及至少一个备用密钥卡,主密钥卡以及备用密钥卡中均存储有各自的客户端公钥指针随机数、客户端私钥以及私钥参数,采用本方法能够提高对私钥的保护。
Description
技术领域
本申请涉及安全通信技术领域,特别是涉及一种抗量子计算私钥备份、挂失及恢复方法及系统。
背景技术
区块链是一种全新的分布式基础架构与计算范式,利用有序的链式数据结构存储数据,利用共识算法更新数据,利用密码学技术保障数据安全。在基于区块链的交易中,确保交易的数据安全和客户的隐私是区块链能够进一步发展的必要条件。为此,密码学技术尤其是公钥密钥学在区块链中得到了广泛的应用。而联盟链是区块链的一个分支,所以它本身也是一个分布式的,去中心化的公共数据库,跟其他链的区别就是它是针对特定群体的成员和有限的第三方,其内部指定多个预选节点为记账人,其共识过程受到预选节点控制的区块链。
现有技术存在的问题:
1.现有区块链的存储和使用的主流方法均无法抵御木马或黑客的攻击,且均没有考虑密钥找回。万一私钥丢失,对应的权益将永远消失。
2.现有的使用平台托管的方式备份私钥的方法,当用户密钥丢失时需要委托核心节点找回私钥,赋予了核心节点过大的权利,不能满足客户需求。被委托方能完全控制账户,甚至可以进行违背委托方意愿的操作。
3.用户的区块链私钥可以保存在电子设备中,但是一旦丢失或信息被盗取,区块链私钥便会丢失,对用户的财产安全造成重大影响。
4.基于隐式证书密码学及其数字签名容易被量子计算机破解。
5.基于隐式证书密码学的隐式证书生成服务器的私钥被窃取的风险很高,而且由于隐式证书生成服务器掌握整个系统最关键的私钥,可以对其他用户的隐式证书进行伪造。
6.所有用户的隐式证书需要类似CA的中心服务器来维护,受DOS攻击风险较高。
发明内容
基于此,有必要针对上述技术问题,提供一种至少解决其中一个技术问题的基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复方法及系统(简称为抗量子计算私钥备份、挂失及恢复方法及系统)。
一种基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复方法,实施在相互通信的联盟链成员之间,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有服务端公钥池;
所述服务端的密钥卡存储有客户端公钥池,所述客户端公钥池中储存有与各所述客户端一一对应的客户端单元,所述客户端单元包括与客户端相对应的用户名、当前身份标识、公钥更新状态、隐式证书、备份身份标识列表以及无效身份标识列;
所述客户端成员均配置有独立的用户名,在同一个用户名下的客户端成员配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有各自的客户端公钥指针随机数、客户端私钥以及私钥参数;
其中一客户端成员为User,所述私钥备份、挂失及恢复方法包括:基于联盟链和隐式证书实施私钥备份、挂失及恢复至少其中一者;
若增加新的备份用密钥卡,则实施私钥备份,User向服务端成员提出交易,基于联盟链根据所述备份用密钥卡对世界状态中的相应客户端单元进行更新,完成私钥备份;
若主密钥卡丢失,则实施挂失及恢复,由User任意一个备用密钥卡向服务端成员提出交易,基于联盟链在世界状态中获取所述主密钥卡的客户端私钥以及私钥参数,并根据所述客户端私钥以及私钥参数计算得到主密钥的实际私钥以及实际公钥,以代替该User的主密钥卡,完成挂失及恢复。
可选的,联盟链成员中还包括提供相应服务的Endorser、Orderer及 Committer,所述私钥备份、挂失及恢复方法具体包括:
User向Endorser提出交易;
Endorser收到User提出的交易并相应执行,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给 User;
User接收交易通知后相应验证。
可选的,若增加新的备份用密钥卡,则实施私钥备份,具体包括:
User向Endorser提出交易,根据私钥密文、备份用密钥卡的身份标识和隐式证书、以及User用户名生成加密消息写入所述交易中;
Endorser收到User提出的交易,经验证后,在交易应答中的读出操作集中写入User用户名下的所有密钥卡身份标识以及属性列表,在交易应答中的写入操作集中写入备份用密钥卡的身份标识、属性列表以及所述加密消息,再向User 发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成私钥备份。
可选的,所述私钥密文为所述备份用密钥卡的公钥对主密钥卡的客户端私钥以及私钥参数进行加密得到。
可选的,若主密钥卡丢失,则实施挂失及恢复时,具体包括:
Use选择一个备用密钥卡向Endorser提出交易,基于联盟链在世界状态中查询所述主密钥卡的客户端私钥以及私钥参数;
所述备用密钥卡获取所述主密钥卡的客户端私钥以及私钥参数后,向多个Endorser提出交易,基于联盟链将自身的客户端私以及私钥参数替换为所述主密钥卡的客户端私钥以及私钥参数,以完成私钥挂失及恢复。
可选的,所述Use选择一个备用密钥卡向Endorser提出交易,基于联盟链在世界状态中查询所述主密钥卡的客户端私钥以及私钥参数具体包括:
User选择一个备用密钥卡向Endorser提出交易,所述交易中包括所述备份用密钥卡的身份标识、主密钥卡的身份标识以及User的用户名;
Endorser收到User提出的交易,经验证后,根据所述备用密钥卡的身份标识在世界状态中获取相应的加密消息,并将加密消息写入交易应答发送至User;
User接收交易应答后,根据所述加密消息进行相应解密,得到所述主密钥卡的客户端私钥以及私钥参数。
可选的,所述备用密钥卡获取所述主密钥卡的客户端私钥以及私钥参数后,向多个Endorser提出交易,基于联盟链将自身的客户端私以及私钥参数替换为所述主密钥卡的客户端私钥以及私钥参数,以完成私钥挂失及恢复具体包括:
User使用所述备用密钥卡向多个Endorser提出交易,所述交易中包括有根据所述主密钥卡的客户端私钥以及私钥参数得到的多个私钥信息分量,并将各所述私钥信息分量分别写入多个交易中;
多个Endorser收到User提出的交易,经验证后,在交易应答中的写入操作集中写入丢失的主密钥卡的身份标识以及新主密钥卡的身份标识,以表示所述主密钥卡的身份标识为无效,所述备份用密钥卡的身份标识为当前身份标识,再向User发送交易应答,并将所述私钥信息分量以及备份用密钥卡的身份标识存储在Endorser的密钥卡中;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据写入操作集对世界状态中相应的客户端单元进行更新,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成挂失和恢复。
可选的,所述服务端成员的密钥卡中均存储有己方的公钥以及与所述公钥相对应的公钥;
当User与联盟链成员进行交互的过程中,消息发送方均利用各自的私钥进行签名,接收方均根据消息发送方的公钥进行相应解密。
可选的,所述客户端成员的密钥卡由服务端颁发,客户端根据密钥卡中存储的客户端公钥指针随机数、客户端私钥以及私钥参数进行计算,得到己方的实际公钥、实际私钥以及隐式证书。
本发明还提供了一种基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复系统,包括相互通信的联盟链成员,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有服务端公钥池;所述服务端的密钥卡存储有客户端公钥池,所述客户端公钥池中储存有与各所述客户端一一对应的客户端单元,所述客户端单元包括与客户端相对应的用户名、当前身份标识、公钥更新状态、隐式证书、备份身份标识列表以及无效身份标识列;所述客户端成员均配置有独立的用户名,在同一个用户名下的客户端成员配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有各自的客户端公钥指针随机数、客户端私钥以及私钥参数;
所述联盟链成员包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复方法。
上述基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复方法及系统,通过将私钥使用秘密共享以及隐式证书的方式通过区块链进行备份,可对用户私钥的安全进行有效的保护。针对现有的使用平台托管的方式备份私钥的方法,当用户密钥丢失时需要委托核心节点找回私钥,赋予了核心节点过大的权利,不能满足客户需求。被委托方能完全控制账户,甚至可以进行违背委托方意愿的操作。而本专利对私钥进行秘密共享,使得每个服务器均无法得知实际私钥,因此不存在拥有过大权利的核心节点,避免了私钥的泄露。
附图说明
图1为一个实施例中私钥备份、挂失及恢复系统的结构示意图;
图2为一个实施例中服务端密钥卡的密钥池分布示意图;
图3为一个实施例中客户端密钥卡的密钥池分布示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。
应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在中一个实施例中,提供了一种基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复方法,实施在相互通信的联盟链成员之间,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有服务端公钥池;所述服务端的密钥卡存储有客户端公钥池,所述客户端公钥池中储存有与各所述客户端一一对应的客户端单元,所述客户端单元包括与客户端相对应的用户名、当前身份标识、公钥更新状态、隐式证书、备份身份标识列表以及无效身份标识列;所述客户端成员均配置有独立的用户名,在同一个用户名下的客户端成员配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有各自的客户端公钥指针随机数、客户端私钥以及私钥参数。
在本实施例中,所述客户端成员的密钥卡由服务端颁发,客户端根据密钥卡中存储的客户端公钥指针随机数、客户端私钥以及私钥参数进行计算,得到己方的实际公钥、实际私钥以及隐式证书。
在本实施例中,在一个基于非对称密钥池体系中,对任意1个用户端与联盟链服务之间进行通信。下文中联盟链服务简称为服务端。本发明的密钥池体系中每个对象都具有密钥卡,可存储大数据量的密钥,也具备处理信息的能力。本发明中,用户端和服务端的本地系统中都存在相应需求的算法。
密钥卡从智能卡技术上发展而来,是结合了密码学技术、硬件安全隔离技术、量子物理学技术(搭载量子随机数发生器的情况下)的身份认证和加解密产品。密钥卡的内嵌芯片和操作系统可以提供密钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,密钥卡成为私钥和密钥池的安全载体。每一个密钥卡都有硬件PIN码保护,PIN码和硬件构成了用户使用密钥卡的两个必要因素。即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的密钥卡和用户PIN码,才可以登录系统。即使用户的PIN码被泄露,只要用户持有的密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的密钥卡遗失,拾到者由于不知道用户PIN码,也无法仿冒合法用户的身份。总之,密钥卡使得密钥等绝密信息不以明文形式出现在主机的磁盘及内存中,从而能有效保证绝密信息的安全。
图1所示,用户、联盟链成员都配备有密钥卡。
在本实施例中,密钥卡分为服务端密钥卡和客户端密钥卡。服务端密钥卡密钥区结构如图2所示,主要存储有服务端公钥池、服务端秘密共享私钥池和客户端公钥池。秘密共享私钥池中存储的内容为对s进行(t,n)秘密共享,n为私钥拆分共享秘密的碎片数,t为恢复私钥的最小碎片数,每个为si。客户端密钥卡密钥区结构如图3所示,主要存储有服务端公钥池、客户端公钥指针随机数、客户端私钥以及私钥参数。所述密钥卡均由服务端颁发。
服务端在密钥卡注册时,先由服务端选择椭圆曲线的域参数包含q,a,b, G和n。q代表有限域Fq的大小;变量a和b是椭圆曲线y2=x3+ax+b的系数,这里4a3+27b2≠0;G是基点生成元。服务端生成椭圆曲线后,选择基点生成元G,满足它的阶是整数n。服务端生成的私钥sk和公钥pk满足pk=sk*G。
算法的相关参数{q,a,b,G,n}写入到密钥卡指定区域。
联盟链成员搭载有相应的区块链服务,每个服务有1个ID。其中,由n个 Endorser组成分布式私钥生成服务。
对s进行(t,n)的秘密共享,n为私钥拆分共享秘密的碎片数,t为恢复私钥的最小碎片数,2≤t≤n。n个Endorser秘密共享了服务器的s,每个Ei得到的秘密为(xi,si),其中的任意t个Endorser可以恢复服务器的s。恢复具体步骤即:t 组(xi,si)求得拉格朗日参数求得s=∑λi*si。对每个私钥,f(x)均不同,但xi相同,且存储于每个密钥卡中。
对kU||rU进行(T,N)的秘密共享,N为私钥拆分共享秘密的碎片数,T为恢复私钥的最小碎片数,2≤T≤N。N个Endorser,每个Ej得到的秘密为(xj,SKj)。客户端将IDEj||xj||SKj保存于客户端密钥卡,Ej将ID||xj||SKj保存于Ej密钥卡。极端条件下,假设用户丢失当前密钥卡且没有备份密钥卡,则可以通过人工操作从多个Ej处获取多组(xj,SKj),并恢复kU||rU,根据kU||rU计算得到或从其他渠道得到PK作为公钥。
其中每个Endorser:
作为客户端:公钥PKE;私钥SKE;获取方式同PKU/SKU。
作为服务端:服务端公钥S=s*P,组成服务端公钥池;服务端秘密共享私钥 si,组成服务端秘密共享私钥池;客户端公钥池,每个单元组成如图:
UserName | IDU(当前ID) | tid | CertU | 备份ID列表 | 无效ID列表 |
单元内包括用户名UserName、当前ID、最近公钥更新交易所在tid(如没有更新记录,则为无效值)、用户证书CertU、备份ID列表以及无效ID列表。
具体的,区块链服务包括Peer服务,Order服务等。其中Peer服务分为 Committer和Endorser;Order服务由多个Orderer组成。区块链服务均带有Committer功能;保存有区块链以及智能合约,智能合约运行于密钥卡内;密钥卡中的世界状态WorldState包含客户端公钥池。
用户搭载有相应的区块链客户端,有1个ID,没有区块链服务,密钥卡私钥由t个Endorser颁发。
下文设User,Endorser,Orderer,Committer的标记如下:
(1)各自的ID分别为IDU,IDE,IDO,IDC;
(2)各自的公钥分别为PKU,PKE,PKO,PKC;
(3)各自的私钥分别为SKU,SKE,SKO,SKC;
根据交易流程,其中一用户可称为User,有1个或多个区块链账户,每个账户对应1个公钥/私钥的组合。提供相应服务的联盟链成员可作为Endorser, Orderer或Committer。
在本实施例中,客户端的密钥卡由服务端颁发,并且所述密钥卡的内容也在服务端中生成。
设ID为IDU的客户端为客户端CU,客户端CU的密钥卡内客户端私钥为 kU,客户端公钥指针随机数为rkU=timestamp,rkSU=HASH(rkU),timestamp为 kU生成时间。根据客户端私钥kU以及G计算得到RU=kU*G。将rkU结合指针函数frk得到指针rkpU,通过rkpU在服务端公钥池中取出公钥pkU。计算PU =RU+pkU。计算得到客户端CU的隐式证书CertU=Encode(PU,IDU, timestamp)。Encode(*)是指一种包括了*信息的证书的组成和实际编码方式,具体根据应用而定。再对CertU进行哈希计算得到eU=H(CertU)。
Ei根据rkU、rkSU结合指针函数frk得到指针rkpU、rkpSU,通过rkpU、 rkpSU在服务端秘密共享私钥池取出私钥skUi和私钥skSUi。计算私钥参数 rUi=eU*skUi+skSUi(modn)。Ei将rUi发给客户端密钥卡,客户端密钥卡计算 rU=eU*skU+skSU=eU*(∑λi*skUi)+(∑λi*skSUi)=∑λi*(eU*skUi+skSUi)=∑λi*rUi。即客户端密钥卡得到rU=∑λi*rUi。
将服务端公钥池、客户端公钥指针随机数rkU、客户端私钥kU以及私钥参数rU存入客户端密钥卡的对应存储区,完成对客户端的非对称密钥颁发即密钥卡颁发。
在本实施例中,客户端根据客户端公钥指针随机数rkU、客户端私钥kU以及私钥参数rU进行计算获得己方的实际公钥、实际私钥以及隐式证书。
具体的,客户端根据密钥卡内客户端私钥kU以及G计算得到RU=kU*G。客户端提取卡内公钥指针随机数rkU,将rkU结合指针函数frk得到指针rkpU,通过rkpU在服务端公钥池中取出公钥pkU。计算PU=RU+pkU。计算得到客户端CU的隐式证书CertU=Encode(PU,IDU,timestamp)。再对CertU进行哈希计算得到eU=H(CertU)。计算得到实际的私钥SKU=eU*kU+rU(mod n)客户端提取卡内公钥指针随机数rkSU,将rkSU结合指针函数frk得到指针rkpSU,通过 rkpSU在服务端公钥池中取出公钥pkSU。计算得到实际的公钥PKU=
eU*PU+pkSU。也可以用PKU=SKU*G计算得到实际的公钥PKU。客户端CU 将CertU公布。CertU不含有密码相关信息,因此无需加密即可抵抗量子计算。
在本实施例中,其他客户端可根据客户端CU公开的隐式证书获取对应的实际公钥。
具体的,其他客户端可得到客户端CU的隐式证书CertU后,对CertU进行哈希计算得到eU=H(CertU)。计算得到rkSU=HASH(timestamp),将rkSU结合指针函数frk得到指针rkpSU,通过rkpSU在服务端公钥池中取出公钥pkSU。计算得到实际公钥PKU=eU*PU+pkSU。
在本实施例中,其中一客户端成员为User,所述私钥备份、挂失及恢复方法包括:基于联盟链和隐式证书实施私钥备份、挂失及恢复至少其中一者;
若增加新的备份用密钥卡,则实施私钥备份,User向服务端成员提出交易,基于联盟链根据所述备份用密钥卡对世界状态中的相应客户端单元进行更新,完成私钥备份;
若主密钥卡丢失,则实施挂失及恢复,由User任意一个备用密钥卡向服务端成员提出交易,基于联盟链在世界状态中获取所述主密钥卡的客户端私钥以及私钥参数,并根据所述客户端私钥以及私钥参数计算得到主密钥的实际私钥以及实际公钥,以代替该User的主密钥卡,完成挂失及恢复。
具体的的,联盟链成员中还包括提供相应服务的Endorser、Orderer及Committer,所述私钥备份、挂失及恢复方法具体包括:
User向Endorser提出交易;
Endorser收到User提出的交易并相应执行,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给 User;
User接收交易通知后相应验证。
在本实施例中,若增加新的备份用密钥卡,则实施私钥备份,具体包括:
User向Endorser提出交易,根据私钥密文、备份用密钥卡的身份标识和隐式证书、以及User用户名生成加密消息写入所述交易中;
Endorser收到User提出的交易,经验证后,在交易应答中的读出操作集中写入User用户名下的所有密钥卡身份标识以及属性列表,在交易应答中的写入操作集中写入备份用密钥卡的身份标识、属性列表以及所述加密消息,再向User 发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成私钥备份。
具体的,所述私钥密文为所述备份用密钥卡的公钥对主密钥卡的客户端私钥以及私钥参数进行加密得到。
在本实施例中,若主密钥卡丢失,则实施挂失及恢复时,具体包括:
Use选择一个备用密钥卡向Endorser提出交易,基于联盟链在世界状态中查询所述主密钥卡的客户端私钥以及私钥参数;
所述备用密钥卡获取所述主密钥卡的客户端私钥以及私钥参数后,向多个Endorser提出交易,基于联盟链将自身的客户端私以及私钥参数替换为所述主密钥卡的客户端私钥以及私钥参数,以完成私钥挂失及恢复。
具体的,所述Use选择一个备用密钥卡向Endorser提出交易,基于联盟链在世界状态中查询所述主密钥卡的客户端私钥以及私钥参数具体包括:
User选择一个备用密钥卡向Endorser提出交易,所述交易中包括所述备份用密钥卡的身份标识、主密钥卡的身份标识以及User的用户名;
Endorser收到User提出的交易,经验证后,根据所述备用密钥卡的身份标识在世界状态中获取相应的加密消息,并将加密消息写入交易应答发送至User;
User接收交易应答后,根据所述加密消息进行相应解密,得到所述主密钥卡的客户端私钥以及私钥参数。
具体的,所述备用密钥卡获取所述主密钥卡的客户端私钥以及私钥参数后,向多个Endorser提出交易,基于联盟链将自身的客户端私以及私钥参数替换为所述主密钥卡的客户端私钥以及私钥参数,以完成私钥挂失及恢复具体包括:
User使用所述备用密钥卡向多个Endorser提出交易,所述交易中包括有根据所述主密钥卡的客户端私钥以及私钥参数得到的多个私钥信息分量,并将各所述私钥信息分量分别写入多个交易中;
多个Endorser收到User提出的交易,经验证后,在交易应答中的写入操作集中写入丢失的主密钥卡的身份标识以及新主密钥卡的身份标识,以表示所述主密钥卡的身份标识为无效,所述备份用密钥卡的身份标识为当前身份标识,再向User发送交易应答,并将所述私钥信息分量以及备份用密钥卡的身份标识存储在Endorser的密钥卡中;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据写入操作集对世界状态中相应的客户端单元进行更新,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成挂失和恢复。
再本实施例中,所述服务端成员的密钥卡中均存储有己方的公钥以及与所述公钥相对应的公钥;当User与联盟链成员进行交互的过程中,消息发送方均利用各自的私钥进行签名,接收方均根据消息发送方的公钥进行相应解密。
就各步骤细节进一步描述抗量子计算私钥备份、挂失及恢复的具体流程如下所示:
实施例1:私钥备份流程:
步骤1:User提出交易。
User的非对称密钥对为PKU/SKU。User的n个备份用密钥卡的非对称密钥对为PKUi/SKUi,1≤i≤n。其中身份为IDU的密钥卡的ID/公钥与公钥池中 UserName对应的ID/公钥相等,其余密钥卡的ID/公钥与公钥池中UserName对应的ID/公钥不相等。
User使用PKUi对kU和rU加密得到
SKUEi=ENC(kU||rU,PKUi)=(SKUERi,SKUEci,SKUEti)。ENC(m,PK)表示使用公钥PK对消息m进行加密,使用ECIES算法。
User向N个Endorser发送交易,交易tx可表示为{proposal,userSig'}。
proposal可表示为{IDU,chaincodeID,txPayload,timestamp}。链码chaincodeID即使用智能合约函数的编号;txPayload即函数的参数,可表示为 其中UserName表示用户名,每个密钥卡一个ID,每个用户一个UserName,该用户名下当前ID为IDU,备份ID为IDU1~IDUn;RPKUTi为公钥指针随机数,可以用1个指针函数根据公钥池得到SKUERTi,使用SKUERTi对SKUERi进行偏移量计算; timestamp即时间戳。
userSig即User对proposal的签名。计算
userSig=SIGN(proposal||xj||SKj,SKU)={UR,US}。SIGN(m,SK)表示使用私钥SK 对消息m进行签名,使用ECDSA算法。
User根据匹配的随机数发生器生成随机数RPKUR,将RPKUR结合指针函数frk得到指针PPKUR,通过PPKUR在服务端公钥池中取出公钥PKUR。使用 PKUR对UR进行偏移量计算后,连同RPKUR一起得到
userSig'=RPKUR||{UR-PKUR,US}。
步骤2:Endorser执行交易。
Endorser根据RPKUR结合指针函数frk得到指针PPKUR并通过PPKUR在服务端公钥池中取出公钥PKUR。对(UR-PKUR)加上PKUR得到UR。Endorser 根据User的CertU使用上文所述方法得到PKU,根据IDU取出其对应的xj||SKj,使用PKU对userSig进行验证。验证通过后,判断IDU是否具有公钥备份的权限,并查看proposal中的timestamp与本地时间的差异是否位于合理范围内。若所有判断通过,则认可该交易;若有判断不通过,则不认可该交易。
验证通过后,对该交易进行处理,即根据chaincodeID执行chaincode,生成读写操作集readset和writeset。readset即UserName名下所有ID及其属性的列表,属性包括当前ID、备份ID、无效ID;writeset即需要新增的ID及其属性的列表,以及
步骤3:Endorser发送交易应答。
Endorser将包含读写操作集的交易应答rtx返回给User。交易应答rtx可表示为{tran-proposal,epSig'}。
tran-proposal即申请应答可表示为{IDE,tid,chaincodeID,txPayload,readset, writeset}。包括交易的序号tid(可表示为tid=HASH(proposal)),chaincodeID和 txPayload,以及读写操作集readset和writeset。
epSig即使用Endorser的私钥SKE对tran-proposal签名,可表示为 SIGN(tran-proposal,SKE)={ER,ES}。Endorser根据匹配的随机数发生器生成随机数RPKER,将RPKER结合指针函数frk得到指针PPKER,通过PPKER在服务端公钥池中取出公钥PKER。使用PKER对ER进行偏移量计算后,连同RPKER 一起得到epSig'=RPKER||{ER-PKER,ES}。
步骤4:User发送背书(Endorsement)etx到Orderer。
User收到交易应答后,筛选出被Endorser认可的交易,根据RPKER结合指针函数frk得到指针PPKER,通过PPKER在服务端公钥池中取出公钥PKER。对(ER-PKER)加上PKER得到ER。User根据CertE得到公钥PKE对签名epSig 进行验证。
User收到多个交易应答并分别验证通过后,并将选择得到的rtx集合组成一个集合etx即背书,发送至Orderer。
步骤5:Orderer发送排序后的etx集合到Committer。
Orderer在积累到一定数量的etx后,Orderer对etx进行排序。在达到bolck 的最大大小或者达到超时时间后,Orderer将多个etx排序好并打包成区块即 etxs,etxs包括序列号seqno以及上个联盟链区块的哈希值prevhash。背书集合 etxs可表示为{seqno,prevhash,∑etx}。Orderer将etxs发送给Committer。
步骤6:每个Committer验证交易。
每个Committer收到排序后的背书集合后,Committer根据背书策略对etx 集合进行验证,包括对读写操作集进行检查等。检查完成后,Committer对本地的联盟链数据库进行读写操作集的实际执行(读写操作集检查失败的交易除外),并记录每一笔交易的交易结果到区块链中。完成后即表示Committer执行完毕。
步骤7:Committer发送交易通知。
多个Committer执行完毕后,将交易结果(成功或失败)的通知发送至User。
Committer生成交易通知ntx,包括tid,result(即成功或失败)以及签名committerSig。committerSig即Committer使用私钥SKC对result的签名,可表示为SIGN(result,SKC)={CR,CS}。Committer根据匹配的随机数发生器生成随机数RPKCR,将RPKCR结合指针函数frk得到指针PPKCR,通过PPKCR在服务端公钥池中取出公钥PKCR。使用PKCR对CR进行偏移量计算后,连同 RPKCR一起得到committerSig'=RPKCR||{CR-PKCR,CS}。
User收到后,根据RPKCR结合指针函数frk得到指针PPKCR,通过PPKCR 在服务端公钥池中取出公钥PKCR。对(CR-PKCR)加上PKCR得到CR。User根据CertC得到Committer的公钥PKC并对签名committerSig'进行验证,通过后信任该交易通知。
实施例2:私钥挂失及恢复流程:
身份为IDU的密钥卡丢失后,用户使用身份为IDUi的密钥卡执行本流程。
2.1查询kU||rU
步骤1:User提出交易。
User向N个Endorser发送交易,交易tx可表示为{proposal,userSig'}。
proposal可表示为{IDUi,chaincodeID,txPayload,timestamp}。链码chaincodeID即使用智能合约函数的编号;txPayload即函数的参数,可表示为txPayload=UserName||IDU;timestamp即时间戳。
userSig即User对proposal的签名。计算
userSig=SIGN(proposal,SKUi)={UR,US}。User根据匹配的随机数发生器生成随机数RPKUR,将RPKUR结合指针函数frk得到指针PPKUR,通过PPKUR在服务端公钥池中取出公钥PKUR。使用PKUR对UR进行偏移量计算后,连同 RPKUR一起得到userSig'=RPKUR||{UR-PKUR,US}。
步骤2:Endorser执行交易。
Endorser根据RPKUR结合指针函数frk得到指针PPKUR并通过PPKUR在服务端公钥池中取出公钥PKUR。对(UR-PKUR)加上PKUR得到UR。Endorser 根据IDUi,从区块链记录获得其对应的证书CertUi,根据CertUi得到PKUi,使用PKUi对userSig进行验证。验证通过后,判断IDUi是否具有公钥下载的权限,并查看proposal中的timestamp与本地时间的差异是否位于合理范围内。若所有判断通过,则认可该交易;若有判断不通过,则不认可该交易。
验证通过后,对该交易进行处理,即根据chaincodeID执行chaincode,生成读写操作集readset和writeset。readset可表示为
{IDUi||CertUi||RPKUTi||SKUERi-SKUERTi||SKUEci||SKUEti},writeset设置为空。如不认可该交易,readset/writeset为无效值。
步骤3:Endorser发送交易应答。
Endorser将包含读写操作集的交易应答rtx返回给User。交易应答rtx可表示为{tran-proposal,epSig'}。
tran-proposal即申请应答可表示为{IDE,tid,chaincodeID,txPayload,readset, writeset}。包括交易的序号tid(可表示为tid=HASH(proposal)),chaincodeID和 txPayload,以及读写操作集readset和writeset。
epSig即使用Endorser的私钥SKE对tran-proposal签名,可表示为 SIGN(tran-proposal,SKE)={ER,ES}。Endorser根据匹配的随机数发生器生成随机数RPKER,将RPKER结合指针函数frk得到指针PPKER,通过PPKER在服务端公钥池中取出公钥PKER。使用PKER对ER进行偏移量计算后,连同RPKER 一起得到epSig'=RPKER||{ER-PKER,ES}。
步骤4:User收到结果。
User收到交易应答后,筛选出被Endorser认可的交易,根据RPKER结合指针函数frk得到指针PPKER,通过PPKER在服务端公钥池中取出公钥PKER。对(ER-PKER)加上PKER得到ER。User根据CertE得到公钥PKE对签名epSig 进行验证。
User对验证成功的rtx,查看其readset是否一致。
User根据RPKUTi结合指针函数根据公钥池得到SKUERTi,对 (SKUERi-SKUERTi)加上SKUERTi得到SKUERi,从而得到
SKUEi=(SKUERi,SKUEci,SKUEti)。
User使用SKUi解密SKUEi,即执行DEC(SKUEi,SKUi)得到kU||rU,DEC 是ECIES解密算法。
2.2挂失及恢复
步骤1:User提出交易。
User的主密钥卡丢失,使用第i个密钥卡进行私钥挂失及私钥恢复。
User向N个Endorser发送交易,交易tx可表示为{proposal,txdata',userSig'}。
proposal可表示为{IDUi,chaincodeID,txPayload,timestamp}。链码chaincodeID即使用智能合约函数的编号;txPayload即函数的参数,可表示为 txPayload=UserName||IDU||Msg,Msg表示挂失及恢复的消息指令;timestamp即时间戳。
对kU||rU进行(T,N)的秘密共享,得到多组(xj||SKj),User根据CertE获得Endorser的公钥PKE,使用PKE加密xj||SKj得到txdata,可表示为 txdata=ENC(xj||SKj,PKE)=(txdataR,txdatac,txdatat)。
User根据匹配的随机数发生器生成随机数RPKtxdataR,将RPKtxdataR结合指针函数frk得到指针PPKtxdataR,通过PPKtxdataR在服务端公钥池中取出公钥PKtxdataR。使用PKtxdataR对txdataR进行偏移量计算后,连同RPKtxdataR 一起得到txdata'=RPKtxdataR||(txdataR-PKtxdataR,txdatac,txdatat)。
userSig即User对proposal的签名。计算
userSig=SIGN(proposal||txdata,SKUi)={UR,US}。User根据匹配的随机数发生器生成随机数RPKUR,将RPKUR结合指针函数frk得到指针PPKUR,通过PPKUR 在服务端公钥池中取出公钥PKUR。使用PKUR对UR进行偏移量计算后,连同RPKUR一起得到userSig'=RPKUR||{UR-PKUR,US}。
步骤2:Endorser执行交易。
Endorser根据RPKtxdataR结合指针函数根据公钥池得到PKtxdataR,对(txdataR-PKtxdataR)加上PKtxdataR得到txdataR,从而得到txdata= (txdataR,txdatac,txdatat)。
Endorser使用SKE解密txdata得到xj||SKj。
Endorser根据RPKUR结合指针函数frk得到指针PPKUR并通过PPKUR在服务端公钥池中取出公钥PKUR。对(UR-PKUR)加上PKUR得到UR。Endorser 根据CertUi获得PKU,使用PKU对userSig进行验证。验证通过后,判断proposal 中的timestamp与本地时间的差异是否位于合理范围内。若所有判断通过,则认可该交易;若有判断不通过,则不认可该交易。
验证通过后,对该交易进行处理,即根据chaincodeID执行chaincode,生成读写操作集readset和writeset。readset即UserName名下所有ID及其属性的列表;writeset可表示为IDU||IDUi,表明IDU标记为无效ID,IDUi标记为当前ID。如不认可该交易,readset/writeset为无效值。
若认可该交易,Ej将IDUi||xj||SKj保存于Ej密钥卡。
步骤3:Endorser发送交易应答。
Endorser将包含读写操作集的交易应答rtx返回给User。交易应答rtx可表示为{tran-proposal,epSig'}。
tran-proposal即申请应答可表示为{IDE,tid,chaincodeID,txPayload,readset, writeset}。包括交易的序号tid(可表示为tid=HASH(proposal)),chaincodeID和 txPayload,以及读写操作集readset和writeset。readset=UserName名下所有ID 及其属性的列表。writeset=IDU||IDUi,表明IDU标记为无效ID,IDUi标记为当前ID。
epSig即使用Endorser的私钥SKE对tran-proposal签名,可表示为 SIGN(tran-proposal,SKE)={ER,ES}。Endorser根据匹配的随机数发生器生成随机数RPKER,将RPKER结合指针函数frk得到指针PPKER,通过PPKER在服务端公钥池中取出公钥PKER。使用PKER对ER进行偏移量计算后,连同RPKER 一起得到epSig'=RPKER||{ER-PKER,ES}。
步骤4:User发送背书(Endorsement)etx到Orderer。
User收到交易应答后,筛选出被Endorser认可的交易,根据RPKER结合指针函数frk得到指针PPKER,通过PPKER在服务端公钥池中取出公钥PKER。对(ER-PKER)加上PKER得到ER。User根据CertE得到PKE,并使用公钥PKE 对签名epSig进行验证。
对验证成功的rtx,查看其readset是否一致。通过后,将选择得到的rtx集合组成一个集合etx即背书,发送至Orderer。
User将多组IDE||xj||SKj暂存于客户端密钥卡。
步骤5:Orderer发送排序后的etx集合到Committer。
Orderer在积累到一定数量的etx后,Orderer对etx进行排序。在达到bolck 的最大大小或者达到超时时间后,Orderer将多个etx排序好并打包成区块即 etxs,etxs包括序列号seqno以及上个联盟链区块的哈希值prevhash。背书集合 etxs可表示为{seqno,prevhash,∑etx}。Orderer将etxs发送给Committer。
步骤6:每个Committer验证交易。
每个Committer收到排序后的背书集合后,Committer根据背书策略对etx 集合进行验证,包括查看rtx、验证数字签名epSig,还包括验证readset,查看通过验证的rtx是否达到秘密共享要求(>=t个)等。检查完成后,Committer 认可该etx为有效背书,并作出标记以示有效。否则Committer不认可该etx为有效背书,并作出标记以示无效。
然后Committer将区块写入区块链中。Committer根据区块链中的有效背书,更新本地的世界状态,即本地密钥池:IDU放入无效ID列表;IDUi标记为当前ID。
步骤7:Committer发送交易通知。
多个Committer执行完毕后,将交易结果(成功或失败)的通知发送至User。
Committer生成交易通知ntx,包括tid,result(即成功或失败)以及签名committerSig。committerSig即Committer使用私钥SKC对result的签名,可表示为SIGN(result,SKC)={CR,CS}。Committer根据匹配的随机数发生器生成随机数RPKCR,将RPKCR结合指针函数frk得到指针PPKCR,通过PPKCR在服务端公钥池中取出公钥PKCR。使用PKCR对CR进行偏移量计算后,连同 RPKCR一起得到committerSig'=RPKCR||{CR-PKCR,CS}。
User收到后,根据RPKCR结合指针函数frk得到指针PPKCR,通过PPKCR 在服务端公钥池中取出公钥PKCR。对(CR-PKCR)加上PKCR得到CR。User根据CertC得到公钥PKC并对签名committerSig'进行验证,通过后使用kU||rU替换本地kUi||rUi。根据kU||rU计算得到SKU作为私钥。根据kU||rU计算得到或从其他渠道得到PKU作为公钥。User将多组IDE||xj||SKj保存于客户端密钥卡。至此密钥卡的挂失及恢复完成。
2.3后续正常交易
User向N个Endorser发送交易,交易tx可表示为{proposal,userSig}。proposal可表示为{IDUi,chaincodeID,txPayload,timestamp}。在userSig中加入部分秘密 xj||SKj,可表示为SIGN(proposal||xj||SKj,SKU)。后续步骤与上文相同。已挂失的密钥卡虽然拥有SKU,且能获取公开的IDUi,但由于没有匹配的部分秘密(即 xj||SKj),仍然无法签名并获得Endorser的认可。
上述基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复方法,利使用密钥卡存储公钥和私钥,其中公钥存储在密钥卡的公钥池中。密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。由于量子计算机无法得到用户公钥,于是也无法得到对应的私钥。另外,本发明中,基于公私钥的抗量子计算签名和加密也保证了所传输消息的安全性,即使在量子计算机存在的情况下,也难以被推导出私钥。因此该方案不容易被量子计算机破解。
将私钥使用秘密共享的方式通过区块链进行备份,可对用户私钥的安全进行有效的保护。针对现有的使用平台托管的方式备份私钥的方法,当用户密钥丢失时需要委托核心节点找回私钥,赋予了核心节点过大的权利,不能满足客户需求。被委托方能完全控制账户,甚至可以进行违背委托方意愿的操作。而本专利对私钥进行秘密共享,使得每个服务器均无法得知实际私钥,因此不存在拥有过大权利的核心节点,避免了私钥的泄露。同时,每个服务器获得的私钥分量还可以作为对密钥卡的认证密钥,每次交易均在密钥卡的签名中加入该认证密钥,而已挂失的密钥卡并不具备该认证密钥,使得已挂失的密钥卡无法生成签名并获得Endorser的认可,即已挂失的密钥卡被有效作废。万一密钥卡丢失,如果没有备份密钥卡,则可以通过人工方式从多个服务器找回;如果有备份密钥卡,则可以直接使用备份密钥卡通过区块链交易进行挂失及恢复,原密钥卡同时被作废。备份密钥卡后,挂失及恢复的操作非常简单迅速,使得用户可以方便地进行密钥找回。另外通过备份密钥卡,对应的权益将不会随着当前密钥卡的丢失而消失。
在本方法中将基于隐式证书密码学中的隐式证书改为了隐式证书加上公钥随机数或者部分公钥的形式。并且私钥服务器的私钥通过秘密共享的方式进行分布式存储,而相关的公私钥又分别存储在密钥卡中,使得私钥被窃取的风险很大程度的降低。没有一个私钥服务器掌握整个私钥也使得整体的安全得到了提高。
同时,本专利在流程中的不同场合用到了偏移量,这些偏移量都需要密钥卡中的公钥池的参与才能计算得到,没有密钥卡的其他方将无法破解这些被偏移量保护的数据。偏移量的使用对数据进行了加密,使得传输过程更加安全,具有抗量子的特性;并且该加密方式比普通加密方式的计算量更小,因此避免了使用普通加密方式来抵抗量子计算机的攻击,降低了各方的设备负担。
上述方法中,不存在中心服务器,区块链是一种无中心网络通信系统,避免了中心服务器在极端情况可能发生网络问题而导致中心服务器通信功能丧失,从而无法进行私钥备份、挂失及恢复;另外,由于不存在中心服务器,攻击者无法发动拒绝服务式攻击,保证了私钥备份、挂失及恢复系统的正常运行。
在一个实施例中,提供了一种计算机设备,即基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复系统,该计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述抗量子计算私钥备份、挂失及恢复方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
其中一实施例中,提供了一种基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复系统,包括相互通信的联盟链成员,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有服务端公钥池;所述服务端的密钥卡存储有客户端公钥池,所述客户端公钥池中储存有与各所述客户端一一对应的客户端单元,所述客户端单元包括与客户端相对应密钥卡信息;的用户名、当前身份标识、公钥更新状态、隐式证书、备份身份标识列表以及无效身份标识列;所述客户端成员均配置有独立的用户名,在同一个用户名下的客户端成员配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有各自的客户端公钥指针随机数、客户端私钥以及私钥参数;
所述联盟链成员包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (7)
1.基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复方法,实施在相互通信的联盟链成员之间,所述联盟链成员包括客户端成员以及服务端成员,其特征在于,各方均配置有密钥卡,所有密钥卡均存储有服务端公钥池;
所述服务端的密钥卡存储有客户端公钥池,所述客户端公钥池中储存有与各所述客户端一一对应的客户端单元,所述客户端单元包括与客户端相对应的用户名、当前身份标识、公钥更新状态、隐式证书、备份身份标识列表以及无效身份标识列;
所述客户端成员均配置有独立的用户名,在同一个用户名下的客户端成员配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有各自的客户端公钥指针随机数、客户端私钥以及私钥参数;
其中一客户端成员为User,所述私钥备份、挂失及恢复方法包括:基于联盟链和隐式证书实施私钥备份、挂失及恢复至少其中一者;
若增加新的备份用密钥卡,则实施私钥备份,User向服务端成员提出交易,基于联盟链根据所述备份用密钥卡对世界状态中的相应客户端单元进行更新,完成私钥备份;
若主密钥卡丢失,则实施挂失及恢复,由User任意一个备用密钥卡向服务端成员提出交易,基于联盟链在世界状态中获取所述主密钥卡的客户端私钥以及私钥参数,并根据所述客户端私钥以及私钥参数计算得到主密钥的实际私钥以及实际公钥,以代替该User的主密钥卡,完成挂失及恢复;
联盟链成员中还包括提供相应服务的Endorser、Orderer及Committer,所述私钥备份、挂失及恢复方法具体包括:
User向Endorser提出交易;
Endorser收到User提出的交易并相应执行,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证;
若增加新的备份用密钥卡,则实施私钥备份,具体包括:
User向Endorser提出交易,根据私钥密文、备份用密钥卡的身份标识和隐式证书、以及User用户名生成加密消息写入所述交易中;
Endorser收到User提出的交易,经验证后,在交易应答中的读出操作集中写入User用户名下的所有密钥卡身份标识以及属性列表,在交易应答中的写入操作集中写入备份用密钥卡的身份标识、属性列表以及所述加密消息,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成私钥备份;
若主密钥卡丢失,则实施挂失及恢复时,具体包括:
Use选择一个备用密钥卡向Endorser提出交易,基于联盟链在世界状态中查询所述主密钥卡的客户端私钥以及私钥参数;
所述备用密钥卡获取所述主密钥卡的客户端私钥以及私钥参数后,向多个Endorser提出交易,基于联盟链将自身的客户端私以及私钥参数替换为所述主密钥卡的客户端私钥以及私钥参数,以完成私钥挂失及恢复。
2.根据权利要求1所述的私钥备份、挂失及恢复方法,其特征在于,
所述私钥密文为所述备份用密钥卡的公钥对主密钥卡的客户端私钥以及私钥参数进行加密得到。
3.根据权利要求1所述的私钥备份、挂失及恢复方法,其特征在于,所述Use选择一个备用密钥卡向Endorser提出交易,基于联盟链在世界状态中查询所述主密钥卡的客户端私钥以及私钥参数具体包括:
User选择一个备用密钥卡向Endorser提出交易,所述交易中包括所述备份用密钥卡的身份标识、主密钥卡的身份标识以及User的用户名;
Endorser收到User提出的交易,经验证后,根据所述备用密钥卡的身份标识在世界状态中获取相应的加密消息,并将加密消息写入交易应答发送至User;
User接收交易应答后,根据所述加密消息进行相应解密,得到所述主密钥卡的客户端私钥以及私钥参数。
4.根据权利要求1所述的私钥备份、挂失及恢复方法,其特征在于,所述备用密钥卡获取所述主密钥卡的客户端私钥以及私钥参数后,向多个Endorser提出交易,基于联盟链将自身的客户端私以及私钥参数替换为所述主密钥卡的客户端私钥以及私钥参数,以完成私钥挂失及恢复具体包括:
User使用所述备用密钥卡向多个Endorser提出交易,所述交易中包括有根据所述主密钥卡的客户端私钥以及私钥参数得到的多个私钥信息分量,并将各所述私钥信息分量分别写入多个交易中;
多个Endorser收到User提出的交易,经验证后,在交易应答中的写入操作集中写入丢失的主密钥卡的身份标识以及新主密钥卡的身份标识,以表示所述主密钥卡的身份标识为无效,所述备份用密钥卡的身份标识为当前身份标识,再向User发送交易应答,并将所述私钥信息分量以及备份用密钥卡的身份标识存储在Endorser的密钥卡中;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据写入操作集对世界状态中相应的客户端单元进行更新,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成挂失和恢复。
5.根据权利要求1所述的私钥备份、挂失及恢复方法,其特征在于,所述服务端成员的密钥卡中均存储有己方的公钥以及与所述公钥相对应的公钥;
当User与联盟链成员进行交互的过程中,消息发送方均利用各自的私钥进行签名,接收方均根据消息发送方的公钥进行相应解密。
6.根据权利要求1所述的私钥备份、挂失及恢复方法,其特征在于,
所述客户端成员的密钥卡由服务端颁发,客户端根据密钥卡中存储的客户端公钥指针随机数、客户端私钥以及私钥参数进行计算,得到己方的实际公钥、实际私钥以及隐式证书。
7.基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复系统,包括相互通信的联盟链成员,所述联盟链成员包括客户端成员以及服务端成员,其特征在于,各方均配置有密钥卡,所有密钥卡均存储有服务端公钥池;所述服务端的密钥卡存储有客户端公钥池,所述客户端公钥池中储存有与各所述客户端一一对应的客户端单元,所述客户端单元包括与客户端相对应用户名、当前身份标识、公钥更新状态、隐式证书、备份身份标识列表以及无效身份标识列;所述客户端成员均配置有独立的用户名,在同一个用户名下的客户端成员配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有各自的客户端公钥指针随机数、客户端私钥以及私钥参数;
所述联盟链成员包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现权利要求1~6任一项所述的基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910991424.1A CN110690957B (zh) | 2019-10-18 | 2019-10-18 | 抗量子计算私钥备份、挂失及恢复方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910991424.1A CN110690957B (zh) | 2019-10-18 | 2019-10-18 | 抗量子计算私钥备份、挂失及恢复方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110690957A CN110690957A (zh) | 2020-01-14 |
CN110690957B true CN110690957B (zh) | 2023-03-07 |
Family
ID=69113524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910991424.1A Active CN110690957B (zh) | 2019-10-18 | 2019-10-18 | 抗量子计算私钥备份、挂失及恢复方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110690957B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111245611B (zh) * | 2020-01-21 | 2023-01-24 | 南京如般量子科技有限公司 | 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统 |
CN111277978B (zh) * | 2020-01-21 | 2022-11-01 | 南京如般量子科技有限公司 | 基于秘密共享和联盟链的车联网系统及方法 |
CN111277411B (zh) * | 2020-01-21 | 2022-12-30 | 南京如般量子科技有限公司 | 基于秘密共享和多个移动设备的抗量子计算车载网身份认证系统及其方法 |
CN112633884B (zh) * | 2020-12-30 | 2022-11-18 | 标信智链(杭州)科技发展有限公司 | 交易主体身份证书的本地私钥恢复方法及装置 |
CN113421093A (zh) * | 2021-04-28 | 2021-09-21 | 中国电子科技网络信息安全有限公司 | 一种区块链系统证书简化存储方法 |
CN113691373B (zh) * | 2021-08-20 | 2022-06-10 | 华中农业大学 | 一种基于联盟区块链的抗量子密钥托管系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109146468A (zh) * | 2018-08-22 | 2019-01-04 | 爱刷(北京)科技股份有限公司 | 一种数字通证的备份与恢复方法 |
CN109379189A (zh) * | 2018-12-17 | 2019-02-22 | 江苏恒宝智能系统技术有限公司 | 区块链账户密钥备份及恢复方法、装置、终端及系统 |
CN109587276A (zh) * | 2019-01-11 | 2019-04-05 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种数据备份方法、系统及相关组件 |
CN109687963A (zh) * | 2019-01-15 | 2019-04-26 | 如般量子科技有限公司 | 基于公钥池的抗量子计算联盟链交易方法和系统 |
CN110086626A (zh) * | 2019-04-22 | 2019-08-02 | 如般量子科技有限公司 | 基于非对称密钥池对的量子保密通信联盟链交易方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10644885B2 (en) * | 2015-07-14 | 2020-05-05 | Fmr Llc | Firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems |
-
2019
- 2019-10-18 CN CN201910991424.1A patent/CN110690957B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109146468A (zh) * | 2018-08-22 | 2019-01-04 | 爱刷(北京)科技股份有限公司 | 一种数字通证的备份与恢复方法 |
CN109379189A (zh) * | 2018-12-17 | 2019-02-22 | 江苏恒宝智能系统技术有限公司 | 区块链账户密钥备份及恢复方法、装置、终端及系统 |
CN109587276A (zh) * | 2019-01-11 | 2019-04-05 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种数据备份方法、系统及相关组件 |
CN109687963A (zh) * | 2019-01-15 | 2019-04-26 | 如般量子科技有限公司 | 基于公钥池的抗量子计算联盟链交易方法和系统 |
CN110086626A (zh) * | 2019-04-22 | 2019-08-02 | 如般量子科技有限公司 | 基于非对称密钥池对的量子保密通信联盟链交易方法和系统 |
Non-Patent Citations (2)
Title |
---|
Performance Benchmarking and Optimizing Hyperledger Fabric Blockchain Platform;P. Thakkar等;《2018 IEEE 26th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS)》;20181108;全文 * |
分布式网络环境下基于区块链的密钥管理方案;戴千一等;《网络与信息安全学报》;20180915(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110690957A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110690957B (zh) | 抗量子计算私钥备份、挂失及恢复方法及系统 | |
CN109687963B (zh) | 基于公钥池的抗量子计算联盟链交易方法和系统 | |
CN110929290B (zh) | 基于联盟链的私钥门限备份、挂失及恢复系统及其方法 | |
CN110661613B (zh) | 基于联盟链的抗量子计算隐式证书颁发方法及系统 | |
CN110830244B (zh) | 基于身份秘密共享和联盟链的抗量子计算车联网方法及系统 | |
CN110086626B (zh) | 基于非对称密钥池对的量子保密通信联盟链交易方法和系统 | |
CN110519046B (zh) | 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统 | |
CN110930251B (zh) | 基于联盟链和隐式证书的抗量子计算云存储方法及系统 | |
CN110737915B (zh) | 基于隐式证书的抗量子计算匿名身份识别方法及系统 | |
CN110868295B (zh) | 基于秘密共享的抗量子计算联盟链系统及通信方法 | |
CN110768781B (zh) | 基于联盟链且抗量子计算的公私钥颁发方法及系统 | |
CN109918888B (zh) | 基于公钥池的抗量子证书颁发方法及颁发系统 | |
CN111327419B (zh) | 基于秘密共享的抗量子计算区块链的方法及系统 | |
CN110138548B (zh) | 基于非对称密钥池对和dh协议的量子通信服务站密钥协商方法和系统 | |
CN111211910A (zh) | 基于秘密共享公钥池的抗量子计算ca及证书颁发系统及其颁发和验证方法 | |
CN111355591A (zh) | 一种基于实名认证技术的区块链账号安全的管理方法 | |
JP2010231404A (ja) | 秘密情報管理システム、秘密情報管理方法、および秘密情報管理プログラム | |
CN110493005B (zh) | 基于联盟链的抗量子计算公钥池更新方法和系统 | |
CN110365472B (zh) | 基于非对称密钥池对的量子通信服务站数字签名方法、系统 | |
CN110098925B (zh) | 基于非对称密钥池对和随机数的量子通信服务站密钥协商方法和系统 | |
CN111416705A (zh) | 基于身份密码学的抗量子计算联盟链投票系统和方法 | |
CN110636050B (zh) | 基于联盟链且抗量子计算的匿名身份识别方法及系统 | |
CN110740034B (zh) | 基于联盟链的qkd网络认证密钥生成方法及系统 | |
CN110519045B (zh) | 基于群组非对称密钥池的抗量子计算联盟链交易方法、系统 | |
CN110266483B (zh) | 基于非对称密钥池对和qkd的量子通信服务站密钥协商方法、系统、设备 |
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 |