CN111342967B - 一种区块链用户证书丢失或损坏解决方法和装置 - Google Patents
一种区块链用户证书丢失或损坏解决方法和装置 Download PDFInfo
- Publication number
- CN111342967B CN111342967B CN202010149877.2A CN202010149877A CN111342967B CN 111342967 B CN111342967 B CN 111342967B CN 202010149877 A CN202010149877 A CN 202010149877A CN 111342967 B CN111342967 B CN 111342967B
- Authority
- CN
- China
- Prior art keywords
- user
- private key
- consensus node
- coordinate point
- user private
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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/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
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种区块链用户证书丢失或损坏解决方法和装置。所述方法包括对用户私钥进行备份,包括选取共识节点,构建曲线方程;设定用户标识,计算共识节点基于用户标识的多倍点,得出用户私钥恢复坐标点,进行加密并上传到共识节点;对备份的用户私钥进行恢复,包括生成身份标识,计算临时公私钥对信息;共识节点计算对称加密密钥,加密用户私钥恢复坐标点;用户获得用户私钥恢复坐标点,得出用户私钥。以此方式,当发生用户证书丢失或损坏的情况时,能够恢复出用户本地的私钥,同时曲线方程构建规则只有用户设备指导,私钥依旧在用户设备内计算,保证了合规和安全,也降低了由于用户私钥对证书丢失或损害给用户带来的经济损失。
Description
技术领域
本发明的实施例一般涉及区块链技术领域,并且更具体地,涉及一种区块链用户证书丢失或损坏解决方法和装置。
背景技术
BT是(Blockchain technology)的简称,blockchain technology,中文译为区块链技术,区块链技术利用全新加密认证技术和全网共识机制,维护一个完整的、分布式的、不可篡改的连续账本数据库,参与者通过统一、可靠的账本系统和时间戳机制,也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。
在区块链的分布式网络里,节点之间进行通讯并达成信任,需要依赖数字签名技术,它主要实现了身份确认以及信息真实性、完整性验证。以Repchain为例,用户在初始化时候,需要将自己注册到Repchain块链中,同时生成私钥和证书申请,Repchain会为用户证书申请进行应答,用户就将证书应答和私钥转换成包含公私钥对的数字证书,同时将数字证书中包含公钥的部分发布到各个节点。此时可以使用该数字证书对区块链上的交易进行签名和验签,确认用户身份以及交易信息真实性、完整性验证。安全合规角度,私钥需要用户自己生成并保存。
然而,在当前机制下,用户一旦用户将包含公私钥对的数字证书丢失或者损坏,需要重新申请公私钥对数字证书,所有区块上的所有存量交易信息因无法验证而失效,甚至会给用户造成严重的经济损失。
发明内容
根据本发明的实施例,提供了一种区块链用户证书丢失或损坏解决方案。
在本发明的第一方面,提供了一种区块链用户证书丢失或损坏解决方法。该方法包括:
包括对用户私钥进行备份;及对备份的用户私钥进行恢复;
所述对用户私钥进行备份包括:
选取一个或多个共识节点,利用选取的共识节点公钥和用户公钥构建曲线方程,以此将用户私钥作为常数项隐藏在方程中,基于曲线的离散对数难题,即已知坐标点,求曲线的常数在现阶段基本不可能。
设定用户标识,计算共识节点基于所述用户标识的多倍点,得出用户私钥恢复坐标点,使用所述共识节点的公钥对所述用户私钥恢复坐标点进行加密并上传到所述共识节点;而此时共识节点保存的只是一个坐标,用户可以根据共识节点公钥以及用户公钥逆推出曲线方程,进而得到用户本地的私钥。其使用ecdh密钥交换协议和对称加密算法保证明文不会在网络中出现,进一步提升安全性。
所述对备份的用户私钥进行恢复包括:
用户生成身份标识,计算临时公私钥对信息,将所述身份标识和所述临时公钥信息上传到共识节点;
共识节点根据所述身份标识,将保存的用户私钥恢复坐标点进行解密,通过ecdh密钥交换算法计算对称加密密钥,使用该对称加密密钥,利用SM4算法加密所述用户私钥恢复坐标点,发送给用户,保证明文不会在网络中出现,进一步提升安全性。
所述用户使用所述对称加密密钥,利用SM4算法解密共识节点发送的加密数据,获得用户私钥恢复坐标点,并根据所述曲线方程得出用户私钥。
进一步地,所述计算共识节点基于所述用户标识的多倍点,得出用户私钥恢复坐标点,包括:
计算共识节点基于所述用户标识的多倍点Rn(xrn,yrn):
Rn(xrn,yrn)=Za*P(xn,yn)
其中,P(xn,yn)为共识节点的公钥坐标;Rn(xrn,yrn)为多倍点坐标;Za为用户标识;
将多倍点的横坐标xr带入所述曲线方程,得到对应的坐标点Qn(xrn,yqn),Q即为用户私钥恢复坐标点。
进一步地,所述用户标识为:
Za=SM3(ENTL||IDa||deviceID||a||b||x0||y0|||xn||yn...||x1||y1)
其中,Za为用户标识;ENTL为由两个字节表示的IDa的比特长度;IDa为在区块链系统中用户的唯一标识;deviceID为用户设备的唯一标识;a、b为国家密码管理局推荐的系统曲线参数,为常数;x0,y0为用户公钥的横坐标和纵坐标;xn...x1为各共识节点的公钥横坐标;yn...y1为各共识节点的公钥纵坐标;SM3为国家密码管理局发布的摘要算法。
进一步地,所述曲线方程为:
y=knxn+k(n-1)xn-1......k1x+k0
其中,k0为用户私钥,n为选取的共识节点个数,kn为整数。
进一步地,用户生成身份标识,计算临时公私钥对信息,将所述身份标识和所述临时公钥信息上传到共识节点,包括:
用户生成身份标识;
在用户端产生随机数ra,计算临时公钥坐标Ra,Ra=[ra]G={xa,ya},其中G为国密签名算法SM2使用的椭圆曲线参考点,xa,ya为临时公钥坐标Ra的横坐标和纵坐标;
将身份标识和临时公钥坐标点Ra(xa,ya)通过共识节点进行加密,并上传到该共识节点。
在本发明的第二方面,提供了一种区块链用户证书丢失或损坏装置,包括:
用户私钥备份模块和用户私钥恢复模块;
所述用户私钥备份模块,包括:
曲线方程构建模块,用于选取一个或多个共识节点,利用选取的共识节点公钥和用户公钥构建曲线方程;
用户私钥恢复坐标点计算模块,用于设定用户标识,计算共识节点基于所述用户标识的多倍点,得出用户私钥恢复坐标点;
用户私钥恢复坐标点上传模块,用于使用所述共识节点的公钥对所述用户私钥恢复坐标点进行加密并上传到所述共识节点;
所述用户私钥恢复模块,包括:
临时公私钥对信息计算模块,设置于用户端,用于生成身份标识,计算临时公私钥对信息;
身份标识及临时公钥信息上传模块,设置于用户端,用于将所述身份标识和所述临时公钥信息上传到共识节点;
对称加密密钥计算模块,设置于共识节点端,用于根据所述身份标识,将保存的用户私钥恢复坐标点进行解密,通过ecdh密钥交换算法计算对称加密密钥;
加密模块,设置于共识节点端,用于使用所述对称加密密钥,利用SM4算法加密所述用户私钥恢复坐标点,发送给用户;
用户私钥计算模块,设置于用户端,用于使用所述对称加密密钥,利用SM4算法解密共识节点发送的加密数据,获得用户私钥恢复坐标点,并根据所述曲线方程得出用户私钥。
进一步地,所述用户私钥恢复坐标点计算模块包括:
多倍点计算模块,用于计算共识节点基于所述用户标识的多倍点Rn(xrn,yrn);
用户私钥恢复坐标点计算模块,用于将多倍点的横坐标xr带入所述曲线方程,得到用户私钥恢复坐标点Qn(xrn,yqn)。
进一步地,所述多倍点Rn(xrn,yrn)为:
Rn(xrn,yrn)=Za*P(xn,yn)
其中,P(xn,yn)为共识节点的公钥坐标;Rn(xrn,yrn)为多倍点坐标;Za为用户标识,所述用户标识为:
Za=SM3(ENTL||IDa||deviceID||a||b||x0||y0|||xn||yn...||x1||y1)
ENTL为由两个字节表示的IDa的比特长度;IDa为在区块链系统中用户的唯一标识;deviceID为用户设备的唯一标识;a、b为国家密码管理局推荐的系统曲线参数,为常数;x0,y0为用户公钥的横坐标和纵坐标;xn...x1为各共识节点的公钥横坐标;yn...y1为各共识节点的公钥纵坐标;SM3为国家密码管理局发布的摘要算法;
所述曲线方程为:
y=knxn+k(n-1)xn-1......k1x+k0
其中,k0为用户私钥,n为选取的共识节点个数,kn为整数。
在本发明的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
在本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本发明的第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本发明的实施例的关键或重要特征,亦非用于限制本发明的范围。本发明的其它特征将通过以下的描述变得容易理解。
本发明可以通过构建曲线方程将私钥作为常数项隐藏在方程中,对用户的私钥进行备份,当发生用户证书丢失或损坏的情况时,利用共识节点公钥以及用户公钥逆推曲线方程,恢复出用户本地的私钥,同时曲线方程构建规则只有用户设备指导,私钥依旧在用户设备内计算,保证了合规和安全,同时也降低了由于用户私钥对证书丢失或损害给用户带来的经济损失。
附图说明
结合附图并参考以下详细说明,本发明各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了根据本发明的实施例的区块链用户证书丢失或损坏解决方法流程图;
图2示出了根据本发明的实施例的区块链用户证书丢失或损坏装置的结构示意图;
图3示出了能够实施本发明的实施例的示例性电子设备的方框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本发明保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在区块链的分布式网络里,节点之间进行通讯并达成信任,需要依赖数字签名技术,它主要实现了身份确认以及信息真实性、完整性验证。
以Repchain为例,用户在初始化时候,需要将自己注册到Repchain块链中,同时生成私钥和证书申请,Repchain会为用户证书申请进行应答,用户就将证书应答和私钥转换成包含公私钥对的数字证书,同时将数字证书中包含公钥的部分发布到各个节点。此时可以使用该数字证书对区块链上的交易进行签名和验签,确认用户身份以及交易信息真实性、完整性验证。
上述过程具体包括,首先用户向注册中心提交基本注册信息,并在用户本地生成私钥和证书申请,将证书申请发送给注册中心;然后注册中心根据证书请求签发证书应答,并将证书应答发送给用户;最后用户将注册中心发送过来的证书应答和私钥转换成包含公私钥对的证书和公钥证书。
而上述过程中用户生成的公私钥对证书和公钥证书一旦丢失或损坏,则需要重新申请公私钥对数字证书,而所有区块上的所有存量交易信息则会因无法验证而失效,故本发明提出一种区块链用户证书丢失或损坏的解决方法,通过构建曲线方程将私钥作为常数项隐藏在方程中,对用户的私钥进行备份,当发生用户证书丢失或损坏的情况时,利用共识节点公钥以及用户公钥逆推曲线方程,恢复出用户本地的私钥。
图1示出了本发明实施例的区块链用户证书丢失或损坏解决方法的流程图。
该方法包括:
S110、对用户私钥进行备份;S120、对备份的用户私钥进行恢复两部分;
其中,S110、所述对用户私钥进行备份,包括:
S111、选取一个或多个共识节点,利用选取的共识节点公钥和用户公钥构建曲线方程。所述曲线方程为:
y=knxn+k(n-1)xn-1......k1x+k0
其中,k0为用户私钥,n为选取的共识节点个数,kn为整数。
S112、设定用户标识Za:
Za=SM3(ENTL||IDa||deviceID||a||b||x0||y0|||xn||yn...||x1||y1)
其中,Za为用户标识;ENTL为由两个字节表示的IDa的比特长度;IDa为在区块链系统中用户的唯一标识;deviceID为用户设备的唯一标识;a、b为国家密码管理局推荐的系统曲线参数,为常数;x0,y0为用户公钥的横坐标和纵坐标;xn...x1为各共识节点的公钥横坐标;yn...y1为各共识节点的公钥纵坐标;SM3为国家密码管理局发布的摘要算法。在一个实施例中,参数a和b为:
a=0x787968B4FA32C3FD2417842E73BBFEFF2F3C848B6831D7E0EC65228B3937E498;
b=0x63E4C6D3B23B0C849CF84241484BFE48F61D59A5B16BA06E6E12D1DA27C5249A;
计算共识节点基于所述用户标识的多倍点Rn(xrn,yrn):
Rn(xrn,yrn)=Za*P(xn,yn)
其中,P(xn,yn)为共识节点的公钥坐标;第n个共识节点的公钥的多倍点表示为Rn(xrn,yrn);Za为用户标识。
计算用户私钥恢复坐标点,具体包括:将得到的各个多倍点的横坐标xr带入所述曲线方程y=knxn+k(n-1)xn-1......k1x+k0,得到对应的纵坐标yqn,Qn(xrn,yqn)即为用户私钥恢复坐标点。
S113、使用所述共识节点的公钥对用户私钥恢复坐标点进行加密并上传到该共识节点。
作为上述方法的一种具体实施例,选取1个共识节点,该共识节点的公钥坐标为P(x1,y1),构建曲线方程为:y=k1x+k0,将该共识节点的公钥坐标P(x1,y1)带入曲线方程,可以计算出k1,而k0为用户私钥。
设定用户标识Za:
Za=SM3(ENTL||IDa||deviceID||a||b||x0||y0||x1||y1)
共识节点公钥:P(x1,y1),多倍点坐标R1(xr1,yr1)=Za*P;P(x1,y1)为共识节点的公钥坐标。
将多倍点坐标R1(xr1,yr1)中的横坐标xr1带入曲线方程,求出用户私钥恢复坐标点Q1(xr1,yq1)。使用该共识节点的公钥对用户私钥恢复坐标点进行加密,上传到该共识节点,完成用户私钥备份过程。
作为本发明的一种实施例,选取n个共识节点,选取的共识节点的公钥坐标分别为P1(x1,y1)、P2(x2,y2)……Pn(xn,yn),其中n为选取的共识节点个数。构建曲线方程为:y=knxn+k(n-1)xn-1......k1x+k0;将选取的共识节点的公钥坐标带入曲线方程,求出整数系数kn....k1,k0为用户私钥。
设定用户标识Za:
Za=SM3(ENTL||IDa||deviceID||a||b||x0||y0|||xn||yn...||x1||y1)
根据多倍点坐标R(xr,yr)=Za*P(xn,yn),分别求出P1(x1,y1)、P2(x2,y2)……Pn(xn,yn)的关于用户标识Za的多倍点R1(xr1,yr1)、R2(xr2,yr2)...Rn(xrn,yrn)。
分别将多倍点的各个横坐标xr1、xr2……xrn分别带入曲线方程,求出对应的纵坐标yq1、yq2……yqn,得出密钥恢复坐标Q1(xr1,yq1)、Q2(xr2,yq2)……Qn(xrn,yqn)。使用各共识节点的公钥加密对应用户私钥恢复坐标点后,上传到对应共识节点,完成用户私钥备份过程。
作为上述实施例的一种实施方式,选取3个共识节点,选取的共识节点的公钥坐标分别为P1(x1,y1)、P2(x2,y2)、P3(x3,y3),其中选取的共识节点个数为3个。构建曲线方程为:y=k3x3+k2x2+k1x+k0;将选取的共识节点的公钥坐标带入曲线方程,求出整数系数k3、k2、k1,k0为用户私钥。
设定用户标识Za:
Za=SM3(ENTL||IDa||deviceID||a||b||x0||y0|||x3||y3||x2||y2||x1||y1)
根据多倍点坐标R(xr,yr)=Za*P(xn,yn),分别求出P1(x1,y1)、P2(x2,y2)、P3(x3,y3)的关于用户标识Za的多倍点R1(xr1,yr1)、R2(xr2,yr2)、R3(xr3,yr3)。
分别将多倍点横坐标xr1、xr2、xr3带入曲线方程,求出对应的纵坐标yq1、yq2、yq3,进而得出用户私钥恢复坐标Q1(xr1,yq1)、Q2(xr2,yq2)、Q3(xr3,yq3)。使用各共识节点的公钥加密对应用户私钥恢复坐标点后,上传到对应共识节点,完成用户私钥备份过程。
S120、所述对备份的用户私钥进行恢复过程,包括:
S121、用户生成身份标识,计算第一临时公私钥对信息,将所述身份标识和所述第一临时公钥信息上传到共识节点。
具体的,S121可以包括:
S1211、用户生成身份标识;所述身份标识即为用户ID,用于唯一标识用户身份。
S1212、在用户端产生随机数ra,计算第一临时公钥坐标Ra,Ra=[ra]G={xa,ya},其中G为国密签名算法SM2使用的椭圆曲线参考点,xa,ya为第一临时公钥坐标Ra的横坐标和纵坐标。
S1213、将用户的身份标识和第一临时公钥坐标点Ra(xa,ya)通过共识节点进行加密,并上传到该共识节点。
S122、共识节点根据所述身份标识,将保存的用户私钥恢复坐标点进行解密,通过ecdh密钥交换算法计算对称加密密钥,使用该对称加密密钥,利用SM4算法加密所述用户私钥恢复坐标点,发送给用户;
所述共识节点产生随机数rb,计算第二临时公钥坐标Rb,Rb=[rb]G={xb,yb},其中G为国密签名算法SM2使用的椭圆曲线参考点,xb,yb为第二临时公钥坐标Rb的横坐标和纵坐标;
S123、所述用户使用所述对称加密密钥,利用SM4算法解密共识节点发送的加密数据,获得用户私钥恢复坐标点,并根据所述曲线方程得出用户私钥。
所述SM4算法为国家密码局颁布的对称加密算法。
所述用户和所述共识节点通过ecdh算法计算出对称加密密钥,包括所述用户计算第一对称密钥以及所述共识节点计算第二对称密钥。所述用户计算第一对称密钥包括:
key=SM3(S)&0xfffffffffffffffffffffffffffffffff 0000 0000 0000 00000000 0000 0000 0000
S=Rb*ra
其中,key为第一对称密钥,SM3为使用国国家密码管理局发布的摘要算法,其中S为共识节点与用户计算出的相等结果,Rb为第二临时公钥坐标,ra为在用户端产生的随机数;
所述共识节点计算第二对称密钥包括:
Key=SM3(S')&0xfffffffffffffffffffffffffffffffff 0000 0000 0000 00000000 0000 0000 0000
S'=Ra*rb
其中,Key为第二对称密钥,SM3为使用国国家密码管理局发布的摘要算法,其中S'为用户与共识节点计算出的相等结果,Ra为第一临时公钥坐标,rb为共识节点产生的随机数。
所述用户使用计算出的对称加密密钥,利用SM4算法解密共识节点发送的加密数据,获得用户私钥恢复坐标点Qn(xrn,yqn),并将用户私钥恢复坐标点Qn(xrn,yqn)的横纵坐标带入所述曲线方程y=knxn+k(n-1)xn-1......k1x+k0,得出用户私钥k0。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在本发明的第二方案中,涉及一种区块链用户证书丢失或损坏装置,如图2所示,包括用户私钥备份模块和用户私钥恢复模块;
所述用户私钥备份模块,包括:
曲线方程构建模块,用于选取一个或多个共识节点,利用选取的共识节点公钥和用户公钥构建曲线方程;
用户私钥恢复坐标点计算模块,用于设定用户标识,计算共识节点基于所述用户标识的多倍点,得出用户私钥恢复坐标点;
用户私钥恢复坐标点上传模块,用于使用所述共识节点的公钥对所述用户私钥恢复坐标点进行加密并上传到所述共识节点;
所述用户私钥恢复模块,包括:
临时公私钥对信息计算模块,设置于用户端,用于生成身份标识,计算临时公私钥对信息;
身份标识及临时公钥信息上传模块,设置于用户端,用于将所述身份标识和所述临时公钥信息上传到共识节点;
对称加密密钥计算模块,设置于共识节点端,用于根据所述身份标识,将保存的用户私钥恢复坐标点进行解密,通过ecdh密钥交换算法计算对称加密密钥;
加密模块,设置于共识节点端,用于使用所述对称加密密钥,利用SM4算法加密所述用户私钥恢复坐标点,发送给用户;
用户私钥计算模块,设置于用户端,用于使用所述对称加密密钥,利用SM4算法解密共识节点发送的加密数据,获得用户私钥恢复坐标点,并根据所述曲线方程得出用户私钥。
用户私钥备份模块和用户私钥恢复模块;
所述用户私钥备份模块,包括:
曲线方程构建模块,用于选取一个或多个共识节点,利用选取的共识节点公钥和用户公钥构建曲线方程;
用户私钥恢复坐标点计算模块,用于设定用户标识,计算共识节点基于所述用户标识的多倍点,得出用户私钥恢复坐标点;
用户私钥恢复坐标点上传模块,用于使用所述共识节点的公钥对所述用户私钥恢复坐标点进行加密并上传到所述共识节点;
所述用户私钥恢复模块,包括:
临时公私钥对信息计算模块,设置于用户端,用于生成身份标识,计算临时公私钥对信息;
身份标识及临时公钥信息上传模块,设置于用户端,用于将所述身份标识和所述临时公钥信息上传到共识节点;
对称加密密钥计算模块,设置于共识节点端,用于根据所述身份标识,将保存的用户私钥恢复坐标点进行解密,通过ecdh密钥交换算法计算对称加密密钥;
加密模块,设置于共识节点端,用于使用所述对称加密密钥,利用SM4算法加密所述用户私钥恢复坐标点,发送给用户;
用户私钥计算模块,设置于用户端,用于使用所述对称加密密钥,利用SM4算法解密共识节点发送的加密数据,获得用户私钥恢复坐标点,并根据所述曲线方程得出用户私钥。
所述多倍点Rn(xrn,yrn)为:
Rn(xrn,yrn)=Za*P(xn,yn)
其中,P(xn,yn)为共识节点的公钥坐标;Rn(xrn,yrn)为多倍点坐标;Za为用户标识,所述用户标识为:
Za=SM3(ENTL||IDa||deviceID||a||b||x0||y0|||xn||yn...||x1||y1)
ENTL为由两个字节表示的IDa的比特长度;IDa为在区块链系统中用户的唯一标识;deviceID为用户设备的唯一标识;a、b为国家密码管理局推荐的系统曲线参数,为常数;x0,y0为用户公钥的横坐标和纵坐标;xn...x1为各共识节点的公钥横坐标;yn...y1为各共识节点的公钥纵坐标;SM3为国家密码管理局发布的摘要算法;
所述曲线方程为:
y=knxn+k(n-1)xn-1......k1x+k0
其中,k0为用户私钥,n为选取的共识节点个数,kn为整数。
以上是关于方法实施例的介绍,以下通过设备实施例,对本发明所述方案进行进一步说明。
如图3所示,设备300包括中央处理单元(CPU)301,其可以根据存储在只读存储器(ROM)302中的计算机程序指令或者从存储单元308加载到随机访问存储器(RAM)303中的计算机程序指令,来执行各种适当的动作和处理。在RAM 303中,还可以存储设备300操作所需的各种程序和数据。CPU 301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
设备300中的多个部件连接至I/O接口305,包括:输入单元306,例如键盘、鼠标等;输出单元307,例如各种类型的显示器、扬声器等;存储单元308,例如磁盘、光盘等;以及通信单元309,例如网卡、调制解调器、无线通信收发机等。通信单元309允许设备300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元301执行上文所描述的各个方法和处理,例如方法S110~S120。例如,在一些实施例中,方法S110~S120可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元308。在一些实施例中,计算机程序的部分或者全部可以经由ROM 302和/或通信单元309而被载入和/或安装到设备300上。当计算机程序加载到RAM 303并由CPU301执行时,可以执行上文描述的方法S110~S120的一个或多个步骤。备选地,在其他实施例中,CPU 301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法S110~S120。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本发明的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (8)
1.一种区块链用户证书丢失或损坏解决方法,其特征在于,包括对用户私钥进行备份;及对备份的用户私钥进行恢复;
所述对用户私钥进行备份包括:
选取一个或多个共识节点,利用选取的共识节点公钥和用户公钥构建曲线方程;
设定用户标识,计算共识节点基于所述用户标识的多倍点,得出用户私钥恢复坐标点,使用所述共识节点的公钥对所述用户私钥恢复坐标点进行加密并上传到所述共识节点;
所述对备份的用户私钥进行恢复包括:
用户生成身份标识,计算临时公私钥对信息,将所述身份标识和所述临时公钥信息上传到共识节点;
共识节点根据所述身份标识,将保存的用户私钥恢复坐标点进行解密,通过ecdh密钥交换算法计算对称加密密钥,使用该对称加密密钥,利用SM4算法加密所述用户私钥恢复坐标点,发送给用户;
所述用户使用所述对称加密密钥,利用SM4算法解密共识节点发送的加密数据,获得用户私钥恢复坐标点,并根据所述曲线方程得出用户私钥;
所述计算共识节点基于所述用户标识的多倍点,得出用户私钥恢复坐标点,包括:
计算共识节点基于所述用户标识的多倍点Rn(xrn,yrn):
Rn(xrn,yrn)=Za*P(xn,yn)
其中,P(xn,yn)为共识节点的公钥坐标;Rn(xrn,yrn)为多倍点坐标;Za为用户标识;
将多倍点的横坐标xrn带入所述曲线方程,得到对应的坐标点Qn(xrn,yqn)即为用户私钥恢复坐标点。
2.根据权利要求1所述的方法,其特征在于,所述用户标识为:
Za=SM3(ENTL||IDa||deviceID||a||b||x0||y0|||xn||yn...||x1||y1)
其中,Za为用户标识;ENTL为由两个字节表示的IDa的比特长度;IDa为在区块链系统中用户的唯一标识;deviceID为用户设备的唯一标识;a、b为国家密码管理局推荐的系统曲线参数,为常数;x0,y0为用户公钥的横坐标和纵坐标;xn,...,x1为各共识节点的公钥横坐标;yn,...,y1为各共识节点的公钥纵坐标;SM3为国家密码管理局发布的摘要算法。
3.根据权利要求1所述的方法,其特征在于,所述曲线方程为:
y=knxn+k(n-1)xn-1+...+k1x+k0
其中,k0为用户私钥,n为选取的共识节点个数,kn为整数。
4.根据权利要求1所述的方法,其特征在于,用户生成身份标识,计算临时公私钥对信息,将所述身份标识和所述临时公钥信息上传到共识节点,包括:
用户生成身份标识;
在用户端产生随机数ra,计算临时公钥坐标Ra,Ra=[ra]G={xa,ya},其中G为国密签名算法SM2使用的椭圆曲线参考点,xa,ya为临时公钥坐标Ra的横坐标和纵坐标;
将身份标识和临时公钥坐标点Ra(xa,ya)通过共识节点进行加密,并上传到该共识节点。
5.一种区块链用户证书丢失或损坏装置,其特征在于,包括:用户私钥备份模块和用户私钥恢复模块;
所述用户私钥备份模块,包括:
曲线方程构建模块,用于选取一个或多个共识节点,利用选取的共识节点公钥和用户公钥构建曲线方程;
用户私钥恢复坐标点计算模块,用于设定用户标识,计算共识节点基于所述用户标识的多倍点,得出用户私钥恢复坐标点;
用户私钥恢复坐标点上传模块,用于使用所述共识节点的公钥对所述用户私钥恢复坐标点进行加密并上传到所述共识节点;
所述用户私钥恢复模块,包括:
临时公私钥对信息计算模块,设置于用户端,用于生成身份标识,计算临时公私钥对信息;
身份标识及临时公钥信息上传模块,设置于用户端,用于将所述身份标识和所述临时公钥信息上传到共识节点;
对称加密密钥计算模块,设置于共识节点端,用于根据所述身份标识,将保存的用户私钥恢复坐标点进行解密,通过ecdh密钥交换算法计算对称加密密钥;
加密模块,设置于共识节点端,用于使用所述对称加密密钥,利用SM4算法加密所述用户私钥恢复坐标点,发送给用户;
用户私钥计算模块,设置于用户端,用于使用所述对称加密密钥,利用SM4算法解密共识节点发送的加密数据,获得用户私钥恢复坐标点,并根据所述曲线方程得出用户私钥;
所述用户私钥恢复坐标点计算模块包括:
多倍点计算模块,用于计算共识节点基于所述用户标识的多倍点Rn(xrn,yrn);
所述多倍点Rn(xrn,yrn)为:
Rn(xrn,yrn)=Za*P(xn,yn)
其中,P(xn,yn)为共识节点的公钥坐标;Rn(xrn,yrn)为多倍点坐标;Za为用户标识;
用户私钥恢复坐标点计算模块,用于将多倍点的横坐标xrn带入所述曲线方程,得到用户私钥恢复坐标点Qn(xrn,yqn)。
6.根据权利要求5所述的装置,其特征在于,所述用户标识为:
Za=SM3(ENTL||IDa||deviceID||a||b||x0||y0|||xn||yn...||x1||y1)
ENTL为由两个字节表示的IDa的比特长度;IDa为在区块链系统中用户的唯一标识;deviceID为用户设备的唯一标识;a、b为国家密码管理局推荐的系统曲线参数,为常数;x0,y0为用户公钥的横坐标和纵坐标;xn,...,x1为各共识节点的公钥横坐标;yn,...,y1为各共识节点的公钥纵坐标;SM3为国家密码管理局发布的摘要算法;
所述曲线方程为:
y=knxn+k(n-1)xn-1+...+k1x+k0
其中,k0为用户私钥,n为选取的共识节点个数,kn为整数。
7.一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~4中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010149877.2A CN111342967B (zh) | 2020-03-06 | 2020-03-06 | 一种区块链用户证书丢失或损坏解决方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010149877.2A CN111342967B (zh) | 2020-03-06 | 2020-03-06 | 一种区块链用户证书丢失或损坏解决方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111342967A CN111342967A (zh) | 2020-06-26 |
CN111342967B true CN111342967B (zh) | 2021-03-19 |
Family
ID=71182174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010149877.2A Active CN111342967B (zh) | 2020-03-06 | 2020-03-06 | 一种区块链用户证书丢失或损坏解决方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111342967B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858768B (zh) * | 2020-07-27 | 2023-06-16 | 苏州区盟链数字科技有限公司 | 一种优化区块链可信节点与共识算法的装置 |
CN112769566B (zh) * | 2021-01-19 | 2023-06-02 | 上海布沁网络科技有限公司 | 一种区块链hd私钥找回方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108847929A (zh) * | 2018-05-28 | 2018-11-20 | 数字乾元科技有限公司 | 私钥存储的门限恢复方法及系统 |
CN109150549A (zh) * | 2018-10-26 | 2019-01-04 | 北京中宇万通科技股份有限公司 | 一种基于国产密码算法实现区块链密码安全服务的方法 |
CN110289968A (zh) * | 2019-06-27 | 2019-09-27 | 矩阵元技术(深圳)有限公司 | 私钥恢复、协同地址的创建、签名方法及装置、存储介质 |
CN110798313A (zh) * | 2019-10-31 | 2020-02-14 | 武汉理工大学 | 基于秘密动态共享的包含秘密的数的协同生成方法及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110730065B (zh) * | 2018-07-17 | 2022-04-08 | 关楗股份有限公司 | 用于秘钥备份装置及秘钥备份系统中的权标装置 |
CN109218291B (zh) * | 2018-08-14 | 2021-02-09 | 深圳高灯计算机科技有限公司 | 一种基于区块链的数据流转方法、系统及相关设备 |
CN109379184A (zh) * | 2018-09-28 | 2019-02-22 | 北京金山安全软件有限公司 | 一种区块链私钥的存储方法、装置及电子设备 |
CN109818744B (zh) * | 2019-02-27 | 2022-11-18 | 矩阵元技术(深圳)有限公司 | 共享秘密密钥生成方法、装置、计算机设备和存储介质 |
US10985917B2 (en) * | 2019-07-05 | 2021-04-20 | Ballet Global Inc. | Physical, tamper-evident cryptocurrency card |
CN110768781B (zh) * | 2019-08-28 | 2021-10-22 | 如般量子科技有限公司 | 基于联盟链且抗量子计算的公私钥颁发方法及系统 |
CN110753327B (zh) * | 2019-09-30 | 2023-07-25 | 国电南瑞科技股份有限公司 | 一种基于无线自组网和LoRa的终端物联接入系统 |
-
2020
- 2020-03-06 CN CN202010149877.2A patent/CN111342967B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108847929A (zh) * | 2018-05-28 | 2018-11-20 | 数字乾元科技有限公司 | 私钥存储的门限恢复方法及系统 |
CN109150549A (zh) * | 2018-10-26 | 2019-01-04 | 北京中宇万通科技股份有限公司 | 一种基于国产密码算法实现区块链密码安全服务的方法 |
CN110289968A (zh) * | 2019-06-27 | 2019-09-27 | 矩阵元技术(深圳)有限公司 | 私钥恢复、协同地址的创建、签名方法及装置、存储介质 |
CN110798313A (zh) * | 2019-10-31 | 2020-02-14 | 武汉理工大学 | 基于秘密动态共享的包含秘密的数的协同生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111342967A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11552792B2 (en) | Systems and methods for generating signatures | |
CN110519260B (zh) | 一种信息处理方法及信息处理装置 | |
US10027654B2 (en) | Method for authenticating a client device to a server using a secret element | |
CN107483212B (zh) | 一种双方协作生成数字签名的方法 | |
CN110969431B (zh) | 区块链数字币私钥的安全托管方法、设备和系统 | |
CN110943976B (zh) | 一种基于口令的用户签名私钥管理方法 | |
CN107623569A (zh) | 基于秘密共享技术的区块链密钥托管和恢复方法、装置 | |
CN111339199B (zh) | 一种区块链密钥恢复方法和装置 | |
WO2020192285A1 (zh) | 一种密钥管理方法、安全芯片、业务服务器及信息系统 | |
CN109861956B (zh) | 基于状态通道的数据验证系统、方法、装置及设备 | |
CN111526007B (zh) | 一种随机数生成方法及系统 | |
CN111342967B (zh) | 一种区块链用户证书丢失或损坏解决方法和装置 | |
WO2023050557A1 (zh) | 一种零知识证明等区块链身份认证及隐私保护核心技术 | |
CN110557246B (zh) | 基于一次性非对称密钥对和可移动身份识别装置的抗量子计算门禁方法和系统 | |
CN109905384B (zh) | 数据迁移方法及系统 | |
CN111147245A (zh) | 一种区块链中使用国家密码进行加密的算法 | |
CN111739200B (zh) | 一种指纹电子锁的加密、解密认证方法和指纹电子锁 | |
CN104735064B (zh) | 一种标识密码系统中标识安全撤销并更新的方法 | |
CN110690969A (zh) | 一种多方协同完成双向ssl/tls认证的方法和系统 | |
CN108199836B (zh) | 一种密钥与设备绑定、解绑定的方法及装置 | |
CN113486324A (zh) | 基于sm2算法实现三因素匿名身份认证的方法 | |
CN113343201A (zh) | 注册请求处理方法、用户身份信息管理方法及设备 | |
CN110519040B (zh) | 基于身份的抗量子计算数字签名方法和系统 | |
CN116155598A (zh) | 多服务器架构下的认证方法及系统 | |
TWI482480B (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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A method and device for solving the loss or damage of blockchain user certificate Effective date of registration: 20220318 Granted publication date: 20210319 Pledgee: Beijing Zhongguancun bank Limited by Share Ltd. Pledgor: BEIJING ZHONGYU WANTONG TECHNOLOGY Co.,Ltd. Registration number: Y2022990000152 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |