CN110929872B - 抗量子计算私钥备份、挂失及恢复方法及系统 - Google Patents

抗量子计算私钥备份、挂失及恢复方法及系统 Download PDF

Info

Publication number
CN110929872B
CN110929872B CN201910991405.9A CN201910991405A CN110929872B CN 110929872 B CN110929872 B CN 110929872B CN 201910991405 A CN201910991405 A CN 201910991405A CN 110929872 B CN110929872 B CN 110929872B
Authority
CN
China
Prior art keywords
key
public key
identity
backup
private key
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
Application number
CN201910991405.9A
Other languages
English (en)
Other versions
CN110929872A (zh
Inventor
富尧
钟一民
汪仲祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ruban Quantum Technology Co Ltd
Nanjing Ruban Quantum Technology Co Ltd
Original Assignee
Ruban Quantum Technology Co Ltd
Nanjing Ruban Quantum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ruban Quantum Technology Co Ltd, Nanjing Ruban Quantum Technology Co Ltd filed Critical Ruban Quantum Technology Co Ltd
Priority to CN201910991405.9A priority Critical patent/CN110929872B/zh
Publication of CN110929872A publication Critical patent/CN110929872A/zh
Application granted granted Critical
Publication of CN110929872B publication Critical patent/CN110929872B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes

Abstract

本申请涉及一种基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法及系统,实施在相互通信的联盟链成员之间,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥以及与所有联盟链成员相关的公钥池,所述公钥池中存储有与各联盟链成员一一对应的公钥单元,所述公钥单元包括与联盟链成员相对应的用户名、当前身份标识、公钥随机数、备份身份标识列表以及无效身份标识列,根据所述联盟链成员的用户名在所述公钥池中获取相对应的公钥单元,根据所述公钥单元中的公钥随机数可得到该联盟链成员的公钥,采用本方法能够提高对私钥的保护。

Description

抗量子计算私钥备份、挂失及恢复方法及系统
技术领域
本申请涉及安全通信技术领域,特别是涉及一种基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法及系统。
背景技术
区块链是一种全新的分布式基础架构与计算范式,利用有序的链式数据结构存储数据,利用共识算法更新数据,利用密码学技术保障数据安全。在基于区块链的交易中,确保交易的数据安全和客户的隐私是区块链能够进一步发展的必要条件。为此,密码学技术尤其是公钥密钥学在区块链中得到了广泛的应用。而联盟链是区块链的一个分支,所以它本身也是一个分布式的,去中心化的公共数据库,跟其他链的区别就是它是针对特定群体的成员和有限的第三方,其内部指定多个预选节点为记账人,其共识过程受到预选节点控制的区块链。
正如大多数人所了解的,量子计算机在密码破解上有着巨大潜力。当今主流的非对称(公钥)加密算法,如RSA加密算法,大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。他们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为RSA、离散对数加密算法的破解提供可能。
现有技术存在的问题:
1.现有区块链的私钥存储和使用的主流方法均无法抵御木马或黑客的攻击,且均没有考虑密钥找回。万一私钥丢失,对应的比特币或其他权益将永远消失。
2.现有的使用平台托管的方式备份私钥的方法,当用户密钥丢失时需要委托核心节点找回私钥,赋予了核心节点过大的权利,不能满足客户需求。被委托方能完全控制账户,甚至可以进行违背委托方意愿的操作。
3.用户的区块链私钥可以保存在电子设备中,但是一旦丢失或信息被盗取,区块链私钥便会丢失,对用户的财产安全造成重大影响。
发明内容
基于此,有必要针对上述技术问题,提供一种至少解决其中一个技术问题的基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法及系统。
一种基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法,实施在相互通信的联盟链成员之间,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥以及与所有联盟链成员相关的公钥池,所述公钥池中存储有与各联盟链成员一一对应的公钥单元,所述公钥单元包括与联盟链成员相对应的用户名、当前身份标识、公钥随机数、备份身份标识列表以及无效身份标识列,根据所述联盟链成员的用户名在所述公钥池中获取相对应的公钥单元,根据所述公钥单元中的公钥随机数可得到该联盟链成员的公钥;
所述客户端成员配置有主密钥卡以及至少一个备份密钥卡;
其中一客户端成员为User,所述私钥备份、挂失及恢复方法包括:基于联盟链和身份密码学实施私钥备份、挂失及恢复至少其中一者;
若增加新的备份密钥卡,则实施私钥备份,User向服务端成员提出交易,基于联盟链根据所述备份密钥卡对世界状态中的相应公钥单元进行更新,完成私钥备份;
若主密钥卡的私钥丢失,则实施私钥挂失及恢复,由User任意一个备份密钥卡向服务端成员提出交易,基于联盟链在世界状态中获取所述主密钥卡的丢失的私钥以及公钥随机数,以代替该User的主密钥卡,完成挂失及恢复。
可选的,联盟链成员中还包括提供相应服务的Endorser、Orderer及Committer,所述私钥备份、挂失及恢复方法具体包括:
User向Endorser提出交易;
Endorser收到User提出的交易并相应执行,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证。
可选的,各所述客户端密钥卡的私钥均由非对称私钥生成服务器的服务器私钥参与生成;
所述服务器私钥基于秘密共享的理论生成多组影子秘密,根据多组所述影子秘密以及客户端的公钥进行计算,得到与该客户端相关的多组私钥分量;
将多组所述影子秘密分别颁发给各Endorser,客户端将多组Endorser身份标识以及相对应的私钥分量存储在密钥卡中。
可选的,若增加新的备份密钥卡,则实施私钥备份,具体包括:
User向Endorser提出交易,并将私钥密文、备份密钥卡的身份信息以及User用户名作为更新消息写入交易消息中,对该消息和一组私钥分量进行基于身份密码学的签名;
Endorser收到User提出的交易,进行相应验证后,在交易应答中的读出操作集中写入User用户名下的所有密钥卡身份标识以及属性列表,在交易应答中的写入操作集中写入备份密钥卡的身份标识、属性列表以及所述更新,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成私钥备份。
可选的,所述私钥密文为所述备份密钥卡的公钥对主密钥卡的私钥基于身份密码学的方式进行加密得到;
所述备份密钥卡的身份信息包括备份密钥卡的身份标识以及公钥指针随机数。
可选的,若主密钥卡丢失,则实施挂失及恢复时,具体包括:
User选择一个备用密钥卡作为新主密钥卡,并向Endorser提出交易,所述交易中包括对所述新主密钥卡的公钥随机数进行加密偏移后得到随机数密文;
Endorser收到User提出的交易,进行相应验证后,将客户端主密钥卡的公钥随机数和客户端新主密钥卡的私钥分量进行加密偏移机密后写入交易应答,并在写入操作集中写入丢失的主密钥卡的身份标识以及新主密钥卡的身份标识,以表示所述主密钥卡的身份标识为无效,所述新主密钥卡的身份标识为当前身份标识,在读出操作集中写入所述私钥密文,再向User发送交易应答;
User接收交易应答后,进行相应解密,得到所述主密钥卡的客户端私钥、公钥随机数以及客户端新主密钥卡的私钥分量,并制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据写入操作集对世界状态中相应的客户端单元进行更新,并将生成相应的交易通知发送给User以及Endorser;
User接收交易通知后相应验证,将新主密钥卡的私钥以及公钥随机数替换为主密钥卡的客户端私钥以及公钥随机数,以完成挂失和恢复。
可选的,所述Endorser收到User提出的交易后还包括:
根据所述新主密钥卡的公钥以及影子秘密进行计算,得到与该备份密钥卡相关的私钥分量,并将新主密钥卡的身份标识以及相关的私钥分量存储在密钥卡中,并将所述私钥分量写入交易应答中;
接收到所述Committer发送的交易通知后,将客户端主密钥卡的私钥分量替换为客户端备份密钥卡的私钥分量。
可选的,当User与联盟链成员进行交互的过程中,消息发送方均利用各自的私钥基于身份密码学的方式进行签名,接收方均根据消息发送方的公钥进行相应解密。
本发明还提供了一种基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复系统,包括相互通信的联盟链成员,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥以及与所有联盟链成员相关的公钥池,所述公钥池中存储有与各联盟链成员一一对应的公钥单元,所述公钥单元包括与联盟链成员相对应的用户名、当前身份标识、公钥随机数、备份身份标识列表以及无效身份标识列,根据所述联盟链成员的用户名在所述公钥池中获取相对应的公钥单元,根据所述公钥单元中的公钥随机数可得到该联盟链成员的公钥,所述客户端成员配置有主密钥卡以及至少一个备份密钥卡;
至少其中者所述联盟链成员包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法。
上述基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法及系统,通过将私钥使用秘密共享以及隐式证书的方式通过区块链进行备份,可对用户私钥的安全进行有效的保护。针对现有的使用平台托管的方式备份私钥的方法,当用户密钥丢失时需要委托核心节点找回私钥,赋予了核心节点过大的权利,不能满足客户需求。被委托方能完全控制账户,甚至可以进行违背委托方意愿的操作。而本专利对私钥进行秘密共享,使得每个服务器均无法得知实际私钥,因此不存在拥有过大权利的核心节点,避免了私钥的泄露。
附图说明
图1为一个实施例中私钥备份、挂失及恢复系统的结构示意图;
图2为一个实施例中服务端密钥卡的密钥池分布示意图;
图3为一个实施例中客户端密钥卡的密钥池分布示意图;
图4为一个实施例中公钥池中的公钥单元示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。
应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在中一个实施例中,提供了一种基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法,实施在相互通信的联盟链成员之间,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥以及与所有联盟链成员相关的公钥池,所述公钥池中存储有与各联盟链成员一一对应的公钥单元,所述公钥单元包括与联盟链成员相对应的用户名、当前身份标识、公钥随机数、备份身份标识列表以及无效身份标识列,根据所述联盟链成员的用户名在所述公钥池中获取相对应的公钥单元,根据所述公钥单元中的公钥随机数可得到该联盟链成员的公钥,所述客户端成员配置有主密钥卡以及至少一个备份密钥卡。
在本实施例中,在一个基于非对称密钥池体系中,对任意1个用户端与联盟链服务之间进行通信。下文中联盟链服务简称为服务端。本发明的密钥池体系中每个对象都具有密钥卡,可存储大数据量的密钥,也具备处理信息的能力。本发明中,用户端和服务端的本地系统中都存在相应需求的算法。
如图1所示,联盟链由区块链服务和区块链客户端组成,其中的每一个成员都配备有密钥卡。如图2和图3所示,本实施例中联盟链服务端和客户端的密钥卡中包含系统管理公钥Ppub、各自的私钥和公钥随机数池(也称为公钥池),服务端公钥池中有所有联盟链服务端和客户端对应的公钥单元,客户端公钥池中有客户端自己的公钥单元和所有联盟链服务端对应的公钥单元。如图4所示,每个公钥单元存有用户名UserName、ID、公钥随机数R、备份ID列表和无效ID列表,其中ID表示用户当前的ID值,初始化的时候备份ID列表和无效ID列表都为空。对于所有的密钥卡,可以根据ID在密钥卡中找到对应的公钥单元从而得到R,并且公钥随机数R与该用户公钥PK的对应关系如下:PK=H(R)。所有密钥卡均为某组织颁发,各个用户的密钥卡保留各自的私钥并且永不公开,密钥系统采用基于ID密码学的理论。
基于ID密码学的相关知识:假设G是一个群,从G中取生成元P,再选一个随机数作为私钥生成服务器的私钥s,有私钥生成服务器的系统管理公钥Ppub=sP。
对于本发明中的私钥SK来说,有SK=s*PK。本发明中s是通过秘密共享进行分布式存储并生成的,由其中的N个Endorser组成基于ID密码学的分布式密钥生成服务。下面简单介绍秘密共享的原理和流程。
从素数阶q的有限域GF(q)中随机选取N个不同的非零元素x1,x2,…,xN,分配给参与者Pi(i=1,2,…,N)。把s作为共享的秘密信息,从GF(q)中选取t-1个元素a1,a2,…,a(t-1),构造多项式
Figure GDA0003771219880000081
则有si=f(xi)(1≤i≤N)。(xi,si)作为参与者Pi的影子秘密。
从N个Endorser中获取任意t个影子秘密可以得到s,具体步骤如下。根据公式
Figure GDA0003771219880000082
可以求得t个拉格朗日参数λi,因而可以根据公式s=f(0)=∑λi*si求得s。
联盟链成员还包括相应的区块链服务,每个服务有1个或多个ID。区块链服务包括Peer服务,Order服务等。其中Peer服务分为Committer和Endorser;Order服务由多个Orderer组成。联盟链所有成员均带有Committer功能,保存有区块链数据,Endorser还存有智能合约,智能合约运行于密钥卡内。
下文设User Client,Endorser,Orderer,Committer的标记如下:
1)ID分别为IDU,IDE,IDO,IDC。可以根据ID找到对应的公钥池单元
2)公钥分别为PKU,PKE,PKO,PKC
3)私钥分别为SKU,SKE,SKO,SKC
对于某个用户Client来说,它的非对称密钥对为PKU/SKU。非对私钥生成服务器的私钥s进行(t,N)的秘密共享,得到多组影子秘密(xi,si),又根据公式SKUi=si*PKU从而得到多组私钥分量(xi,SKUi),将多组(xi,si)分别颁发给多个Endorser。Client将多组(IDEi,xi,SKUi)保存于本地密钥卡,IDEi表示第i个Endorser的ID。该过程在安全情况下进行,例如通过安全存储介质进行拷贝。密钥卡颁发给Client后,极端情况下,如果Client丢失当前密钥卡并且没有备份密钥卡的时候,则可以通过人工操作,从多个Endorser处拷贝获得私钥分量SKUi,则可以根据秘密共享理论恢复私钥SKU=s*PKU=(∑λi*si)*PKU=∑λi*(si*PKU)=∑λi*SKUi。如果IDEi保存的(IDU,RU)不是原始密钥卡的RU,而是第k个备份密钥卡的RUk,则第k个备份密钥卡从多个Ei处获取多组(xi,SKUki)以及RUk,并恢复SKUk=∑λi*SKUki、PKUk=H(RUk),然后第k个备份密钥卡发起私钥挂失及恢复流程(见后文实施例),并恢复RU、SKU、PKU=H(RU)至第k个备份密钥卡。
在本实施例中,其中一客户端成员为User,所述私钥备份、挂失及恢复方法包括:基于联盟链和身份密码学实施私钥备份、挂失及恢复至少其中一者;
若增加新的备份密钥卡,则实施私钥备份,User向服务端成员提出交易,基于联盟链根据所述备份密钥卡对世界状态中的相应公钥单元进行更新,完成私钥备份;
若主密钥卡的私钥丢失,则实施私钥挂失及恢复,由User任意一个备份密钥卡向服务端成员提出交易,基于联盟链在世界状态中获取所述主密钥卡的丢失的私钥以及公钥随机数,以代替该User的主密钥卡,完成挂失及恢复。
具体的,联盟链成员中还包括提供相应服务的Endorser、Orderer及Committer,所述私钥备份、挂失及恢复方法具体包括:
User向Endorser提出交易;
Endorser收到User提出的交易并相应执行,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证。
在本是实施例中,各所述客户端密钥卡的私钥均由非对称私钥生成服务器的服务器私钥参与生成;所述服务器私钥基于秘密共享的理论生成多组影子秘密,根据多组所述影子秘密以及客户端的公钥进行计算,得到与该客户端相关的多组私钥分量;将多组所述影子秘密分别颁发给各Endorser,客户端将多组Endorser身份标识以及相对应的私钥分量存储在密钥卡中。
进一步的,若增加新的备份密钥卡,则实施私钥备份,具体包括:
User向Endorser提出交易,并将私钥密文、备份密钥卡的身份信息以及User用户名作为更新消息写入交易消息中,对该消息和一组私钥分量进行基于身份密码学的签名;
Endorser收到User提出的交易,进行相应验证后,在交易应答中的读出操作集中写入User用户名下的所有密钥卡身份标识以及属性列表,在交易应答中的写入操作集中写入备份密钥卡的身份标识、属性列表以及所述更新,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成私钥备份。
在本实施例中,所述私钥密文为所述备份密钥卡的公钥对主密钥卡的私钥基于身份密码学的方式进行加密得到;所述备份密钥卡的身份信息包括备份密钥卡的身份标识以及公钥指针随机数。
进一步的,若主密钥卡丢失,则实施挂失及恢复时,具体包括:
User选择一个备用密钥卡作为新主密钥卡,并向Endorser提出交易,所述交易中包括对所新主密钥卡的公钥随机数进行加密偏移后得到随机数密文;
Endorser收到User提出的交易,进行相应验证后,将客户端主密钥卡的公钥随机数和客户端新主密钥卡的私钥分量进行加密偏移后写入交易应答,并在写入操作集中写入丢失的主密钥卡的身份标识以及新主密钥卡的身份标识,以表示所述主密钥卡的身份标识为无效,所述新主密钥卡的身份标识为当前身份标识,在读出操作集中写入所述私钥密文,再向User发送交易应答;
User接收交易应答后,进行相应解密,得到所述主密钥卡的客户端私钥、公钥随机数以及客户端新主密钥卡的私钥分量,并制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据写入操作集对世界状态中相应的客户端单元进行更新,并将生成相应的交易通知发送给User以及Endorser;
User接收交易通知后相应验证,将新主密钥卡的私钥以及公钥随机数替换为主密钥卡的客户端私钥以及公钥随机数,以完成挂失和恢复。
在本实施例中,所述Endorser收到User提出的交易后还包括:
根据所述新主密钥卡的公钥以及影子秘密进行计算,得到与该备份密钥卡相关的私钥分量,并将新主密钥卡的身份标识以及相关的私钥分量存储在密钥卡中,并将所述私钥分量写入交易应答中;
接收到所述Committer发送的交易通知后,将客户端主密钥卡的私钥分量替换为客户端备份密钥卡的私钥分量。
在本实施例中,当User与联盟链成员进行交互的过程中,消息发送方均利用各自的私钥基于身份密码学的方式进行签名,接收方均根据消息发送方的公钥进行相应解密。
就各步骤细节进一步描述抗量子计算私钥备份、挂失及恢复的具体流程如下所示:
实施例1:私钥备份流程:
步骤1:User提出交易。
设Client的n个备份密钥卡的ID值为IDUk,存储的非对称密钥对为PKUk/SKUk,1≤k≤n。对于每个IDUk,取公钥指针随机数RUTk,通过指针函数从公钥池中得到公钥随机数并计算得到公钥RUUTk。Client取出IDUk的密钥卡中对应的公钥随机数RUk,该过程在安全情况下进行,例如通过安全存储介质或安全数据接口连接进行拷贝。Client根据PKUk=H(RUk)得到IDUk对应的公钥PKUk,用PKUk对SKU进行基于ID密码学的加密(见参考文献
《Identity-Based Encryption from the Weil Pairing》),即ENC(SKU,PKUk),得到密文(EUk,EVk)。
Client向n个Endorser发送交易tx,而tx均由proposal和clientSig组成,即tx={proposal,clientSig}。其中proposal包括IDU、链码chaincodeID(即使用智能合约函数的编号)、txPayload(即函数的参数)和时间戳timestamp。此处txPayload的值为
Figure GDA0003771219880000121
即proposal={IDU,chaincodeID,txPayload,timestamp}。
取一组xi||SKUi,计算proposal||xi||SKUi的基于ID密码学的签名(见参考文献《An Identity-Based Signature from Gap Diffie-Hellman Groups》),得到clientSig=SIGN(proposal||xi||SKUi,SKU)=(r*PKU,(r+h)*SKU)。
由于公钥随机数RU不公开,敌方无法得到PKU;因此敌方无法通过r*PKU和PKU得到随机数r。由于签名的对象带有保密的秘密分量(xi||SKUi),因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKU得到SKU。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
Client将tx即{{IDU,chaincodeID,txPayload,timestamp},(r*PKU,(r+h)*SKU)}发送给Endorser。
步骤2:Endorser执行交易。
Endorser收到交易后,取出{{IDU,chaincodeID,txPayload,timestamp},(r*PKU,(r+h)*SKU)}和txPayload中各个部分。
Endorser根据IDU找到本地存储的RU,计算得到PKU=H(RU),然后计算得到SKUi=si*PKU。为免于重复计算,Endorser将(IDU,xi,SKUi)存储于本地密钥卡。Endorser获得xi||SKUi,将其与proposal进行拼接得到proposal||xi||SKUi;然后用PKU来验证得到的签名clientSig。要验证该签名,根据《An Identity-Based Signature from Gap Diffie-Hellman Groups》的数字签名验证理论,只需要验证(P,Ppub,r*PKU+h*PKU,(r+h)*SKU))是一个有效的Diffie-Hellman元组。
验证签名成功之后,Endorser判断timestamp与本地时间的差异是否位于合理范围内,如果判断通过,则Endorser认可该交易tx,否则Endorser不认可该交易。
步骤3:Endorser发送交易应答。
Endorser对proposal作哈希运算得到tid,生成tran-proposal包含{IDE,tid,chaincodeID,txPayload,readset,writeset}。
如果Endorser认可该交易tx的话,将readset赋值为UserName名下所有ID及其属性的列表,其中属性包括当前ID、备份ID和无效ID;将writeset赋值为需要新增的ID及其属性列表,以及
Figure GDA0003771219880000141
如果Endorser不认可该交易tx的话,则readset和writeset的值为无效值。
取公钥指针随机数RCFk,通过指针函数从公钥池中得到公钥随机数并计算得到公钥CFk;对tran-proposal||CFk按照步骤1中的方法进行签名,即可以得到epSig=RCFk||SIGN(tran-proposal||CFk,SKE)。Endorser得到交易应答rtx={tran-propasal,epSig},并将rtx发送给Client。
由于公钥随机数RE不公开,敌方无法得到PKE;因此敌方无法通过r*PKE和PKE得到随机数r。由于签名的对象带有保密的CFk,因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKE得到SKE。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
步骤4:Client发送加密后的背书到Orderer。
Client收到交易应答后,筛选出被Endorser认可的交易,并按照步骤2中的方法使用公钥PKE对签名epSig进行验证。具体过程为:解析epSig=RCFk||SIGN(tran-proposal||CFk,SKE);根据RCFk,通过指针函数从公钥池中得到公钥随机数并计算得到公钥CFk;拼接tran-proposal||CFk;根据IDE找到本地存储的RE,计算得到PKE=H(RE);根据PKE,按照步骤2中的方法来验证SIGN(tran-proposal||CFk,SKE)。
Client收到多个交易应答并分别验证通过后,将选择得到的rtx组成一个集合∑rtx即背书etx,发送至Orderer。
步骤5:Orderer加密并发送排序后的etx集合到Committer。
Orderer积累到一定数量的etx后,对etx进行排序。在达到block的最大大小或者达到超时时间后,Orderer将序列号seqno、上个联盟链区块的哈希值prevhash、∑etx组合起来,可以得到etx集合={seqno,prevhash,∑etx}。Orderer将etx集合发送给所有的Committer。
步骤6:每个Committer验证交易,并更新世界状态。
每个Committer收到etx集合后,根据背书策略对etx集合进行验证,包括对读写操作集进行检查、对数字签名进行验证等。对数字签名的验证流程参考步骤4中对epSig的验证。检查完成后,Committer对本地的联盟链数据库进行读写操作集的实际执行(读写操作集检查失败的交易除外),并记录每一笔交易的交易结果到区块链中,并更新本地的世界状态。完成后即表示Committer执行完毕。
步骤7:Committer发送交易通知。
Committer发送交易通知给Client。将result(success或者failure)、tid、committerSig组合来起到得到ntx={tid,result,committerSig}。其中committerSig的生成过程:取公钥指针随机数RCTk,通过指针函数从公钥池中得到公钥随机数并计算得到公钥CTk;对result||CTk按照步骤1中的方法进行签名,即可以得到committerSig=RCTk||SIGN(result||CTk,SKC)。
由于公钥随机数RC不公开,敌方无法得到PKC;因此敌方无法通过r*PKC和PKC得到随机数r。由于签名的对象带有保密的CTk,因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKC得到SKC。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
Committer将组合ntx发送给Client。
Client收到ntx后,得到{tid,result,committerSig}中的各个部分。根据RCTk,通过指针函数从公钥池中得到公钥随机数并计算得到公钥CTk;根据IDC找到本地存储的RC,计算得到PKC=H(RC);根据PKC,按照步骤2中的方法来验证签名committerSig。验证签名成功之后,取出result查看其值,如果result的值是success,则表示备份成功;如果result的值是failure,则表示备份失败。
实施例2:私钥挂失及恢复流程:
身份为IDU的密钥卡丢失后,用户使用身份为IDUi的密钥卡执行本流程。
当用户Client的私钥SKU丢失,使用第k个密钥卡(ID为IDUk,公私钥为PKUk/SKUk)进行私钥挂失及私钥恢复。
根据Endorser的ID在密钥卡中找到对应的公钥随机数RE,根据PKE=H(RE)得到Endorser的公钥PKE,再用PKE对RUk进行基于ID密码学的加密,得到密文txdata=ENC(RUk,PKE)=(txdataU,txdataV)。取公钥指针随机数RPKtxdataU,通过指针函数从公钥池中得到公钥随机数并计算得到公钥PKtxdataU。对txdata做偏移得到txdata’=RPKtxdataU||(txdataU-PKtxdataU,txdataV)。
Client向N个Endorser发送交易tx,而tx均由proposal、txdata’和clientSig组成,即tx={proposal,txdata’,clientSig}。其中proposal包括IDUk、链码chaincodeID(即使用智能合约函数的编号)、txPayload(即函数的参数)和时间戳timestamp。此处txPayload的值为UserName||IDU||Msg,其中Msg表示挂失及恢复的消息指令,即proposal={IDUk,chaincodeID,txPayload=UserName||IDU||Msg,timestamp}。
计算基于ID密码学的签名(见参考文献《An Identity-Based Signature fromGap Diffie-Hellman Groups》),得到clientSig=SIGN(proposal||txdata’||RUk,SKUk)=(r*PKUk,(r+h)*SKUk)。
由于公钥随机数RUk不公开,敌方无法得到PKUk;因此敌方无法通过r*PKUk和PKUk得到随机数r。由于签名的对象带有保密的RUk,因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKUk得到SKUk。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
Client将tx即{{IDUk,chaincodeID,txPayload=UserName||IDU||Msg,timestamp},RPKtxdataU||(txdataU-PKtxdataU,txdataV),(r*PKUk,(r+h)*SKUk)}发送给Endorser。
步骤2:Endorser执行交易。
Endorser收到交易后,取出{{IDUk,chaincodeID,txPayload=UserName||IDU||Msg,timestamp},RPKtxdataU||(txdataU-PKtxdataU,txdataV),(r*PKUk,(r+h)*SKUk)}中各个部分。根据公钥指针随机数RPKtxdataU,通过指针函数从公钥池中得到公钥随机数并计算得到公钥PKtxdataU。对txdata’做偏移恢复得到txdata=(txdataU-PKtxdataU+PKtxdataU,txdataV)=(txdataU,txdataV)。
Endorser取出自己的私钥SKE,对txdata进行解密得到RUk并暂时保存于本地密钥卡。然后用PKUk=H(RUk)来验证得到的proposal||txdata’||RUk的签名clientSig。
要验证该签名,根据《An Identity-Based Signature from Gap Diffie-HellmanGroups》的数字签名验证理论,只需要验证(P,Ppub,r*PKUk+h*PKUk,(r+h)*SKUk))是一个有效的Diffie-Hellman元组。
验证签名成功之后,Endorser根据备份ID列表判断IDUk是否具有挂失及恢复密钥的权限,并判断timestamp与本地时间的差异是否位于合理范围内,如果所有判断都通过,则Endorser认可该交易tx,否则Endorser不认可该交易。
步骤3:Endorser发送交易应答。
Endorser对proposal作哈希运算得到tid,生成tran-proposal包含{IDE,tid,chaincodeID,txPayload,readset,writeset}。
Endorser取出本地的(xi,si),根据公式SKUki=si*PKUk得到秘密共享的分量SKUki并将(IDUk,xi,SKUki)暂时保存于本地密钥卡。然后用PKUk对xi||SKUki||RU进行基于ID密码学的加密,得到密文rtxdata=ENC(xi||SKUki||RU,PKUk)=(rtxdataU,rtxdataV)。取公钥指针随机数RPKrtxdataU,通过指针函数从公钥池中得到公钥随机数并计算得到公钥PKrtxdataU。对rtxdata做偏移得到rtxdata’=RPKrtxdataU||(rtxdataU-PKrtxdataU,rtxdataV)。
如果Endorser认可该交易tx的话,将readset赋值为UserName名下所有ID及其属性的列表,以及{IDUk||RUTk||EUk-H(RUUTk||timestamp)||EVk};将writeset的值赋为IDU||IDUk,表明IDU标记为无效ID,IDUk标记为当前ID;如果Endorser不认可该交易tx的话,则readset和writeset的值为无效值。
用随机数RETk作为指针随机数在公钥池获取公钥随机数并计算得到公钥ETk,按照步骤一中的签名方法用SKE作基于ID密码学的签名,得到RETk||SIGN(tran-proposal||rtxdata’||ETk,SKE),即epsig。Endorser得到交易应答rtx={tran-propasal,rtxdata’,epSig},并将rtx发送给Client。
由于公钥随机数RE不公开,敌方无法得到PKE;因此敌方无法通过r*PKE和PKE得到随机数r。由于签名的对象带有保密的ETk,因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKE得到SKE。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
步骤4:Client发送背书到Orderer。
Client收到交易应答后,取出rtx即{tran-propasal,rtxdata’,epSig}中各个部分。用步骤2中的方法恢复密文(rtxdataU,rtxdataV)并对其进行解密,得到xi||SKUki||RU。
Client筛选出被Endorser认可的交易,用随机数RETk作为指针随机数在公钥池获取公钥随机数并计算得到公钥ETk,并按照步骤2中的方法对其中的签名epSig进行验证,如果验证成功了则进行后面的步骤,如果验证失败了该rtx就会被丢弃。
Client对于认可的交易,从中取出{IDUk||RUTk||EUk-H(RUUTk||timestamp)||EVk}部分。又根据公钥指针随机数RUTk,通过指针函数从公钥池中得到公钥随机数并计算得到公钥RUUTk,结合上述数据进行计算得到密文(EUk,EVk)。对(EUk,EVk)进行解密,得到丢失的私钥SKU。
Client对于认可的交易,将多组(IDEi,xi,SKUki)暂时保存于本地密钥卡。
Client将认可的交易的rtx组成背书,即背书etx=∑rtx,并将背书发送给Orderer。
步骤5:Orderer发送排序后的etx集合到Committer。
Orderer收到各个Client发送的背书后,在积累到一定数量的etx后,Orderer对etx进行排序。在达到block的最大大小或者达到超时时间后,Orderer将序列号seqno、上个联盟链区块的哈希值prevhash、∑etx组合起来,可以得到etx集合={seqno,prevhash,∑etx},并分别发送给所有的Committer。
步骤6:每个Committer验证交易,并更新世界状态。
每个Committer收到排序后的背书集合后,分别取出每个etx,查看其中的rtx,即{tran-propasal,epSig}。首先按照步骤2中的方法对签名epSig进行验证,如果验证成功了则进行后面的步骤,如果验证失败了该rtx就会被丢弃。取出readset的值并验证,如果验证成功则说明该交易是被认可的。
Committer查看通过验证的rtx是否达到秘密共享的要求,例如是否达到了t个有效的背书。如果认可该etx为有效交易就做出标记以示有效;否则Committer将不认可etx为有效交易,并做出标记以示无效。接下来,Committer将区块写入区块链,并且根据区块链中的有效交易,更新本地的世界状态,包括本地密钥池:将IDU放入无效ID列表,将IDUk标记为当前ID。
步骤7:Committer发送交易通知。
Committer发送交易通知给Client。如果tx有效,将success作为result的值;如果tx无效则将failure作为result的值。将result、tid、committerSig组合来起到得到ntx={tid,result,committerSig}。其中committerSig的生成过程:取公钥指针随机数RCTk,通过指针函数从公钥池中得到公钥随机数并计算得到公钥CTk;对result||CTk按照步骤1中的方法对result的签名,即可以得到committerSig=RCTk||SIGN(result||CTK,SKC)。
由于公钥随机数RC不公开,敌方无法得到PKC;因此敌方无法通过r*PKC和PKC得到随机数r。由于签名的对象带有保密的CTk,因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKC得到SKC。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
Committer将组合ntx发送给Client以及Endorser。
Client收到ntx后,得到{tid,result,committerSig}中的各个部分。按照步骤2中的方法来验证签名committerSig。验证签名成功之后,取出result查看其值,如果result的值是success,则将SKU||RU记录在密钥卡内作为新的用户私钥和公钥随机数,将多组(IDEi,xi,SKUki)保存于本地密钥卡,至此密钥卡的挂失恢复完成了;如果result的值是failure,则说明挂失完成失败。
Endorser收到ntx后,用前文所述方法确认结果,如果成功则将本地密钥卡中的(IDU,xi,SKUi)更新为(IDUk,xi,SKUki),前次的RU值更新为RUk。
后续正常交易中,Client向Endorser提出交易时,交易tx可表示为{proposal,clientSig},其中proposal可表示为{IDUk,chaincodeID,txPayload,timestamp};clientSig可表示为SIGN(proposal||xi||SKUki,SKU),此处对签名加入步骤4中得到的部分秘密xi||SKUki。已挂失的密钥卡虽然拥有SKU,且能获取公开的IDUk;但由于没有匹配的部分秘密,仍然无法签名并获得Endorser的认可,即已挂失的密钥卡被有效作废。后续正常交易中,Endorser和Committer所采用的签名方式类似步骤7,即对签名消息加上公钥池中的公钥,也能实现抗量子计算的效果。
上述基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法,利用密钥卡存储公钥随机数和私钥,其中公钥随机数存储在密钥卡的公钥池中。密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。由于量子计算机无法得到用户公钥,于是也无法得到对应的私钥。另外,本发明中,基于公私钥的抗量子计算签名和加密也保证了所传输消息及密钥自身的安全性,即使在量子计算机存在的情况下,也难以被推导出私钥。因此该方案不容易被量子计算机破解。
在本方法中将基于ID密码学中的ID改为了公钥随机数的形式,并对签名消息中加入了秘密使得实际签名消息无法被敌方得到,使得数字签名具有很高的抗量子安全性。
同时,本专利在流程中的不同场合用到了偏移量,这些偏移量都需要密钥卡中的公钥池的参与才能计算得到,没有密钥卡的其他方将无法破解这些被偏移量保护的数据。偏移量的使用对数据进行了加密,使得传输过程更加安全,具有抗量子计算的特性;并且该加密方式比普通加密方式的计算量更小,因此避免了使用普通加密方式来抵抗量子计算机的攻击,降低了各方的设备负担。
并将私钥使用秘密共享的方式通过区块链进行备份,可对用户私钥的安全进行有效的保护。针对现有的使用平台托管的方式备份私钥的方法,当用户密钥丢失时需要委托核心节点找回私钥,赋予了核心节点过大的权利,不能满足客户需求。被委托方能完全控制账户,甚至可以进行违背委托方意愿的操作。而本专利对私钥进行秘密共享,使得每个服务器均无法得知实际私钥,因此不存在拥有过大权利的核心节点,避免了私钥的泄露。同时,每个服务器获得的私钥分量还可以作为对密钥卡的认证密钥,每次交易均在密钥卡的签名中加入该认证密钥,而已挂失的密钥卡并不具备该认证密钥,使得已挂失的密钥卡无法生成签名并获得Endorser的认可,即已挂失的密钥卡被有效作废。
上述方法中,如果没有备份密钥卡,则可以通过人工方式从多个服务器找回;如果有备份密钥卡,则可以直接使用备份密钥卡通过区块链交易进行挂失及恢复,原密钥卡同时被作废。备份密钥卡后,挂失及恢复的操作非常简单迅速,使得用户可以方便地进行密钥找回。另外通过备份密钥卡,对应的比特币或其他权益将不会随着当前密钥卡的丢失而消失。
在一个实施例中,提供了一种计算机设备,即基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复系统,该计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述抗量子计算私钥备份、挂失及恢复方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
其中一实施例中,提供了一种基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复系统,包括相互通信的联盟链成员,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥以及与所有联盟链成员相关的公钥池,所述公钥池中存储有与各联盟链成员一一对应的公钥单元,所述公钥单元包括与联盟链成员相对应的用户名、当前身份标识、公钥随机数、备份身份标识列表以及无效身份标识列,根据所述联盟链成员的用户名在所述公钥池中获取相对应的公钥单元,根据所述公钥单元中的公钥随机数可得到该联盟链成员的公钥,所述客户端成员配置有主密钥卡以及至少一个备份密钥卡;
所述联盟链成员包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。

