首页> 中国专利> 一种基于区块链生成指定数量私钥的方法

一种基于区块链生成指定数量私钥的方法

摘要

本发明实施例公开了一种基于区块链生成指定数量私钥的方法,属于区块链技术领域,其中基于区块链生成私钥的方法步骤为:步骤一,确定要产生私钥的数量n,基于用户身份信息用阿拉伯数字代替;步骤二,随机选择当前时间内的一个区块;步骤三,提取该区块中的哈希值H和交易信息数据K;步骤四,将交易信息数据随机排成一排,打乱重排,把重排后的数据截成n段;步骤五,将哈希值和步骤四中每小段进行拼接,进行哈希计算,生成随机数;步骤六,基于所得到的随机数和阿拉伯数字身份,生成与各用户对应的私钥。本发明实施例通过随机选取当前时间内的一个区块,通过区块哈希值和打乱后交易数据段进行拼接,生成随机数,再基于随机数和代表身份的阿拉伯数字可以单个或者快速大量的产生指定数量的私钥。

著录项

  • 公开/公告号CN113326328A

    专利类型发明专利

  • 公开/公告日2021-08-31

    原文格式PDF

  • 申请/专利权人 广州以大坊区块链科技有限公司;

    申请/专利号CN202110661461.3

  • 发明设计人 王玲利;

    申请日2021-06-15

  • 分类号G06F16/27(20190101);G06F21/62(20130101);G06F21/64(20130101);G06Q40/02(20120101);

  • 代理机构

  • 代理人

  • 地址 510630 广东省广州市天河区长福路207号首层S3单元

  • 入库时间 2023-06-19 12:24:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-02-01

    发明专利申请公布后的撤回 IPC(主分类):G06F16/27 专利申请号:2021106614613 申请公布日:20210831

    发明专利申请公布后的撤回

说明书

技术领域

本发明涉及到区块链技术领域,特别涉及一种基于区块链生成指定数量私钥的方法。

背景技术

继金融科技(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

特殊情况说明,如果用户丢失了自己的私钥,将会经过一系列核对后,按照上述生成私钥的方式重新生成一个新的私钥,公钥和数字钱包(因为旧的私钥丢失了,不安全)。商业银行将会把旧的数字钱包的钱转到新的数字钱包,并把新形成的私钥通知用户。可见,通过这种方式生成的私钥,即使私钥丢失也不会影响数字货币的安全性,重新生成新私钥也比较简单易行。

应当理解的是本发明的上述实施例仅是解释和介绍本发明的原理,而不是所有实施例。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号