安全保存区块链私钥的方法及装置与流程

文档序号:19535492发布日期:2019-12-27 15:50阅读:433来源:国知局
安全保存区块链私钥的方法及装置与流程

本发明涉及区块链领域,特别涉及一种安全保存区块链私钥的方法及装置。



背景技术:

私钥(privatekey)是完全随机的一串字符,是区块链系统或应用中,鉴定用户身份及操作权限的唯一信息,类似于传统系统中的“用户账号+密码”的组合。传统信息化系统有唯一的所有者,可以通过修改或重置中心化数据库的信息帮助用户找回账号及密码,区别于传统信息化系统,区块链的权限最大程度的被分散,因此私钥丢失后,即无法找回链上资产,这一问题是长久以来困扰区块链应用普及的关键问题。现有的技术方案主要是通过助记词、脑钱包、keystore和中心化托管四种方式将私钥转化为另一形式的信息保存。现有的技术方案及缺陷如下:

助记词:由于私钥是无规则的字符串,极难记忆,因此在创建钱包的过程,会将私钥根据一个公开的规则映射成生成一串助记词,让用户备份,助记词一般由12个单词构成,2个单词之间由1个空格隔开,这些单词都来源于一个固定词库,是由私钥根据一定算法得来,所以私钥与助记词之间的转换是互通的,因此助记词实际上就是私钥的另一种表现形式。该方案的缺点是,助记词依然无法通过托管或授权的方式交给第三方保管,仅仅是私钥的记忆方法,并不能起到有效保护私钥备份的作用。

脑钱包:脑钱包就是提示用户自己想好的一串他易于记忆且独有的英文单词,将这串英文单词映射到用户的私钥,即通过一定的计算机算法即可将这串英文字符转化成64位的私钥和地址。这样用户就只需要记住其特有的英文句子,用脑子记住私钥,让用户的虚拟资产存在其大脑,没有实物存在。类似于助记词,该技术方案也有极大的风险,抛开失忆不说,人是情感动物,无法做到电脑般冷冰冰的随机,写出的单词句子总是有规律可循的,如果仅仅是一句名人名言,或者是书里的某个句子,很容易就被计算机破解了。

keystore:keystore就是json格式的字符串,一般以文件形式存储。常见于以太坊钱包,一般创建以太坊钱包后,会提示备份keystore,它是一串代码,日后都可以用任何以太坊钱包解开密码。keystore的本质是加密后的私钥,keystore必须配合钱包密码来使用,因此其缺点明显,备份了keystore但忘记了钱包密码仍是不能被任何一方破解,无法起到有效安全备份私钥的功能。

中心化托管:中心化托管就是把私钥以明文或者加密的方式,托管保存在第三方中心服务器,需要的时候从第三方中心服务器取回使用。常见于交易所和中心化钱包。对于明文托管保存的方式,用户已经实际上失去了私钥,只能依赖平台的信用和安全性。对于加密托管保存的方式,缺点与keystore一样,用户一旦忘记密码即遗失掉私钥,无法起到有效安全备份私钥的功能。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种安全性较高、具有容错性、可自由调节容错与安全的平衡、实现去中心化托管、避免意外或误操作造成的私钥备份丢失的安全保存区块链私钥的方法及装置。

本发明解决其技术问题所采用的技术方案是:构造一种安全保存区块链私钥的方法,包括如下步骤:

a)输入私钥pk;

b)设定n个子密码pw1~n,并选择解密阈值m,其中,n>0,0<m≤n;

c)执行信息分解算法decompose,将所述私钥pk分解出n个解pk1~pkn,作为子私钥;

d)通过对称性加密算法encrypt,用子密码pw1~pwn分别对子私钥pk1~pkn进行加密处理,生成对应子密文s1~sn;

e)对于子密码pw1~pwn中的每个子密码,用户输入对应的提示信息h1~hn;

f)将所述提示信息h1~hn及子密文s1~sn组合打包,生成密码包pkg,用户自行保管所述密码包pkg。

在本发明所述的安全保存区块链私钥的方法中,在所述步骤f)之后还包括如下步骤:

g)提取所述密码包pkg中的提示信息h1~hn,并分别向用户进行提示;

h)用户根据所述提示信息h1~hn的提示,分别填入子密码pw1~pwn;

i)提取所述密码包pkg中的子密文s1~sn;

j)通过相对应的对称性解密算法decrypt,用所述子密码pw1~pwn分别对所述子密文s1~sn进行解密,还原出所述子私钥pk1~pkn;

k)通过信息合并算法combine,当所述子私钥pk1~pkn中正确的数量不少于m时,则正确还原出私钥pk。

在本发明所述的安全保存区块链私钥的方法中,所述私钥pk为非对称性加密和签名算法的密码对中自己持有的部分,非对称性加密算法为rsa、elgamal、rabin或ecc加密算法。

在本发明所述的安全保存区块链私钥的方法中,所述对称性加密算法encrypt为des、tdea、rc2、rc4、rc5、blowfish或aes加密算法。

本发明还涉及一种实现上述安全保存区块链私钥的方法的装置,包括:

私钥输入单元:用于输入私钥pk;

子密码设置单元:用于设定n个子密码pw1~n,并选择解密阈值m,其中,n>0,0<m≤n;

私钥分解单元:用于执行信息分解算法decompose,将所述私钥pk分解出n个解pk1~pkn,作为子私钥;

加密单元:用于通过对称性加密算法encrypt,用子密码pw1~pwn分别对子私钥pk1~pkn进行加密处理,生成对应子密文s1~sn;

提示信息输入单元:用于对于子密码pw1~pwn中的每个子密码,用户输入对应的提示信息h1~hn;

组合打包单元:用于将所述提示信息h1~hn及子密文s1~sn组合打包,生成密码包pkg,用户自行保管所述密码包pkg。

在本发明所述的装置中,还包括:

提示信息提取单元:用于提取所述密码包pkg中的提示信息h1~hn,并分别向用户进行提示;

子密码填入单元:用于使用户根据所述提示信息h1~hn的提示,分别填入子密码pw1~pwn;

子密文提取单元:用于提取所述密码包pkg中的子密文s1~sn;

解密单元:用于通过相对应的对称性解密算法decrypt,用所述子密码pw1~pwn分别对所述子密文s1~sn进行解密,还原出所述子私钥pk1~pkn;

私钥还原单元:用于通过信息合并算法combine,当所述子私钥pk1~pkn中正确的数量不少于m时,则正确还原出私钥pk。

在本发明所述的装置中,所述私钥pk为非对称性加密和签名算法的密码对中自己持有的部分,非对称性加密算法为rsa、elgamal、rabin或ecc加密算法。

在本发明所述的装置中,所述对称性加密算法encrypt为des、tdea、rc2、rc4、rc5、blowfish或aes加密算法。

实施本发明的安全保存区块链私钥的方法及装置,具有以下有益效果:由于输入私钥pk;设定n个子密码pw1~n,并选择解密阈值m,其中,n>0,0<m≤n;执行信息分解算法decompose,将私钥pk分解出n个解pk1~pkn,作为子私钥;通过对称性加密算法encrypt,用子密码pw1~pwn分别对子私钥pk1~pkn进行加密处理,生成对应子密文s1~sn;对于子密码pw1~pwn中的每个子密码,用户输入对应的提示信息h1~hn;将提示信息h1~hn及子密文s1~sn组合打包,生成密码包pkg,用户自行保管密码包pkg,因此本发明安全性较高、具有容错性、可自由调节容错与安全的平衡、实现去中心化托管、避免意外或误操作造成的私钥备份丢失。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明安全保存区块链私钥的方法及装置一个实施例中方法的流程图;

图2为所述实施例中安全保存区块链私钥的方法的流程框图;

图3为所述实施例中装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明安全保存区块链私钥的方法及装置实施例中,其安全保存区块链私钥的方法的流程图如图1所示。该安全保存区块链私钥的方法的流程框图如图2所示。

图1中,该安全保存区块链私钥的方法包括如下步骤:

步骤s01输入私钥pk:本步骤中,在图2中的加密装置中输入私钥pk。私钥pk为非对称性加密和签名算法的密码对中自己持有的部分,本发明采用常用的非对称性加密算法,例如:rsa、elgamal、rabin或ecc加密算法等。

步骤s02设定n个子密码pw1~n,并选择解密阈值m,其中,n>0,0<m≤n:本步骤中,设定n个子密码pw1~n,并选择解密阈值m,其中,n为子密码设置的数量,n>0,m为完成解密所需要的最低密码正确数量,0<m≤n,m和n均为整数。子密码pw1~n为对称性加密算法的密码。