Claims (6)

1.基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法,实施在相互通信的联盟链成员之间,所述联盟链成员包括客户端成员以及服务端成员,其特征在于,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥以及与所有联盟链成员相关的公钥池,所述公钥池中存储有与各联盟链成员一一对应的公钥单元,所述公钥单元包括与联盟链成员相对应的用户名、当前身份标识、公钥随机数、备份身份标识列表以及无效身份标识列,根据所述联盟链成员的用户名在所述公钥池中获取相对应的公钥单元,根据所述公钥单元中的公钥随机数可得到该联盟链成员的公钥;
所述客户端成员配置有主密钥卡以及至少一个备份密钥卡;
其中一客户端成员为User,所述私钥备份、挂失及恢复方法包括:基于联盟链和身份密码学实施私钥备份、挂失及恢复至少其中一者;
若增加新的备份密钥卡,则基于身份密码学实施私钥备份,具体包括:
User向Endorser提出交易,并将私钥密文、备份密钥卡的身份信息以及User用户名作为更新消息写入交易消息中,对该消息和一组私钥分量进行基于身份密码学的签名;
Endorser收到User提出的交易,进行相应验证后,在交易应答中的读出操作集中写入User用户名下的所有密钥卡身份标识以及属性列表,在交易应答中的写入操作集中写入备份密钥卡的身份标识、属性列表以及所述更新,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成私钥备份;
若主密钥卡的私钥丢失,则基于身份密码学实施私钥挂失及恢复,具体包括:
User选择一个备用密钥卡作为新主密钥卡,并向Endorser提出交易,所述交易中包括对所述新主密钥卡的公钥随机数进行加密偏移后得到随机数密文;
Endorser收到User提出的交易,进行相应验证后,将客户端主密钥卡的公钥随机数和客户端新主密钥卡的私钥分量进行加密偏移后写入交易应答,并在写入操作集中写入丢失的主密钥卡的身份标识以及新主密钥卡的身份标识,以表示所述主密钥卡的身份标识为无效,所述新主密钥卡的身份标识为当前身份标识,在读出操作集中写入所述私钥密文,再向User发送交易应答;
User接收交易应答后,进行相应解密,得到所述主密钥卡的客户端私钥、公钥随机数以及客户端新主密钥卡的私钥分量,并制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据写入操作集对世界状态中相应的客户端单元进行更新,并将生成相应的交易通知发送给User以及Endorser;
User接收交易通知后相应验证,将新主密钥卡的私钥以及公钥随机数替换为主密钥卡的客户端私钥以及公钥随机数,以完成挂失和恢复。
2.根据权利要求1所述的私钥备份、挂失及恢复方法,其特征在于,各所述客户端密钥卡的私钥均由非对称私钥生成服务器的服务器私钥参与生成;
所述服务器私钥基于秘密共享的理论生成多组影子秘密,具体包括:从素数阶q的有限 域GF(q)中随机选取N个不同的非零元素x1,x2,…,xN,分配给参与者Pi(i=1,2,…,N),把s 作为共享的秘密信息,从素数阶q的有限域GF(q)中选取t-1个元素a1,a2,…,a(t-1),构造 多项式f(x)=s+
Figure DEST_PATH_IMAGE001
,则有si=f(xi)(1≤i≤N),(xi,si)作为参与者Pi的影子秘 密;
根据多组所述影子秘密以及客户端的公钥进行计算,得到与该客户端相关的多组私钥分量;
将多组所述影子秘密分别颁发给各Endorser,客户端将多组Endorser身份标识以及相对应的私钥分量存储在密钥卡中。
3.根据权利要求2所述的私钥备份、挂失及恢复方法,其特征在于,
所述私钥密文为所述备份密钥卡的公钥对主密钥卡的私钥基于身份密码学的方式进行加密得到;
所述备份密钥卡的身份信息包括备份密钥卡的身份标识以及公钥指针随机数,所述公钥指针随机数用于获得公钥随机数。
4.根据权利要求3所述的私钥备份、挂失及恢复方法,其特征在于,所述Endorser收到User提出的交易后还包括:
根据所述新主密钥卡的公钥以及影子秘密进行计算,得到与该备份密钥卡相关的私钥分量,并将新主密钥卡的身份标识以及相关的私钥分量存储在密钥卡中,并将所述私钥分量写入交易应答中;
接收到所述Committer发送的交易通知后,将客户端主密钥卡的私钥分量替换为客户端备份密钥卡的私钥分量。
5.根据权利要求1所述的私钥备份、挂失及恢复方法,其特征在于,当User与联盟链成员进行交互的过程中,消息发送方均利用各自的私钥基于身份密码学的方式进行签名,接收方均根据消息发送方的公钥进行相应解密。
6.基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复系统,包括相互通信的联盟链成员,所述联盟链成员包括客户端成员以及服务端成员,其特征在于,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥以及与所有联盟链成员相关的公钥池,所述公钥池中存储有与各联盟链成员一一对应的公钥单元,所述公钥单元包括与联盟链成员相对应的用户名、当前身份标识、公钥随机数、备份身份标识列表以及无效身份标识列,根据所述联盟链成员的用户名在所述公钥池中获取相对应的公钥单元,根据所述公钥单元中的公钥随机数可得到该联盟链成员的公钥,所述客户端成员配置有主密钥卡以及至少一个备份密钥卡;
至少其中者所述联盟链成员包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现权利要求1~5任一项所述的基于联盟链和身份密码学的抗量子计算私钥备份、挂失及恢复方法。
CN201910991405.9A 2019-10-18 2019-10-18 抗量子计算私钥备份、挂失及恢复方法及系统 Active CN110929872B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910991405.9A CN110929872B (zh) 2019-10-18 2019-10-18 抗量子计算私钥备份、挂失及恢复方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910991405.9A CN110929872B (zh) 2019-10-18 2019-10-18 抗量子计算私钥备份、挂失及恢复方法及系统

Publications (2)

Publication Number Publication Date
CN110929872A CN110929872A (zh) 2020-03-27
CN110929872B true CN110929872B (zh) 2022-10-18

Family

ID=69849207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910991405.9A Active CN110929872B (zh) 2019-10-18 2019-10-18 抗量子计算私钥备份、挂失及恢复方法及系统

Country Status (1)

Country Link
CN (1) CN110929872B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107623569A (zh) * 2017-09-30 2018-01-23 矩阵元技术(深圳)有限公司 基于秘密共享技术的区块链密钥托管和恢复方法、装置
CN107769922A (zh) * 2017-10-31 2018-03-06 捷德(中国)信息科技有限公司 区块链安全管理系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10700861B2 (en) * 2016-07-29 2020-06-30 Workday, Inc. System and method for generating a recovery key and managing credentials using a smart blockchain contract

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107623569A (zh) * 2017-09-30 2018-01-23 矩阵元技术(深圳)有限公司 基于秘密共享技术的区块链密钥托管和恢复方法、装置
CN107769922A (zh) * 2017-10-31 2018-03-06 捷德(中国)信息科技有限公司 区块链安全管理系统及方法

Also Published As

Publication number Publication date
CN110929872A (zh) 2020-03-27

Similar Documents

Publication Publication Date Title
CN111639361B (zh) 一种区块链密钥管理方法、多人共同签名方法及电子装置
TWI797147B (zh) 臨界數位簽章方法及系統
CN110690957B (zh) 抗量子计算私钥备份、挂失及恢复方法及系统
CN113364576B (zh) 一种基于区块链的数据加密存证与共享方法
CN110519046B (zh) 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统
CN110768781B (zh) 基于联盟链且抗量子计算的公私钥颁发方法及系统
CN110830244B (zh) 基于身份秘密共享和联盟链的抗量子计算车联网方法及系统
JP6753403B2 (ja) 情報処理装置、認証システム、認証方法、並びにコンピュータ・プログラム
CN110661613B (zh) 基于联盟链的抗量子计算隐式证书颁发方法及系统
CN110930251B (zh) 基于联盟链和隐式证书的抗量子计算云存储方法及系统
CN110380845B (zh) 基于群组对称密钥池的量子保密通信联盟链交易方法、系统、设备
CN110737915B (zh) 基于隐式证书的抗量子计算匿名身份识别方法及系统
CN110557248B (zh) 基于无证书密码学的签密的密钥更新方法和系统
CN112187450B (zh) 密钥管理通信的方法、装置、设备及存储介质
CN110417547B (zh) 基于无证书密码学的保密通信的密钥更新方法和系统
CN111327419B (zh) 基于秘密共享的抗量子计算区块链的方法及系统
CN110493005B (zh) 基于联盟链的抗量子计算公钥池更新方法和系统
CN110740034B (zh) 基于联盟链的qkd网络认证密钥生成方法及系统
CN107947923B (zh) 一种无可信中心的属性密钥分发方法
CN110636050B (zh) 基于联盟链且抗量子计算的匿名身份识别方法及系统
CN110737907B (zh) 基于联盟链的抗量子计算云存储方法及系统
CN111245611B (zh) 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统
CN110266483B (zh) 基于非对称密钥池对和qkd的量子通信服务站密钥协商方法、系统、设备
CN110519045B (zh) 基于群组非对称密钥池的抗量子计算联盟链交易方法、系统
CN110912688B (zh) 基于联盟链的抗量子计算私钥备份、挂失及恢复方法及系统

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