CN110289946A - 一种区块链钱包本地化文件的生成方法及区块链节点设备 - Google Patents
一种区块链钱包本地化文件的生成方法及区块链节点设备 Download PDFInfo
- Publication number
- CN110289946A CN110289946A CN201910633225.3A CN201910633225A CN110289946A CN 110289946 A CN110289946 A CN 110289946A CN 201910633225 A CN201910633225 A CN 201910633225A CN 110289946 A CN110289946 A CN 110289946A
- Authority
- CN
- China
- Prior art keywords
- private key
- key
- keystore
- mentioned
- block chain
- 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.)
- Granted
Links
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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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
Abstract
一种区块链钱包本地化文件的生成方法及区块链节点设备。该方法包括:将用户交易密码和随机值做密钥扩展处理,生成临时密钥;将上述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文;基于上述临时密钥的第二部分、上述私钥密文、keystore的文件名得到消息认证码;将上述随机值、上述私钥密文、上述消息认证码拼接写入上述keystore。实施本申请,可以优化keystore生成存储流程,大大减少了文件中的冗余信息,解决了keystore文件占用空间大的问题。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链钱包本地化文件的生成方法及区块链节点设备。
背景技术
随着区块链技术的发展,针对虚拟货币的区块链钱包应运而生。而区块链钱包的本地化文件keystore得到了越来越广泛的应用。
现有的区块链系统中,单个keystore文件大小为491字节,占用大量存储空间。对于交易所等拥有大量区块链钱包的场景,存在过多的冗余信息,造成大量的存储空间浪费。
本申请提出一种新的keystore生成存储方案,优化keystore生成,存储流程,解决keystore文件占用空间大的问题。
发明内容
本申请提出一种区块链钱包本地化文件的生成方法及区块链节点设备,可以优化keystore生成存储流程,并采用TV格式(标签:数值)二进制存储数据,大大减少了文件中的冗余信息,解决了keystore文件占用空间大的问题。通过区块链钱包地址拼接世界标准时间作为文件名,可以在毫秒级控制区块链钱包的唯一性。通过对文件名和文件内容中的私钥密文作摘要,保证了文件名和文件内容的一致性,避免被非法篡改。
第一方面,本申请提出一种区块链钱包本地化文件的生成方法,所述方法包括:
将用户交易密码和随机值做密钥扩展处理,生成临时密钥;
将所述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文;
基于所述临时密钥的第二部分、所述私钥密文、keystore的文件名得到消息认证码;
将所述随机值、所述私钥密文、所述消息认证码拼接写入所述keystore。
在一种可能的实现方式中,所述将用户交易密码和随机值做密钥扩展处理之前,所述方法还包括:
生成随机种子;
根据所述随机种子生成私钥和区块链钱包地址。
在一种可能的实现方式中,所述将所述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文,所述方法包括:
截取所述临时密钥的第一部分作为密钥,将所述随机值作为加密参数;
利用所述密钥与所述加密参数对所述私钥进行加密,获得私钥密文。
在一种可能的实现方式中,所述基于所述临时密钥的第二部分、所述私钥密文、所述keystore的文件名得到消息认证码之前,所述方法还包括:
将所述keystore的生成时间与所述区块链钱包地址拼接后作为所述keystore的文件名。
在一种可能的实现方式中,所述基于所述临时密钥的第二部分、所述私钥密文、所述keystore的文件名得到消息认证码,所述方法包括:
将所述临时密钥的第二部分、所述私钥密文、所述keystore的文件名进行拼接并加密运算,获得结果;
截取所述结果的目标部分作为消息认证码。
在一种可能的实现方式中,所述将所述随机值、所述私钥密文、所述消息认证码拼接写入所述keystore,所述方法包括:
将所述随机值、所述私钥密文、所述消息认证码进行拼接,获得拼接结果;
对所述拼接结果添加标签,并以二进制方式写入所述keystore。
第二方面,本申请提出一种区块链节点设备,所述设备包括:
扩展单元,用于将用户交易密码和随机值做密钥扩展处理,生成临时密钥;
加密单元,用于将所述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文;
第一拼接单元,用于基于所述临时密钥的第二部分、所述私钥密文、所述keystore的文件名得到消息认证码;
第二拼接单元,用于将所述随机值、所述私钥密文、所述消息认证码拼接写入所述keystore。
在一种可能的实现方式中,所述设备还包括:
第一生成单元,用于生成随机种子;
第二生成单元,用于根据所述随机种子生成私钥和区块链钱包地址。
在一种可能的实现方式中,所述加密单元,具体用于截取所述临时密钥的第一部分作为密钥,将所述随机值作为加密参数;利用所述密钥与所述加密参数对所述私钥进行加密,获得私钥密文。
在一种可能的实现方式中,所述设备还包括:
第三拼接单元,用于将所述keystore的生成时间与所述区块链钱包地址拼接后作为所述keystore的文件名。
在一种可能的实现方式中,所述第一拼接单元,具体用于将所述临时密钥的第二部分、所述私钥密文、所述keystore的文件名进行拼接并加密运算,获得结果;截取所述结果的目标部分作为消息认证码。
在一种可能的实现方式中,所述第二拼接单元,具体用于将所述随机值、所述私钥密文、所述消息认证码进行拼接,获得拼接结果;对所述拼接结果添加标签,并以二进制方式写入所述keystore。
第三方面,本申请提出一种区块链节点设备,包括:处理器、存储器和收发器;其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面所提出的方法。
第四方面,本申请提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行所述第一方面所提出的方法。
第五方面,本申请实施例提供了一种包含程序指令的计算机程序产品,当其在计算机上运行时,使得计算机执行所述第一方面所提出的方法。
实施本申请,可以优化keystore生成存储流程,并采用TV格式(标签:数值)二进制存储数据,大大减少了文件中的冗余信息,解决了keystore文件占用空间大的问题。通过区块链钱包地址拼接世界标准时间作为文件名,可以在毫秒级控制区块链钱包的唯一性。通过对文件名和文件内容中的私钥密文作摘要,保证了文件名和文件内容的一致性,避免被非法篡改。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请提出的一种区块链钱包本地化文件的生成方法的流程图;
图2是本申请提出的另一种区块链钱包本地化文件的生成方法的流程图;
图3是本申请提出的一种区块链钱包本地化文件的生成方法的具体应用场景的流程图;
图4是本申请提出的另一种区块链钱包本地化文件的生成方法的具体应用场景的流程图;
图5是本申请提出的一种区块链节点设备的结构示意图;
图6是本申请提出的另一种区块链节点设备的结构示意图。
具体实施方式
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法或设备固有的其他步骤或单元。
现有的区块链系统中,单个keystore文件大小为491字节,占用大量存储空间。对于交易所等拥有大量区块链钱包的场景,存在过多的冗余信息,造成大量的存储空间浪费。
本申请,可以优化keystore生成存储流程,并采用TV格式(标签:数值)二进制存储数据,大大减少了文件中的冗余信息,解决了keystore文件占用空间大的问题。
图1是本申请提出的一种区块链钱包本地化文件的生成方法的流程图,应用于区块链节点设备,上述方法包括以下内容:
101、将用户交易密码和随机值做密钥扩展处理,生成临时密钥。
具体的,区块链节点设备接收用户发送的用户交易密码,用户交易密码是用户在进行交易时需输入的密码,是确认交易操作是用户本人操作的验证方法。用户交易密码的规则不做具体要求。随机值由区块链节点设备生成,随机值可以为128比特。密钥扩展处理可以采用scrypt算法。
102、将上述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文。
具体的,将上述临时密钥的前半部分作为密钥,上述随机值作为加密参数,对私钥进行加密,获得私钥密文。
103、基于上述临时密钥的第二部分、上述私钥密文、keystore的文件名得到消息认证码。
具体的,上述临时密钥的第二部分为临时密钥的后半部分。将临时密钥的后半部分、私钥密文、keystore的文件名进行拼接,然后进行摘要运算,将运算结果的后4字节作为消息认证码。上述拼接顺序不做限制。消息认证码(message authentication code,MAC),在密码学中是经过特定算法后产生的一小段信息,检查某段消息的完整性,以及作身份验证。它可以用来检查在消息传递过程中,其内容是否被更改过,不管更改的原因是来自意外或是蓄意攻击。同时可以作为消息来源的身份验证,确认消息的来源。上述加密算法可以采用sha3-256摘要算法,摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密。keystore为区块链钱包的本地化文件。
实施该步骤,使用摘要算法可以避免文件内容被非法篡改。
104、将上述随机值、上述私钥密文、上述消息认证码拼接写入上述keystore。
具体的,区块链节点设备将随机值、私钥密文、消息认证码拼接在一起,加上tag标签,以二进制的方式写入keystore文件。上述拼接顺序不做限制,优先按照上述所列顺序进行拼接。tag标签以字母R代表随机值,即字母R以后到下一个标签之前的数据为随机值;以字母C代表私钥密文,即字母C以后到下一个标签之前的数据为私钥密文;以字母M代表消息认证码,即字母M以后为消息认证码。tag标签有利于快速分辨不同含义的数据。
现有区块链系统中,单个keystore文件大小为491字节。通过以上步骤生成的keystore,文件大小为55字节。
实施本申请实施例,可以优化keystore生成存储流程,并采用TV格式(标签:数值)二进制存储数据,大大减少了文件中的冗余信息,解决了keystore文件占用空间大的问题。
图2是本申请提出的另一种区块链钱包本地化文件的生成方法的流程图,应用于区块链节点设备,上述方法包括以下内容:
201、生成随机种子。
随机种子是一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。一般计算机的随机数都是伪随机数,随机种子是以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。
202、根据上述随机种子生成私钥和区块链钱包地址。
具体的,私钥由随机种子通过算法运算后得到,过程如下:将随机种子通过SHA算法转化成256位的二进制数字,再验证选择的随机种子是否处于1到n-1之间(其中n是一个常数,略小于2^256),如果运算结果小于n-1,则随机种子合适,否则需要重新选取随机种子,直至所选取的随机种子满足验证条件为止。不同的区块链钱包选取的随机种子位数可能不一样。
私钥经过SECP256K1算法处理生成了公钥。SECP256K1是一种椭圆曲线算法,通过一个已知私钥时可以算出公钥,而公钥已知时却无法反向计算出私钥。上述公钥经过sha3-256算法处理后,截取后20字节作为区块链钱包地址。
203、将用户交易密码和随机值做密钥扩展处理,生成临时密钥。
具体的,用户交易密码是用户在进行交易时需输入的密码,是确认交易操作是用户本人操作的验证方法。用户交易密码的规则不做具体要求。随机值由区块链节点设备生成,随机值可以为128比特。密钥扩展处理可以采用scrypt算法,固定参数为dklen:32,n:262144,p:1,r:8,dklen是输出的哈希值的长度,n是CPU/Memory开销值,r表示块大小,p表示并行度,此处固定参数由系统设置,不做具体要求,但是后续不允许修改。
204、截取上述临时密钥的第一部分作为密钥,将上述随机值作为加密参数。
具体的,为了对上述私钥进行加密,区块链节点设备截取上述临时密钥的前半部分作为密钥,将上述随机值作为加密参数。若结合具体的加密算法,例如AES-128-CTR加密算法,则该加密参数可以为初始化向量(initialisation vector,iv),该iv是AES-128-CTR加密算法需要的初始化向量。初始化向量可以让加密后的密文更难以被攻击者破解,保证了信息的安全性。
205、利用上述密钥与上述加密参数对上述私钥进行加密,获得私钥密文。
具体的,加密算法可以采用AES-128-CTR算法,利用该算法对上述私钥行加密,生成32字节的私钥密文。加密算法的种类可以进行替换,不做限制。根据加密算法的不同,生成的私钥密文的字节数有可能发生变化。
206、将keystore的生成时间与上述区块链钱包地址拼接后作为上述keystore的文件名。
具体的,keystore文件的命名规则为address4-UTCtime,其中UTCtime为当前时间,为了更方便的对时间进行统一管理,一般采用0时区的当前时间,时间可以精确到毫秒级。address为区块链钱包地址。
举例来说,文件名可以如下:
be51108ffa60d68d1ca123bd8eb91f0dc756e45f-2019-03-18T07-33-08.245Z
该步骤,通过区块链钱包地址拼接UTC时间作为文件名,可以在毫秒级控制钱包的唯一性。如果1毫秒内生成多个keystore文件,则可以用时间前面的数字对文件进行区分。
207、将上述临时密钥的第二部分、上述私钥密文、上述keystore的文件名进行拼接并加密运算,获得结果。
具体的,上述临时密钥的第二部分可以是该临时密钥的后半部分。加密算法可以是sha3-256摘要算法。摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密。上述加密算法的种类不做限制,相较于sha3-256摘要算法,Md5算法安全性不足,Sha3-512算法运算速度较慢,所以本技术方案优先选择sha3-256摘要算法。
上述拼接过程的拼接顺序不做限制,为了降低复杂度统一管理,采取如下顺序进行拼接:临时密钥的后半部分、私钥密文、keystore的文件名。
208、截取上述结果的目标部分作为消息认证码。
具体的,区块链节点设备截取上述结果的后4字节作为消息认证码。
209、将上述随机值、上述私钥密文、上述消息认证码值进行拼接,获得拼接结果。
具体的,上述拼接过程的拼接顺序不做限制,为了降低复杂度统一管理,采取如下顺序进行拼接:随机值、私钥密文、消息认证码。
210、对上述拼接结果添加标签,并以二进制方式写入上述keystore。
具体的,将上述拼接结果加上tag标签,以二进制的方式写入keystore文件。上述拼接顺序不做限制,优先按照随机值、私钥密文、消息认证码的顺序进行拼接。
tag标签以字母R代表随机值,即字母R以后到下一个标签之前的数据为随机值;以字母C代表私钥密文,即字母C以后到下一个标签之前的数据为私钥密文;以字母M代表消息认证码,即字母M以后为消息认证码。tag标签有利于快速分辨不同含义的数据。
数据组织格式如下:
R | 随机值RND | C | 私钥密文 | M | MAC值 |
现有区块链系统中,单个keystore文件大小为491字节。通过以上步骤生成的keystore,文件大小为55字节。
实施本申请实施例,可以优化keystore生成存储流程,并采用TV格式(标签:数值)二进制存储数据,大大减少了文件中的冗余信息,解决了keystore文件占用空间大的问题。通过区块链钱包地址拼接世界标准时间作为文件名,可以在毫秒级控制区块链钱包的唯一性。通过对文件名和文件内容中的私钥密文作摘要,保证了文件名和文件内容的一致性,避免被非法篡改。
图3是本申请提出的另一种区块链钱包本地化文件的生成方法的具体应用场景的流程图,应用于区块链节点设备,上述方法包括以下内容:
301、生成随机种子。
举例来说,区块链节点设备生成512比特随机种子。
302、根据上述随机种子生成私钥和区块链钱包地址。
举例来说,区块链节点设备将上述512比特随机种子通过HMAC-SHA256算法运算形成私钥。将上述私钥经SECP256K1算法运算得到公钥。上述公钥经过sha3-256算法处理后,截取后20字节作为区块链钱包地址。
303、将用户交易密码和随机值做密钥扩展处理,生成临时密钥。
举例来说,区块链节点设备将用户交易密码与128比特随机值通过scrypt算法运算生成256比特临时私钥。scrypt算法的固定参数为dklen:32,n:262144,p:1,r:8,dklen是输出的哈希值的长度,n是CPU/Memory开销值,r表示块大小,p表示并行度,此处固定参数后续不允许修改。
304、截取上述临时密钥的第一部分作为密钥,将上述随机值作为加密参数。
举例来说,加密算法可以采用AES-128-CTR加密算法。区块链节点设备截取上述256比特临时密钥的前半部分128比特作为该算法的密钥,将上述128比特随机值作为该算法的加密参数,该加密参数可以为初始化向量iv,该iv是AES-128-CTR加密算法需要的初始化向量。AES-128-CTR加密算法是一种对称加密算法,在对称加密算法中,如果只有一个密钥来加密数据,则明文中的相同数据就会被加密成相同的密文,这样密文与明文就有完全相同的结构,容易被破解。如果加密过程中使用随机数产生的初始化向量,则可以让加密出来的密文结构与明文完全不同,使攻击者难以对密文进行破解。
305、利用上述密钥与上述加密参数对上述私钥进行加密,获得私钥密文。
举例来说,加密算法可以采用AES-128-CTR算法,利用该算法对上述私钥行加密,生成32字节的私钥密文。
306、将keystore的生成时间与上述区块链钱包地址拼接后作为上述keystore的文件名。
举例来说,keystore文件的命名规则为address4-UTCtime,其中UTCtime为0时区的当前时间,时间可以精确到毫秒级。address为区块链钱包地址。
举例来说,文件名可以如下:
be51108ffa60d68d1ca123bd8eb91f0dc756e45f-2019-03-18T07-33-08.245Z
307、将上述临时密钥的第二部分、上述私钥密文、上述keystore的文件名进行拼接并加密运算,获得结果。
举例来说,将上述临时密钥的后半部分128bit,32字节私钥密文,keystore文件名拼接并采用sha3-256摘要算法进行加密运算,获得结果。
308、截取上述结果的目标部分作为消息认证码。
举例来说,区块链节点设备截取上述结果的后4字节作为消息认证码。
309、将上述随机值、上述私钥密文、上述消息认证码进行拼接,获得拼接结果。
举例来说,区块链节点设备将上述随机值、32字节私钥密文、4字节的消息认证码进行拼接,获得拼接结果。
310、对上述拼接结果添加标签,并以二进制方式写入上述keystore。
举例来说,将拼接结果添加tag标签,并以二进制方式写入上述keystore。
tag标签以字母R代表随机值,即字母R以后到下一个标签之前的数据为随机值;以字母C代表私钥密文,即字母C以后到下一个标签之前的数据为私钥密文;以字母M代表消息认证码Mac,即字母M以后为消息认证码。tag标签有利于快速分辨不同含义的数据。
数据组织格式如下:
R | 随机值RND | C | 私钥密文 | M | MAC |
现有区块链系统中,单个keystore文件大小为491字节。通过以上步骤生成的keystore,文件大小为55字节。
为了更好地理解keystore生成方案,还可以参考图4所示的流程图。
针对新的keystore生成存储方案,可以采用如下区块链钱包使用方法:接收用户输入的交易密码;读取keystore文件内容,其中R标签后16字节作为随机值RND,C标签后32字节为私钥密文,M标签后4字节为消息认证码;按照钱包生成流程中的介绍,对用户交易密码作密钥扩展处理生成临时密钥,结合私钥密文和文件名字符串生成新的消息认证码,比较与keystore生成过程中的消息认证码是否一致,若一致则进行后续步骤,若不一致则表示用户输入的交易密码不正确或文件被非法修改,流程结束;对私钥密文作AES-128-CTR解密运算(若keystore生成时采用了其他类型加密算法,则钱包使用时的解密算法也做对应调整),临时密钥前半部分为密钥,随机值RND作为iv值,得到用户私钥;使用用户私钥进行后续的钱包签名等操作。
实施本申请实施例,可以优化keystore生成存储流程,并采用TV格式(标签:数值)二进制存储数据,大大减少了文件中的冗余信息,解决了keystore文件占用空间大的问题。通过区块链钱包地址拼接世界标准时间作为文件名,可以在毫秒级控制区块链钱包的唯一性。通过对文件名和文件内容中的私钥密文作摘要,保证了文件名和文件内容的一致性,避免被非法篡改。
图5是本申请提出的一种区块链节点设备的结构示意图,上述设备包括:
扩展单元501,用于将用户交易密码和随机值做密钥扩展处理,生成临时密钥;
加密单元502,用于将上述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文;
第一拼接单元503,用于基于上述临时密钥的第二部分、上述私钥密文、上述keystore的文件名得到消息认证码;
第二拼接单元504,用于将上述随机值、上述私钥密文、上述消息认证码拼接写入上述keystore。
如图5所示,上述设备还包括:
第一生成单元505,用于生成随机种子;
第二生成单元506,用于根据上述随机种子生成私钥和区块链钱包地址。
进一步的,上述加密单元502,具体用于截取上述临时密钥的第一部分作为密钥,将上述随机值作为加密参数;利用上述密钥与上述加密参数对上述私钥进行加密,获得私钥密文。
进一步的,上述设备还包括:
第三拼接单元507,用于将上述keystore的生成时间与上述区块链钱包地址拼接后作为上述keystore的文件名。
进一步的,上述第一拼接单元503,具体用于将上述临时密钥的第二部分、上述私钥密文、上述keystore的文件名进行拼接并加密运算,获得结果;截取上述结果的目标部分作为消息认证码。
进一步的,上述第二拼接单元504,具体用于将上述随机值、上述私钥密文、上述消息认证码进行拼接,获得拼接结果;对上述拼接结果添加标签,并以二进制方式写入上述keystore。
可理解,图5所示的区块链节点设备的具体实现方式还可参考图1、图2、图3和图4所示的方法,这里不再一一详述。
在本申请实施例中,扩展单元501将用户交易密码和随机值做密钥扩展处理,生成临时密钥;加密单元502将上述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文;第一拼接单元503基于上述临时密钥的第二部分、上述私钥密文、上述keystore的文件名得到消息认证码;第二拼接单元504将上述随机值、上述私钥密文、上述消息认证码拼接写入上述keystore。可见,本申请实施例可以优化keystore生成存储流程,并采用TV格式(标签:数值)二进制存储数据,大大减少了文件中的冗余信息,解决了keystore文件占用空间大的问题。
请参阅图6,图6是本申请实施例提供的一种区块链节点设备的结构示意图,该设备包括:至少一个处理器601,例如中央处理器(central processing unit,CPU),至少一个存储器602,至少一个收发器603和至少一个总线604。其中,上述总线604可以是一组并行的数据线,用于实现上述处理器601、上述存储器602和上述收发器603的相互连接;上述存储器602可以是高速随机存取存储器(random access memory,RAM),也可以是非易失性存储器(non-volatile memory),例如至少一个只读存储器(read only memory,ROM)。
具体的,上述处理器601将用户交易密码和随机值做密钥扩展处理,生成临时密钥;上述处理器601将上述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文;上述处理器601基于上述临时密钥的第二部分、上述私钥密文、上述keystore的文件名得到消息认证码;上述处理器601将上述随机值、上述私钥密文、上述消息认证码拼接写入上述keystore。
进一步的,上述处理器601生成随机种子;上述处理器601根据上述随机种子生成私钥和区块链钱包地址。
进一步的,上述处理器601截取上述临时密钥的第一部分作为密钥,将上述随机值作为加密参数;上述处理器601利用上述密钥与上述加密参数对上述私钥进行加密,获得私钥密文。
进一步的,上述处理器601将上述keystore的生成时间与上述区块链钱包地址拼接后作为上述keystore的文件名。
进一步的,上述处理器601将上述临时密钥的第二部分、上述私钥密文、上述keystore的文件名进行拼接并加密运算,获得结果;上述处理器601截取上述结果的目标部分作为消息认证码。
进一步的,上述处理器601将上述随机值、上述私钥密文、上述消息认证码进行拼接,获得拼接结果;上述处理器601对上述拼接结果添加标签,并以二进制方式写入上述keystore。
具体的,上述存储器602中可以存储程序指令,上述处理器601可用于调用程序指令执行图1、图2、图3和图4所示的方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质包括只读存储器(read only memory,ROM)、随机存储器(random access memory,RAM)、可编程只读存储器(programmable read only memory,PROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)、一次可编程只读存储器(one-timeprogrammable read-only memory,OTPROM)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本申请实施例公开的一种区块链钱包本地化文件的生成方法及区块链节点设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种区块链钱包本地化文件的生成方法,其特征在于,所述方法包括:
将用户交易密码和随机值做密钥扩展处理,生成临时密钥;
将所述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文;
基于所述临时密钥的第二部分、所述私钥密文、keystore的文件名得到消息认证码;
将所述随机值、所述私钥密文、所述消息认证码拼接写入所述keystore。
2.根据权利要求1所述的方法,其特征在于,所述将用户交易密码和随机值做密钥扩展处理之前,还包括:
生成随机种子;
根据所述随机种子生成私钥和区块链钱包地址。
3.根据权利要求2所述的方法,其特征在于,所述将所述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文,包括:
截取所述临时密钥的第一部分作为密钥,将所述随机值作为加密参数;
利用所述密钥与所述加密参数对所述私钥进行加密,获得私钥密文。
4.根据权利要求3所述的方法,其特征在于,所述基于所述临时密钥的第二部分、所述私钥密文、keystore的文件名得到消息认证码之前,还包括:
将所述keystore的生成时间与所述区块链钱包地址拼接后作为所述keystore的文件名。
5.根据权利要求1所述的方法,其特征在于,所述基于所述临时密钥的第二部分、所述私钥密文、keystore的文件名得到消息认证码,包括:
将所述临时密钥的第二部分、所述私钥密文、所述keystore的文件名进行拼接并加密运算,获得结果;
截取所述结果的目标部分作为消息认证码。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述将所述随机值、所述私钥密文、所述消息认证码拼接写入所述keystore,包括:
将所述随机值、所述私钥密文、所述消息认证码进行拼接,获得拼接结果;
对所述拼接结果添加标签,并以二进制方式写入所述keystore。
7.一种区块链节点设备,其特征在于,所述设备包括:
扩展单元,用于将用户交易密码和随机值做密钥扩展处理,生成临时密钥;
加密单元,用于将所述临时密钥的第一部分作为密钥对私钥进行加密处理,获得私钥密文;
第一拼接单元,用于基于所述临时密钥的第二部分、所述私钥密文、keystore的文件名得到消息认证码;
第二拼接单元,用于将所述随机值、所述私钥密文、所述消息认证码拼接写入所述keystore。
8.根据权利要求7所述的设备,其特征在于,
所述加密单元,具体用于截取所述临时密钥的第一部分作为密钥,将所述随机值作为加密参数;利用所述密钥与所述加密参数对所述私钥进行加密,获得私钥密文。
9.一种区块链节点设备,其特征在于,包括处理器、存储器和收发器;其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1至6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633225.3A CN110289946B (zh) | 2019-07-12 | 2019-07-12 | 一种区块链钱包本地化文件的生成方法及区块链节点设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633225.3A CN110289946B (zh) | 2019-07-12 | 2019-07-12 | 一种区块链钱包本地化文件的生成方法及区块链节点设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110289946A true CN110289946A (zh) | 2019-09-27 |
CN110289946B CN110289946B (zh) | 2022-11-11 |
Family
ID=68022932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910633225.3A Active CN110289946B (zh) | 2019-07-12 | 2019-07-12 | 一种区块链钱包本地化文件的生成方法及区块链节点设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110289946B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110675265A (zh) * | 2019-09-29 | 2020-01-10 | 四川师范大学 | 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法 |
CN110855433A (zh) * | 2019-11-07 | 2020-02-28 | 深圳市信联征信有限公司 | 基于加密算法的数据加密方法、装置及计算机设备 |
CN110889128A (zh) * | 2019-11-27 | 2020-03-17 | 上海禾一网络科技有限公司 | 基于区块链存储与交换加密密钥的输入方法和装置 |
CN111008837A (zh) * | 2019-11-21 | 2020-04-14 | 深圳前海环融联易信息科技服务有限公司 | 区块链账户私钥恢复方法、装置、计算机设备及存储介质 |
CN111294203A (zh) * | 2020-01-22 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 信息传输方法 |
CN111523885A (zh) * | 2020-03-06 | 2020-08-11 | 杜晓楠 | 区块链钱包的加密多账户构造方法、计算机可读存储介质和区块链加密多账户钱包 |
CN113468620A (zh) * | 2021-07-21 | 2021-10-01 | 赞同科技股份有限公司 | 安全键盘的实现方法与装置 |
WO2024026106A1 (en) * | 2022-07-28 | 2024-02-01 | Kinsey Brax | Digital forge systems and methods |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108075896A (zh) * | 2016-11-11 | 2018-05-25 | 华为国际有限公司 | 使用基于标识的密码学构建自认证消息的系统和方法 |
US20180159837A1 (en) * | 2016-12-06 | 2018-06-07 | Bank Of America Corporation | Enabling secure connections by managing signer certificates |
CN109510820A (zh) * | 2018-11-01 | 2019-03-22 | 浙江仙草世家生物科技有限公司 | 一种去中心化可自定义的区块链密码方法 |
CN109801071A (zh) * | 2019-01-17 | 2019-05-24 | 厦门美图之家科技有限公司 | 密码重置方法及装置 |
CN109981264A (zh) * | 2019-03-11 | 2019-07-05 | 北京纬百科技有限公司 | 一种应用密钥生成方法及密码机设备组件 |
-
2019
- 2019-07-12 CN CN201910633225.3A patent/CN110289946B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108075896A (zh) * | 2016-11-11 | 2018-05-25 | 华为国际有限公司 | 使用基于标识的密码学构建自认证消息的系统和方法 |
US20180159837A1 (en) * | 2016-12-06 | 2018-06-07 | Bank Of America Corporation | Enabling secure connections by managing signer certificates |
CN109510820A (zh) * | 2018-11-01 | 2019-03-22 | 浙江仙草世家生物科技有限公司 | 一种去中心化可自定义的区块链密码方法 |
CN109801071A (zh) * | 2019-01-17 | 2019-05-24 | 厦门美图之家科技有限公司 | 密码重置方法及装置 |
CN109981264A (zh) * | 2019-03-11 | 2019-07-05 | 北京纬百科技有限公司 | 一种应用密钥生成方法及密码机设备组件 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110675265A (zh) * | 2019-09-29 | 2020-01-10 | 四川师范大学 | 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法 |
CN110675265B (zh) * | 2019-09-29 | 2022-07-08 | 四川师范大学 | 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法 |
CN110855433A (zh) * | 2019-11-07 | 2020-02-28 | 深圳市信联征信有限公司 | 基于加密算法的数据加密方法、装置及计算机设备 |
CN110855433B (zh) * | 2019-11-07 | 2023-06-16 | 深圳市信联征信有限公司 | 基于加密算法的数据加密方法、装置及计算机设备 |
CN111008837A (zh) * | 2019-11-21 | 2020-04-14 | 深圳前海环融联易信息科技服务有限公司 | 区块链账户私钥恢复方法、装置、计算机设备及存储介质 |
CN111008837B (zh) * | 2019-11-21 | 2023-06-30 | 深圳前海环融联易信息科技服务有限公司 | 区块链账户私钥恢复方法、装置、计算机设备及存储介质 |
CN110889128A (zh) * | 2019-11-27 | 2020-03-17 | 上海禾一网络科技有限公司 | 基于区块链存储与交换加密密钥的输入方法和装置 |
CN111294203A (zh) * | 2020-01-22 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 信息传输方法 |
CN111523885A (zh) * | 2020-03-06 | 2020-08-11 | 杜晓楠 | 区块链钱包的加密多账户构造方法、计算机可读存储介质和区块链加密多账户钱包 |
CN113468620A (zh) * | 2021-07-21 | 2021-10-01 | 赞同科技股份有限公司 | 安全键盘的实现方法与装置 |
WO2024026106A1 (en) * | 2022-07-28 | 2024-02-01 | Kinsey Brax | Digital forge systems and methods |
Also Published As
Publication number | Publication date |
---|---|
CN110289946B (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110289946A (zh) | 一种区块链钱包本地化文件的生成方法及区块链节点设备 | |
US9537657B1 (en) | Multipart authenticated encryption | |
US4203166A (en) | Cryptographic file security for multiple domain networks | |
US4941176A (en) | Secure management of keys using control vectors | |
WO2018046008A1 (zh) | 一种区块链加密射频芯片存储设计方法 | |
US5319705A (en) | Method and system for multimedia access control enablement | |
US6307936B1 (en) | Cryptographic key management scheme | |
US7908474B2 (en) | Method for improved key management for ATMs and other remote devices | |
US4238853A (en) | Cryptographic communication security for single domain networks | |
US11184164B2 (en) | Secure crypto system attributes | |
US20200106600A1 (en) | Progressive key encryption algorithm | |
JPH04265031A (ja) | 公開キー使用制御方法および装置 | |
CN102138300A (zh) | 消息认证码预计算在安全存储器中的应用 | |
US6831982B1 (en) | Encryption key management system using multiple smart cards | |
US20120185699A1 (en) | Space-efficient encryption with multi-block binding | |
CN108199847A (zh) | 数字安全处理方法、计算机设备及存储介质 | |
US8619992B2 (en) | Secure key creation | |
EP2286610B1 (en) | Techniques for peforming symmetric cryptography | |
US9306745B2 (en) | Secure key management | |
CN110113151B (zh) | 一种对elf格式程序的非侵入式实时加解密方法 | |
CN110457924A (zh) | 存储数据保护方法及装置 | |
CN109558341A (zh) | 计算机内存数据保护方法和计算机 | |
WO2019021028A1 (en) | KEY GENERATION IN SECURE ELECTRONIC PAYMENT SYSTEMS | |
Matyas | Key processing with control vectors | |
WO2021044465A1 (ja) | 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造 |
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 |