步骤s03执行信息分解算法decompose,将私钥pk分解出n个解pk1~pkn,作为子私钥:本步骤中,执行信息分解算法decompose,将私钥pk分解出n个解pk1~pkn,将pk1~pkn作为子私钥。信息分解算法decompose在密码学中常用于把信息拆分成碎片进行保护,常用的信息分解算法decompose,例如:多项式分解法。

步骤s04通过对称性加密算法encrypt,用子密码pw1~pwn分别对子私钥pk1~pkn进行加密处理,生成对应子密文s1~sn:本步骤中,通过任意对称性加密算法encrypt(对称性加密算法的加密模块),用子密码pw1~pwn分别对子私钥pk1~pkn进行加密处理,生成对应子密文s1~sn,即加密后的数据。本发明的安全保存区块链私钥的方法采用常用的对称性加密算法,例如:des、tdea、rc2、rc4、rc5、blowfish或aes加密算法等。

步骤s05对于子密码pw1~pwn中的每个子密码,用户输入对应的提示信息h1~hn:本步骤中,对于子密码pw1~pwn中的每个子密码,用户输入对应的提示信息h1~hn。提示信息h1~hn为输入密码时帮助用户记忆的内容。

步骤s06将提示信息h1~hn及子密文s1~sn组合打包,生成密码包pkg,用户自行保管密码包pkg:本步骤中,将提示信息h1~hn及子密文s1~sn组合打包,生成密码包pkg,用户自行保管密码包pkg,该密码包pkg也是本发明的产出结果,密码包pkg中包含任何子密码信息。

通过上述步骤s01至步骤s06,实现私钥保护过程。

本发明的安全保存区块链私钥的方法在普通aes加密之上,增加了a(m)倍的复杂度,抗暴力破解能力显著提升;m就是设定的解密阈值,解密阈值越高,复杂度越高,使得安全性较高。

本发明的安全保存区块链私钥的方法具有容错性,可以避免遗忘部分问题造成的数字资产永久丢失。

本发明的安全保存区块链私钥的方法可自由调节容错与安全的平衡:相比其他技术方案,本发明的安全保存区块链私钥的方法可由用户自主调节容错性,增加密码找回的可能性减少记忆负担,适用于小额资产钱包或高可靠环境下的使用;也可以降低容错提高安全性,适用于高风险的环境或大额资产的长期保存。因此该发明的安全保存区块链私钥的方法较以往的技术方案有着极其广泛的适用场景和商业价值。

本发明的全保存区块链私钥的方法实现去中心化托管:因问题答案的生成和验证不需要第三方可以独立完成,且不泄露任何个人隐私信息,因此加密信息包可以交由去中心化的公共存储服务托管,可以避免意外或误操作造成的私钥备份丢失。

本实施例中,在上述步骤s06之后,还包括如下步骤:

步骤s07提取密码包pkg中的提示信息h1~hn,并分别向用户进行提示:本步骤中,提取密码包pkg中的提示信息h1~hn,并分别向用户进行提示。

步骤s08用户根据提示信息h1~hn的提示,分别填入子密码pw1~pwn:本步骤中,用户根据提示信息h1~hn的提示,分别填入子密码pw1~pwn。

步骤s09提取密码包pkg中的子密文s1~sn:本步骤中,提取密码包pkg中的子密文s1~sn。

步骤s10通过相对应的对称性解密算法decrypt,用子密码pw1~pwn分别对子密文s1~sn进行解密,还原出子私钥pk1~pkn:本步骤中,通过相对应的对称性解密算法decrypt,用子密码pw1~pwn分别对子密文s1~sn进行解密,还原出子私钥pk1~pkn。对称性解密算法decrypt与对称性加密算法encrypt是对应的,是对称性加密算法的解密模块。

步骤s11通过信息合并算法combine,当子私钥pk1~pkn中正确的数量不少于m时,则正确还原出私钥pk:本步骤中,通过信息合并算法combine,只要子私钥pk1~pkn中正确的数量不少于m,则可正确还原出私钥pk,信息合并算法combine与信息分解算法decompose是对应的,信息合并算法combine用于把信息碎片还原为信息本身。通过上述步骤s07至步骤s11实现私钥找回过程。至此找回过程结束。

本发明的安全保存区块链私钥的方法因无需暴露私钥的前提下,将数据资产交由去中心化的组织托管,实现了去中心化安全托管区块链私钥的功能。

