CN109873701A - 生成密钥的方法及装置 - Google Patents
生成密钥的方法及装置 Download PDFInfo
- Publication number
- CN109873701A CN109873701A CN201910082426.9A CN201910082426A CN109873701A CN 109873701 A CN109873701 A CN 109873701A CN 201910082426 A CN201910082426 A CN 201910082426A CN 109873701 A CN109873701 A CN 109873701A
- Authority
- CN
- China
- Prior art keywords
- key data
- target
- mentioned
- data
- 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.)
- Pending
Links
Abstract
本发明公开了一种生成密钥的方法及装置。其中,该方法包括:依据预先确定的目标助记词生成区块链账户系统的目标数据;基于上述目标数据生成私钥数据;基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据;依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。本发明解决了现有技术中生成的密钥数据安全性较低且密钥数据不方便记忆的技术问题。
Description
技术领域
本发明涉及安全技术领域,具体而言,涉及一种生成密钥的方法及装置。
背景技术
目前的国密密钥对生成可以直接通过SM2算法实现,SM2算法基于ECC算法,签名返回2个大数,共64位。
但现有技术中,中心化服务器S因为节点单一,容易被攻击,如果被攻击或者作弊会导致文件N的泄露、被篡改和虚假授权问题,用户A和用户B都无法确信文件N是否被泄露或者被篡改,无法信任文件N的安全性。
另外,基于SM2算法的区块链账户设置时一般采用SM2密钥对私钥作为用户口令,SM2密钥对私钥为64位,即使转成BCD码方式,也不方便记忆。
针对上述现有技术中生成的密钥数据安全性较低且密钥数据不方便记忆的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种生成密钥的方法及装置,以至少解决现有技术中生成的密钥数据安全性较低且密钥数据不方便记忆的技术问题。
根据本发明实施例的一个方面,提供了一种生成密钥的方法,包括:依据预先确定的目标助记词生成区块链账户系统的目标数据;基于上述目标数据生成私钥数据;基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据;依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
进一步地,在基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据之后,上述方法还包括:确定与上述公钥数据对应的哈希值;获取预定位数的上述哈希值;通过对上述预定位数的哈希值进行逆序处理,得到上述目标账户地址的账户地址信息。
进一步地,在依据预先确定的目标助记词生成区块链账户系统的目标数据之前,上述方法还包括:获取随机数和检测码,其中,上述随机数的长度和上述检测码的长度之间存在对应关系;依据随机数和检测码生成上述目标助记词。
进一步地,基于上述目标数据生成私钥数据,包括:基于上述目标数据确定预定字长的目标子数据,其中,上述预定字长包括以下至少之一:128位、512位、1024位;基于上述目标子数据生成上述私钥数据。
进一步地,基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据,包括:确定SM2椭圆曲线公钥密码算法的上述目标椭圆曲线,以及上述目标椭圆曲线中的基点;将上述私钥数据与上述基点进行乘法运算生成上述公钥数据。
根据本发明实施例的另一方面,还提供了一种生成密钥的方法,包括:依据预先确定的目标助记词生成区块链账户系统的目标数据;基于上述目标数据生成私钥数据;基于上述私钥数据确定公钥数据;依据上述私钥数据和上述公钥数据生成上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
根据本发明实施例的另一方面,还提供了一种生成密钥的装置,包括:第一生成模块,用于依据预先确定的目标助记词生成区块链账户系统的目标数据;第二生成模块,用于基于上述目标数据生成私钥数据;第三生成模块,用于基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据;第四生成模块,用于依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
根据本发明实施例的另一方面,还提供了一种生成密钥的装置,包括:第一生成单元,用于依据预先确定的目标助记词生成区块链账户系统的目标数据;第二生成单元,用于基于上述目标数据生成私钥数据;确定单元,用于基于上述私钥数据确定公钥数据;第三生成单元,用于依据上述私钥数据和上述公钥数据生成上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
根据本发明实施例的另一方面,还提供了一种存储介质,上述存储介质包括存储的程序,其中,在上述程序运行时控制上述存储介质所在设备执行任意一项上述的生成密钥的方法。
根据本发明实施例的另一方面,还提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行任意一项上述的生成密钥的方法。
在本发明实施例中,通过依据预先确定的目标助记词生成区块链账户系统的目标数据;基于上述目标数据生成私钥数据;基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据;依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理,达到了提高密钥数据的信息安全性的目的,从而实现了密钥数据方便记忆的技术效果,进而解决了现有技术中生成的密钥数据安全性较低且密钥数据不方便记忆的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种生成密钥的方法的流程图;
图2是根据本发明实施例的另一种生成密钥的方法的流程图;
图3是根据本发明实施例的一种生成密钥的装置的结构示意图;以及
图4是根据本发明实施例的另一种生成密钥的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,为方便理解本发明实施例,下面将对本发明中所涉及的部分术语或名词进行解释说明:
BIP39助记词:即一组方便记忆的单词,在区块链行业,可以使用助记词帮助管理账户信息,个人不需要为区块链上的每一笔交易生成专有地址,仅需要记住助记词便可保证拥有对所有地址的操作权,助记词相当于是区块链系统中的个人身份证。
实施例1
根据本发明实施例,提供了一种生成密钥的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种生成密钥的方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,依据预先确定的目标助记词生成区块链账户系统的目标数据;
步骤S104,基于上述目标数据生成私钥数据;
步骤S106,基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据;
步骤S108,依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
可选的,上述目标助记词可以但不限于为BIP39助记词,即一组方便记忆的单词;需要说明的是,在区块链行业,可以使用助记词帮助管理账户信息,个人不需要为区块链上的每一笔交易生成专有地址,仅需要记住助记词便可保证拥有对所有地址的操作权,助记词相当于是区块链系统中的个人身份证。
可选的,上述目标数据可以为种子,例如,512位的随机数种子;依据预先确定的目标助记词(12~24位的单词序列)通过PBKDF2(应用一个伪随机数以导出函数)与HMAC-SHA512函数创建出随机种子作为上述目标数据。
需要说明的是,上述种子即一个随机数,常见的是采用当前时间作为种子。C语言等大多数编程语言的随机数是伪随机数,如果不设置种子,那么每次启动程序获得的rand()序列是相同的;通过设置一个随机数种子可以改变这种情况。
可选的,上述目标椭圆曲线可以但不限于为SM2椭圆曲线公钥密码算法推荐曲线参数;上述基点即为SM2椭圆曲线公钥密码算法推荐曲线参数中的一个基点(G点),其阶为素数。
可选的,上述目标密钥数据可以但不限于为依据上述私钥数据和上述公钥数据组成的密钥对数据,例如,SM2密钥对数据;上述公钥数据和私钥数据可以理解为相当于目标椭圆曲线坐标上的两个点,将上述私钥数据和上述公钥数据组合得到密钥对数据。
在本申请实施例中,上述BIP39助记词即可以理解为12至24个单词组成的密码,可以基于上述BIP39助记词生成区块链账户系统的512位的种子,而种子可以生成私钥数据,由私钥数据可以导出公钥数据,公钥数据和私钥数据可以确定目标密钥数据。基于上述可选的步骤,采用BIP39助记词生成种子,进而生成SM2密钥对数据,BIP39助记词所构造的系统会自动推演生成用于交易的地址,而仅需要记住助记词便可保证拥有对所有地址的操作权,可以有效解决SM2密钥对应用于区块链账户系统不方便记忆的问题。
在本发明实施例中,通过依据预先确定的目标助记词生成区块链账户系统的目标数据;基于上述目标数据生成私钥数据;基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据;依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理,达到了提高密钥数据的信息安全性的目的,从而实现了密钥数据方便记忆的技术效果,进而解决了现有技术中生成的密钥数据安全性较低且密钥数据不方便记忆的技术问题。
在一种可选的实施例中,在基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据之后,上述方法还包括:
步骤S202,确定与上述公钥数据对应的哈希值;
步骤S204,获取预定位数的上述哈希值;
步骤S206,通过对上述预定位数的哈希值进行逆序处理,得到上述目标账户地址的账户地址信息。
可选的,上述预定位数可以但不限于为哈希值的前8位,需要说明的是,在本申请实施例中,上述预定位数还可以为前4位,前16位等,对于上述预定位数本申请实施例并不具体限定,以可以实现本申请实施例为准。
以上述预定位数为上述哈希值的前8位为例,通过对上述哈希值的前8位数值进行逆序处理(即顺序颠倒),得到上述目标账户地址的账户地址信息。
在一种可选的实施例中,在依据预先确定的目标助记词生成区块链账户系统的目标数据之前,上述方法还包括:
步骤S302,获取随机数和检测码,其中,上述随机数的长度和上述检测码的长度之间存在对应关系;
步骤S304,依据随机数和检测码生成上述目标助记词。
在上述可选的实施例中,由于目标助记词来源于随机数,它由二进制数1010组成,分别有128,160,192,224,256位的生成方式;可以预先生成随机数,一般由电脑按真随机算法生成,其中,256位长度的随机数比128长度的随机数更安全,相应生成的目标助记词也由12个变成24个。
其中,上述随机数的长度决定检测码的长度,例如,128位的随机数除以固定值32,可得128随机数生成的助记词的检测码是4位;上述检测码生成方式hash=sha256(随机数)。
在上述可选的实施例中,通过将随机数转换成十六进制形式,再转换成二进制;取检测码结果二进制形式数的前四位添加到种子数后面得到132位数;之后将132位结果按照每11个一段,每段11位二进制数转换成十进制数,得到12段十进制的数;由于BIP39文档从1开始,而十六进制数从0开始,所以将上述结果每段做加法加1;得到最终映射的目标助记词。
在一种可选的实施例中,基于上述目标数据生成私钥数据,包括:
步骤S402,基于上述目标数据确定预定字长的目标子数据,其中,上述预定字长包括以下至少之一:128位、512位、1024位;
步骤S404,基于上述目标子数据生成上述私钥数据。
需要说明的是,由于在各种加密解密的算法中为了达到一定的安全强度,均要求在128位、512位或者是1024位这样的字长下进行加减乘除模逆等各种数学运算,也称为大数运算。
可选的,上述预定字长的目标子数据可以为128-1024位的大数,在上述可选的实施例中,可以基于种子这个随机数通过程序随机生成一个128-1024位的大数,并由上述大数生成上述私钥数据。
在一种可选的实施例中,基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据,包括:
步骤S502,确定SM2椭圆曲线公钥密码算法的上述目标椭圆曲线,以及上述目标椭圆曲线中的基点;
步骤S504,将上述私钥数据与上述基点进行乘法运算生成上述公钥数据。
可选的,上述目标椭圆曲线可以但不限于为SM2椭圆曲线公钥密码算法推荐曲线参数;上述基点即为SM2椭圆曲线公钥密码算法推荐曲线参数中的一个基点(G点),其阶为素数。
在上述可选的实施例中,在确定目标椭圆曲线中的基点之后,可以将上述私钥数据与上述基点进行乘法运算生成上述公钥数据。
实施例2
根据本发明实施例,提供了另一种生成密钥的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的另一种生成密钥的方法的流程图,如图2所示,该方法包括如下步骤:
步骤S602,依据预先确定的目标助记词生成区块链账户系统的目标数据;
步骤S604,基于上述目标数据生成私钥数据;
步骤S606,基于上述私钥数据确定公钥数据;
步骤S608,依据上述私钥数据和上述公钥数据生成上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
可选的,上述目标助记词可以但不限于为BIP39助记词,即一组方便记忆的单词;需要说明的是,在区块链行业,可以使用助记词帮助管理账户信息,个人不需要为区块链上的每一笔交易生成专有地址,仅需要记住助记词便可保证拥有对所有地址的操作权,助记词相当于是区块链系统中的个人身份证。
可选的,上述目标数据可以为种子,例如,512位的随机数种子;依据预先确定的目标助记词(12~24位的单词序列)通过PBKDF2(应用一个伪随机数以导出函数)与HMAC-SHA512函数创建出随机种子作为上述目标数据。
需要说明的是,上述种子即一个随机数,常见的是采用当前时间作为种子。C语言等大多数编程语言的随机数是伪随机数,如果不设置种子,那么每次启动程序获得的rand()序列是相同的;通过设置一个随机数种子可以改变这种情况。
在本申请实施例中,基于上述私钥数据确定公钥数据可以但不限于通过以下方式实现:基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据。
可选的,上述目标椭圆曲线可以但不限于为SM2椭圆曲线公钥密码算法推荐曲线参数;上述基点即为SM2椭圆曲线公钥密码算法推荐曲线参数中的一个基点(G点),其阶为素数。
可选的,上述目标密钥数据可以但不限于为依据上述私钥数据和上述公钥数据组成的密钥对数据,例如,SM2密钥对数据;上述公钥数据和私钥数据可以理解为相当于目标椭圆曲线坐标上的两个点,将上述私钥数据和上述公钥数据组合得到密钥对数据。
在本申请实施例中,上述BIP39助记词即可以理解为12至24个单词组成的密码,可以基于上述BIP39助记词生成区块链账户系统的512位的种子,而种子可以生成私钥数据,由私钥数据可以导出公钥数据,公钥数据和私钥数据可以确定目标密钥数据。基于上述可选的步骤,采用BIP39助记词生成种子,进而生成SM2密钥对数据,BIP39助记词所构造的系统会自动推演生成用于交易的地址,而仅需要记住助记词便可保证拥有对所有地址的操作权,可以有效解决SM2密钥对应用于区块链账户系统不方便记忆的问题。
在本发明实施例中,通过依据预先确定的目标助记词生成区块链账户系统的目标数据;基于上述目标数据生成私钥数据;基于上述私钥数据确定公钥数据;依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理,达到了提高密钥数据的信息安全性的目的,从而实现了密钥数据方便记忆的技术效果,进而解决了现有技术中生成的密钥数据安全性较低且密钥数据不方便记忆的技术问题。
此外,仍需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
实施例3
根据本发明实施例,还提供了一种用于实施上述生成密钥的方法的装置实施例,图3是根据本发明实施例的一种生成密钥的装置的结构示意图,如图3所示,上述生成密钥的装置,包括:第一生成模块30、第二生成模块32、第三生成模块34和第四生成模块36,其中:
第一生成模块30,用于依据预先确定的目标助记词生成区块链账户系统的目标数据;第二生成模块32,用于基于上述目标数据生成私钥数据;第三生成模块34,用于基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据;第四生成模块36,用于依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。
此处需要说明的是,上述第一生成模块30、第二生成模块32、第三生成模块34和第四生成模块36对应于实施例1中的步骤S102至步骤S108,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
根据本发明实施例,还提供了另一种用于实施上述生成密钥的方法的装置实施例,图4是根据本发明实施例的另一种生成密钥的装置的结构示意图,如图4所示,上述生成密钥的装置,包括:第一生成单元40、第二生成单元42、确定单元44和第三生成单元46,其中:
第一生成单元40,用于依据预先确定的目标助记词生成区块链账户系统的目标数据;第二生成单元42,用于基于上述目标数据生成私钥数据;确定单元44,用于基于上述私钥数据确定公钥数据;第三生成单元46,用于依据上述私钥数据和上述公钥数据生成上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。
此处需要说明的是,上述第一生成单元40、第二生成单元42、确定单元44和第三生成单元46对应于实施例2中的步骤S602至步骤S608,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1和2中的相关描述,此处不再赘述。
上述的生成密钥的装置还可以包括处理器和存储器,上述第一生成模块30、第二生成模块32、第三生成模块34和第四生成模块36、第一生成单元40、第二生成单元42、确定单元44和第三生成单元46等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元,上述内核可以设置一个或以上。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本申请实施例,还提供了一种存储介质实施例。可选地,在本实施例中,上述存储介质包括存储的程序,其中,在上述程序运行时控制上述存储介质所在设备执行上述任意一种生成密钥的方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述存储介质包括存储的程序。
可选地,在程序运行时控制存储介质所在设备执行以下功能:依据预先确定的目标助记词生成区块链账户系统的目标数据;基于上述目标数据生成私钥数据;基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据;依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
可选地,在程序运行时控制存储介质所在设备执行以下功能:确定与上述公钥数据对应的哈希值;获取预定位数的上述哈希值;通过对上述预定位数的哈希值进行逆序处理,得到上述目标账户地址的账户地址信息。
可选地,在程序运行时控制存储介质所在设备执行以下功能:获取随机数和检测码,其中,上述随机数的长度和上述检测码的长度之间存在对应关系;依据随机数和检测码生成上述目标助记词。
可选地,在程序运行时控制存储介质所在设备执行以下功能:基于上述目标数据确定预定字长的目标子数据,其中,上述预定字长包括以下至少之一:128位、512位、1024位;基于上述目标子数据生成上述私钥数据。
可选地,在程序运行时控制存储介质所在设备执行以下功能:确定SM2椭圆曲线公钥密码算法的上述目标椭圆曲线,以及上述目标椭圆曲线中的基点;将上述私钥数据与上述基点进行乘法运算生成上述公钥数据。
根据本申请实施例,还提供了一种处理器实施例。可选地,在本实施例中,上述处理器用于运行程序,其中,上述程序运行时执行上述任意一种生成密钥的方法。
本申请实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:依据预先确定的目标助记词生成区块链账户系统的目标数据;基于上述目标数据生成私钥数据;基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据;依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
可选地,上述处理器执行程序时,还可以确定与上述公钥数据对应的哈希值;获取预定位数的上述哈希值;通过对上述预定位数的哈希值进行逆序处理,得到上述目标账户地址的账户地址信息。
可选地,上述处理器执行程序时,还可以获取随机数和检测码,其中,上述随机数的长度和上述检测码的长度之间存在对应关系;依据随机数和检测码生成上述目标助记词。
可选地,上述处理器执行程序时,还可以基于上述目标数据确定预定字长的目标子数据,其中,上述预定字长包括以下至少之一:128位、512位、1024位;基于上述目标子数据生成上述私钥数据。
可选地,上述处理器执行程序时,还可以确定SM2椭圆曲线公钥密码算法的上述目标椭圆曲线,以及上述目标椭圆曲线中的基点;将上述私钥数据与上述基点进行乘法运算生成上述公钥数据。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:依据预先确定的目标助记词生成区块链账户系统的目标数据;基于上述目标数据生成私钥数据;基于上述私钥数据和目标椭圆曲线中的基点生成公钥数据;依据上述私钥数据和上述公钥数据确定上述区块链账户系统的目标密钥数据,其中,上述目标密钥数据用于对上述区块链账户系统中的目标账户地址进行加解密处理。
可选地,上述计算机程序产品执行程序时,还可以确定与上述公钥数据对应的哈希值;获取预定位数的上述哈希值;通过对上述预定位数的哈希值进行逆序处理,得到上述目标账户地址的账户地址信息。
可选地,上述计算机程序产品执行程序时,还可以获取随机数和检测码,其中,上述随机数的长度和上述检测码的长度之间存在对应关系;依据随机数和检测码生成上述目标助记词。
可选地,上述计算机程序产品执行程序时,还可以基于上述目标数据确定预定字长的目标子数据,其中,上述预定字长包括以下至少之一:128位、512位、1024位;基于上述目标子数据生成上述私钥数据。
可选地,上述计算机程序产品执行程序时,还可以确定SM2椭圆曲线公钥密码算法的上述目标椭圆曲线,以及上述目标椭圆曲线中的基点;将上述私钥数据与上述基点进行乘法运算生成上述公钥数据。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种生成密钥的方法,其特征在于,包括:
依据预先确定的目标助记词生成区块链账户系统的目标数据;
基于所述目标数据生成私钥数据;
基于所述私钥数据和目标椭圆曲线中的基点生成公钥数据;
依据所述私钥数据和所述公钥数据确定所述区块链账户系统的目标密钥数据,其中,所述目标密钥数据用于对所述区块链账户系统中的目标账户地址进行加解密处理。
2.根据权利要求1所述的方法,其特征在于,在基于所述私钥数据和目标椭圆曲线中的基点生成公钥数据之后,所述方法还包括:
确定与所述公钥数据对应的哈希值;
获取预定位数的所述哈希值;
通过对所述预定位数的哈希值进行逆序处理,得到所述目标账户地址的账户地址信息。
3.根据权利要求1所述的方法,其特征在于,在依据预先确定的目标助记词生成区块链账户系统的目标数据之前,所述方法还包括:
获取随机数和检测码,其中,所述随机数的长度和所述检测码的长度之间存在对应关系;
依据随机数和检测码生成所述目标助记词。
4.根据权利要求1所述的方法,其特征在于,基于所述目标数据生成私钥数据,包括:
基于所述目标数据确定预定字长的目标子数据,其中,所述预定字长包括以下至少之一:128位、512位、1024位;
基于所述目标子数据生成所述私钥数据。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,基于所述私钥数据和目标椭圆曲线中的基点生成公钥数据,包括:
确定SM2椭圆曲线公钥密码算法的所述目标椭圆曲线,以及所述目标椭圆曲线中的基点;
将所述私钥数据与所述基点进行乘法运算生成所述公钥数据。
6.一种生成密钥的方法,其特征在于,包括:
依据预先确定的目标助记词生成区块链账户系统的目标数据;
基于所述目标数据生成私钥数据;
基于所述私钥数据确定公钥数据;
依据所述私钥数据和所述公钥数据生成所述区块链账户系统的目标密钥数据,其中,所述目标密钥数据用于对所述区块链账户系统中的目标账户地址进行加解密处理。
7.一种生成密钥的装置,其特征在于,包括:
第一生成模块,用于依据预先确定的目标助记词生成区块链账户系统的目标数据;
第二生成模块,用于基于所述目标数据生成私钥数据;
第三生成模块,用于基于所述私钥数据和目标椭圆曲线中的基点生成公钥数据;
第四生成模块,用于依据所述私钥数据和所述公钥数据确定所述区块链账户系统的目标密钥数据,其中,所述目标密钥数据用于对所述区块链账户系统中的目标账户地址进行加解密处理。
8.一种生成密钥的装置,其特征在于,包括:
第一生成单元,用于依据预先确定的目标助记词生成区块链账户系统的目标数据;
第二生成单元,用于基于所述目标数据生成私钥数据;
确定单元,用于基于所述私钥数据确定公钥数据;
第三生成单元,用于依据所述私钥数据和所述公钥数据生成所述区块链账户系统的目标密钥数据,其中,所述目标密钥数据用于对所述区块链账户系统中的目标账户地址进行加解密处理。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至6中任意一项所述的生成密钥的方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的生成密钥的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910082426.9A CN109873701A (zh) | 2019-01-28 | 2019-01-28 | 生成密钥的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910082426.9A CN109873701A (zh) | 2019-01-28 | 2019-01-28 | 生成密钥的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109873701A true CN109873701A (zh) | 2019-06-11 |
Family
ID=66918133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910082426.9A Pending CN109873701A (zh) | 2019-01-28 | 2019-01-28 | 生成密钥的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109873701A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114022260A (zh) * | 2021-11-11 | 2022-02-08 | 陕西华春网络科技股份有限公司 | 基于秘钥指定的招标方法、装置、计算机设备和存储器 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017145048A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Cryptographic method and system for secure extraction of data from a blockchain |
US20180189753A1 (en) * | 2017-01-05 | 2018-07-05 | Beskatta, LLC | Infrastructure for obligation management and validation |
CN108768631A (zh) * | 2018-05-28 | 2018-11-06 | 夸克链科技(深圳)有限公司 | 一种区块链私钥恢复助记词体系设计 |
CN108881430A (zh) * | 2018-06-14 | 2018-11-23 | 平安科技(深圳)有限公司 | 会话保持方法、装置、计算机设备及存储介质 |
CN109039652A (zh) * | 2018-08-22 | 2018-12-18 | 爱刷(北京)科技股份有限公司 | 一种数字通证的生成及应用方法 |
CN109034832A (zh) * | 2018-06-13 | 2018-12-18 | 湖南搜云网络科技股份有限公司 | 区块链的信息处理方法及装置、信息处理节点及存储介质 |
CN109039639A (zh) * | 2018-08-01 | 2018-12-18 | 国网江苏招标有限公司 | 基于分层确定性密码学技术的投标方法 |
CN109146468A (zh) * | 2018-08-22 | 2019-01-04 | 爱刷(北京)科技股份有限公司 | 一种数字通证的备份与恢复方法 |
-
2019
- 2019-01-28 CN CN201910082426.9A patent/CN109873701A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017145048A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Cryptographic method and system for secure extraction of data from a blockchain |
US20180189753A1 (en) * | 2017-01-05 | 2018-07-05 | Beskatta, LLC | Infrastructure for obligation management and validation |
CN108768631A (zh) * | 2018-05-28 | 2018-11-06 | 夸克链科技(深圳)有限公司 | 一种区块链私钥恢复助记词体系设计 |
CN109034832A (zh) * | 2018-06-13 | 2018-12-18 | 湖南搜云网络科技股份有限公司 | 区块链的信息处理方法及装置、信息处理节点及存储介质 |
CN108881430A (zh) * | 2018-06-14 | 2018-11-23 | 平安科技(深圳)有限公司 | 会话保持方法、装置、计算机设备及存储介质 |
CN109039639A (zh) * | 2018-08-01 | 2018-12-18 | 国网江苏招标有限公司 | 基于分层确定性密码学技术的投标方法 |
CN109039652A (zh) * | 2018-08-22 | 2018-12-18 | 爱刷(北京)科技股份有限公司 | 一种数字通证的生成及应用方法 |
CN109146468A (zh) * | 2018-08-22 | 2019-01-04 | 爱刷(北京)科技股份有限公司 | 一种数字通证的备份与恢复方法 |
Non-Patent Citations (6)
Title |
---|
BATMAN-010: "比特币中的钱包、收款地址、加密钱包、备份钱包 本质到底是什么?", 《新浪博客》 * |
TINY熊: "理解开发HD钱包涉及的BIP32、BIP44、BIP39", 《登链社区》 * |
冯博: "《互联网金融》", 1 April 2018, 经济日报出版社 * |
姚前 著: "《数字货币初探》", 31 May 2018, 中国金融出版社 * |
师的观点和资料: "比特币钱包的加密、备份以及恢复,确保btc安全", 《百度经验》 * |
陈东敏: "《区块链技术原理及底层架构》", 31 May 2017, 北京航空航天大学出版社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114022260A (zh) * | 2021-11-11 | 2022-02-08 | 陕西华春网络科技股份有限公司 | 基于秘钥指定的招标方法、装置、计算机设备和存储器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933995B (zh) | 一种基于云服务及区块链的用户敏感数据保护及系统 | |
EP3424175B1 (en) | Converting a boolean masked value to an arithmetically masked value for cryptographic operations | |
CN107770159B (zh) | 车辆事故数据记录方法及相关装置、可读存储介质 | |
JP5911654B2 (ja) | 乱数生成器及びストリーム暗号 | |
CN110401615B (zh) | 一种身份认证方法、装置、设备、系统及可读存储介质 | |
CN105007157B (zh) | 基于设备生成的密钥来生成和管理多个基密钥 | |
US20160156470A1 (en) | System for sharing a cryptographic key | |
CN110362357A (zh) | 一种应用程序的配置文件管理方法及装置 | |
CN112287377A (zh) | 基于联邦学习的模型训练方法、计算机设备及存储介质 | |
CN112434329A (zh) | 私有数据交集获取方法、计算设备、存储介质 | |
CN112039892B (zh) | 一种数据共享方法以及相关装置 | |
WO2017006118A1 (en) | Secure distributed encryption system and method | |
US10567155B2 (en) | Securing a cryptographic device | |
JP2021507310A (ja) | キー付きメッセージ認証コードのホワイトボックス計算 | |
KR100629495B1 (ko) | 그룹 키 생성방법 | |
CN110210591A (zh) | 一种智能ic卡个人化数据的写入方法、计算机装置及计算机可读存储介质 | |
CN114417364A (zh) | 一种数据加密方法、联邦建模方法、装置及计算机设备 | |
CN105306200B (zh) | 网络账号密码的加密方法和装置 | |
CN113824553A (zh) | 密钥管理方法、装置及系统 | |
CN109873701A (zh) | 生成密钥的方法及装置 | |
CN111310817B (zh) | 谱聚类方法、装置、系统、计算机设备和存储介质 | |
CN112328639A (zh) | 数据查询方法、装置、系统以及数据集处理方法 | |
RU2710670C2 (ru) | Криптографическая система и способ | |
US10333699B1 (en) | Generating a pseudorandom number based on a portion of shares used in a cryptographic operation | |
CN107852324A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190611 |
|
RJ01 | Rejection of invention patent application after publication |