一种基于区块链生成指定数量私钥的方法
文献发布时间:2023-06-19 12:24:27
技术领域
本发明涉及到区块链技术领域,特别涉及一种基于区块链生成指定数量私钥的方法。
背景技术
继金融科技(Fintech)在国内互联网金融市场大热之后,“区块链”成为很多大公司和投资群体的研究对象;分布式账本是随机挑选记账者来对数据进行记账,主要涉及一种不对等加密方式(哈希值)来对数据进行加密,数据一旦写入区块链就不能再进行修改;区块链的代表是比特币,比特币就是类似一个数据库账本,将所有交易记录全部记录在册;定期的通过工作量产生记账者,来对新的交易进行记账;因此区块链凭借高安全性和十分便捷的特性,区块链技术逐渐得到了银行与金融业的关注;比特币作为虚拟货币,由计算机大量计算产生,其数量却十分有限,仅有2100万个;具备去中心化、开采困难、总量有限、安全指数高、流通速度快、无法控制发行等属性;比特币属于一种数字货币,对于用户来说最重要的就是数字钱包的私钥,拥有了私钥,用户就能对自己的数字资产进行交易;如果私钥被破解或者被遗忘就意味着数字资产的丢失;在数字货币越来越通用的今天,使用数字钱包的人越来越多,那么就需要找到更方便快捷生成私钥的方法。
现有技术产生私钥的方法大部分是RSA加密(不对称加密)来实现的,还有少部分是依据区块链的加密体制来实现。RSA是一种公钥密码体制,所谓的公钥密码体制就是使用不同的加密密钥与解密密钥。RSA公钥密码体制加密思想为:将两个大数乘起来容易,但将大数因数分解很难,当数足够大时,就会不可分解;所以RSA公钥密码体制是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。使用RSA加密算法生成私钥的步骤如下:
1,首先选取两个大素数p和q(p和q的大小往往是几百位,甚至更大);
2,将p和q相乘得m(m大到计算机无法对其因数分解),计算φ(m):φ(m)=φ(p)φ(q)=(p-1)(q-1);
3,选取与φ(m)互素的整数n,n<φ(m);
4,计算n对于φ(m)的模反元素d,所谓"模反元素"就是指有一个整数d,可以使得nd 被φ(m)除的余数为1;
5,m和d封装成私钥,m和n封装成公钥(公钥可以向全世界公布);
最终生成两个密钥,一个私钥,由用户保存;另一个为公钥,可对外公开,甚至可向全世界公开。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位;
不对称性加密(RSA、DSA、ECDSA等)生成私钥虽然是一种很安全的加密体制,但是均存在不同的缺陷,以RSA为例,RSA加密算法有如下缺陷:
1.由于RSA进行的都是大数计算,无论是通过软件还是硬件实现,速度缓慢一直是RSA 的缺陷;所以一般来说这种方法只用于少量数据加密。
2.RSA加密技术中,当知道公钥时,封装成私钥使用的数字是有可能被推导出的,也就意味着私钥存在被破解的可能性,十分不安全。
现已经存在的基于区块链生成私钥的方法中:有些是随机选取一个区块,但是一次只能产生一个私钥,当面临需要一次性产生多个私钥的情况时,该方法不适用。有些则是选取一条最长区块链的全部区块来进行生成私钥,选取区块链最长链的全部区块较为费时,且往往会导致产生的随机数过多,不能产生指定数量的随机数。
因此如何快速且准确的产生指定数量的私钥,且保证私钥的安全性,成为现代区块链生成私钥技术迫切需要解决的问题。
发明内容
本发明的目的是提供一种基于区块链生成指定数量私钥的方法,通过把一个区块数据重排,把重排后的数据分成指定的份数,通过哈希值和每段数据拼接生成随机数,然后通过随机数和阿拉伯数字身份,从而达到快速生成指定数量私钥的目的。
为解决上述问题,本发明的一种基于区块链生成指定数量私钥的方法包括如下步骤:
1,确定要产生私钥的数量n,基于用户身份信息用阿拉伯数字代替;
2,随机选择当前时间内的一个区块;
3,提取该区块中的哈希值H和交易信息数据K;
4,将交易信息数据随机排成一排,打乱重排,把重排后的数据截成n段,截取的n段数据记为K
5,将区块哈希值H和步骤四中每小段K
6,基于所得到的随机数和阿拉伯数字身份,生成与各用户对应的私钥;
特别地,步骤1中在确定了生成私钥数目n的同时,按照用户注册的时间顺序,分别用阿拉伯数字代替用户信息。这样就形成用户和阿拉伯数字的对应关系(如果存在用户注册的时间相同,则按照系统录入的顺序适当匹配阿拉伯数字)。
特别地,步骤4中首先把所有的交易数据组成一个集合,然后打乱顺序,最后再把集合中的数据分成n份,n份数据没有严格要求等长,但是每份也不能太长或者太短。
进一步的在生成随机数的同时,对所选取的区块进行标号,就形成了该随机数与该区块的对应关系,也可以作为私钥和区块的对应关系,区块标号可以是该区块的时间戳T
进一步的在生成随机数以后,随机数与代表身份信息的阿拉伯数字进行组合,是按阿拉伯数字从小到大与生成的随机数进行组合的(例如:K
本发明的上述技术方案具有如下有益的技术效果:
1.生成私钥速度快;
2.能够产生指定数量的私钥数;
3.安全性高,利用区块链技术生成私钥不会被其他人重复相同的过程,生成相同的私钥。并且每个用户用一个特定的阿拉伯数字来代替其信息,保护了用户的隐私,也确保了用户信息的安全。
附图说明
图1:本研究区块链生成私钥的流程图
具体实施方式
为使本发明的目的,技术方案和核心更加清晰明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。
1,首先使用者根据业务需要,选择一个整数n,整数n是要求创建私钥的用户数;根据用户的注册时间,用户信息用一个阿拉伯数字来代替(如果存在用户注册的时间相同,则按照系统录入的顺序适当匹配阿拉伯数字):从该系统开始运行起,注册的用户按时间依次用阿拉伯数字从小到大来代替用户身份。比如上一次产生私钥时代表用户身份的阿拉伯数字到 100,则下次再次运用该系统产生私钥的时候,用户身份信息将从101代替开始。
2,选取当前时间内的一个区块,区块可以是该时间所有区块链上的任意一个区块。因为区块链的生成是并行的,一个区块链网络可以由很多条链构成,通过随机选取区块链网络中的一个区块,增大了安全和随机性。
3,提取该区块中的哈希值H和交易信息数据K。
4,将交易信息数据随机排成一排,然后打乱重排,把重排后的数据截成n段;打乱重排是要求把所有的交易信息数据看做一个集合,组成一排,然后打乱重排(该集合中的所有文字和符号都参加),最后根据需要把打乱后的数据截成n段;下表是打乱重排的一个示例:
5,将哈希值H分别和重排后的分段K
6,将产生的随机数与代表身份信息的阿拉伯数字a
特别指出用阿拉伯数字代替每个用户的信息,可以更好保护用户的隐私、增加用户安全和提高用户使用的积极性。
特别指出在将哈希值H分别和重排后的分段K
特别指出建立区块标号、阿拉伯数字身份信息和私钥的对应关系,以便用户在使用过程中如果有丢失私钥的情况,系统将核对用户信息,待确认用户信息以后,将按照上述步骤产生新的私钥。
下面简要概述下私钥的应用:在生成私钥以后,可以根据非对称加密的算法生成公钥。然后在通过公钥生成区块链钱包地址,钱包的拥有者就可以使用钱包进行交易(钱包地址的获取方法很多)。
非对称性加密算法是一种不可逆算法,已知私钥时可以通过非对称加密算得公钥,而已知公钥时却无法反向计算出私钥。非对称加密算法可以是RSA算法、背包算法、Elgamal算法、Rabin算法、D-H算法、ECC(椭圆曲线加密算法)等。
下面介绍本发明在银行系统中的应用:
银行要发行一种数字货币,则需要给每一个使用数字货币的用户配置一个数字钱包。此时该银行根据银行系统中一段时间内的所有交易行为生成区块链。生成区块链以后确定要生成数字钱包的用户数量n,按申请时间将每个用户信息用阿拉伯数字代替a
特殊情况说明,如果用户丢失了自己的私钥,将会经过一系列核对后,按照上述生成私钥的方式重新生成一个新的私钥,公钥和数字钱包(因为旧的私钥丢失了,不安全)。商业银行将会把旧的数字钱包的钱转到新的数字钱包,并把新形成的私钥通知用户。可见,通过这种方式生成的私钥,即使私钥丢失也不会影响数字货币的安全性,重新生成新私钥也比较简单易行。
应当理解的是本发明的上述实施例仅是解释和介绍本发明的原理,而不是所有实施例。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种基于区块链生成指定数量私钥的方法
- 一种基于RFID技术的区块链私钥生成装置及方法