本实施例还涉及一种实现上述安全保存区块链私钥的方法的装置,该装置的结构示意图如图3所示。图3中,该装置包括私钥输入单元1、子密码设置单元2、私钥分解单元3、加密单元4、提示信息输入单元5和组合打包单元6。

其中,私钥输入单元1用于在图2中的加密装置中输入私钥pk。

子密码设置单元2用于设定n个子密码pw1~n,并选择解密阈值m,其中,n为子密码设置的数量,n>0,m为完成解密所需要的最低密码正确数量,0<m≤n,m和n均为整数。子密码pw1~n为对称性加密算法的密码。

私钥分解单元3用于执行信息分解算法decompose,将私钥pk分解出n个解pk1~pkn,作为子私钥;信息分解算法decompose在密码学中常用于把信息拆分成碎片进行保护,常用的信息分解算法decompose,例如:多项式分解法。

加密单元4用于通过对称性加密算法encrypt,用子密码pw1~pwn分别对子私钥pk1~pkn进行加密处理,生成对应子密文s1~sn。本发明的装置采用常用的对称性加密算法,例如:des、tdea、rc2、rc4、rc5、blowfish或aes加密算法等。

提示信息输入单元5用于对于子密码pw1~pwn中的每个子密码,用户输入对应的提示信息h1~hn。提示信息h1~hn为输入密码时帮助用户记忆的内容。

组合打包单元6用于将提示信息h1~hn及子密文s1~sn组合打包,生成密码包pkg,用户自行保管密码包pkg。该密码包pkg也是本发明的产出结果,密码包pkg中包含任何子密码信息。

通过上述私钥输入单元1至组合打包单元6,可以实现私钥保护过程。

本发明的装置在普通aes加密之上,增加了a(m)倍的复杂度,抗暴力破解能力显著提升;m就是设定的解密阈值,解密阈值越高,复杂度越高,使得安全性较高。

本发明的装置具有容错性,可以避免遗忘部分问题造成的数字资产永久丢失。

本发明的装置可自由调节容错与安全的平衡:相比其他技术方案,本发明的装置可由用户自主调节容错性,增加密码找回的可能性减少记忆负担,适用于小额资产钱包或高可靠环境下的使用;也可以降低容错提高安全性,适用于高风险的环境或大额资产的长期保存。因此该发明的装置较以往的技术方案有着极其广泛的适用场景和商业价值。

本发明的装置实现去中心化托管:因问题答案的生成和验证不需要第三方可以独立完成,且不泄露任何个人隐私信息,因此加密信息包可以交由去中心化的公共存储服务托管,可以避免意外或误操作造成的私钥备份丢失。

本实施例中,该装置还包括提示信息提取单元7、子密码填入单元8、子密文提取单元9、解密单元10和私钥还原单元11。其中,提示信息提取单元7用于提取密码包pkg中的提示信息h1~hn,并分别向用户进行提示;子密码填入单元8用于使用户根据提示信息h1~hn的提示,分别填入子密码pw1~pwn;子密文提取单元9用于提取密码包pkg中的子密文s1~sn。

解密单元10用于通过相对应的对称性解密算法decrypt,用子密码pw1~pwn分别对子密文s1~sn进行解密,还原出子私钥pk1~pkn。对称性解密算法decrypt与对称性加密算法encrypt是对应的,是对称性加密算法的解密模块。

私钥还原单元11用于通过信息合并算法combine,当子私钥pk1~pkn中正确的数量不少于m时,则正确还原出私钥pk。信息合并算法combine与信息分解算法decompose是对应的,信息合并算法combine用于把信息碎片还原为信息本身。通过上述提示信息提取单元7至私钥还原单元11实现私钥找回过程。

本发明的装置因无需暴露私钥的前提下,将数据资产交由去中心化的组织托管,实现了去中心化安全托管区块链私钥的功能。

在实际应用中,在要求不高的情况下,可以采用中心化托管、keystore和脑钱包在一定程度上替代本发明的方案,实现区块链私钥托管的目的,但安全性和扩展性难以达到本发明的效果。

总之,本发明是基于密码学的私钥分解算法,是实现一种不完全信息的区块链私钥保存方法,并且因为转化后的信息无法被破解,因此可以将私钥相关的备份数据交由任何第三方托管。其安全性较高、具有容错性、可自由调节容错与安全的平衡、实现去中心化托管、避免意外或误操作造成的私钥备份丢失。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1