CN108833117B - 一种私钥存储和读取方法、装置及硬件设备 - Google Patents

一种私钥存储和读取方法、装置及硬件设备 Download PDF

Info

Publication number
CN108833117B
CN108833117B CN201810825132.6A CN201810825132A CN108833117B CN 108833117 B CN108833117 B CN 108833117B CN 201810825132 A CN201810825132 A CN 201810825132A CN 108833117 B CN108833117 B CN 108833117B
Authority
CN
China
Prior art keywords
matrix
generating
random number
private key
identification code
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.)
Active
Application number
CN201810825132.6A
Other languages
English (en)
Other versions
CN108833117A (zh
Inventor
郭磊
黄何
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Tongchuang Jialian Technology Co ltd
Original Assignee
Hainan Xinruan Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hainan Xinruan Software Co ltd filed Critical Hainan Xinruan Software Co ltd
Priority to CN201810825132.6A priority Critical patent/CN108833117B/zh
Publication of CN108833117A publication Critical patent/CN108833117A/zh
Priority to PCT/CN2019/097221 priority patent/WO2020020127A1/zh
Application granted granted Critical
Publication of CN108833117B publication Critical patent/CN108833117B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开一种私钥存储和读取方法、装置及硬件设备。本申请的私钥存储和读取方法、装置及硬件设备,根据硬件设备的通用唯一识别码和用户密码等对私钥等敏感数据进行混淆,最终得到矩阵数据进行存储和读取,本方案只在数据存储方面进行混淆,计算量小,本身并不对数据进行加密,因而用户可以在本方案基础上集成任意的加密算法,以提升对私钥的保护强度,并且本方案不受数据结构的限制,可应用于各种币种的私钥存储,通用性强。

Description

一种私钥存储和读取方法、装置及硬件设备
技术领域
本申请涉及信息安全技术领域,尤其涉及一种私钥存储和读取方法、装置及硬件设备。
背景技术
比特币的概念最初由中本聪在2009年提出,是一种基于P2P网络的数字货币。区块链是与比特币相关的一个重要概念。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
账户和交易是区块链技术中的两大核心概念。账户是用户在区块链网络上的唯一性标识,区块链账户由一个公钥-私钥对代表。公钥通常会作为交易签名数据的一部分来进行公布,这样区块链的节点在验证交易合法性的时候就可以从交易数据内部得到公钥,并使用该公钥验证地址和交易签名的合法性。私钥由用户秘密保管,可用来生成公钥和钱包地址,以及用来对交易进行签名。拥有了私钥就相当于拥有了对这个账户进行交易的权限。因此,私钥的存储技术是区块链技术中的一个重要部分。目前,业内较多采用的是基于以太坊的keystore文件的私钥存储方案。此方案允许用户以加密的方式存储密钥,攻击者需要同时获得keystore文件和密码才能盗取账户资产,可保证账户的安全性。并且,用户也只需通过keystore文件和密码即可支配自己的资产,在保证账户的安全性的前提下,使用也较为便利。
随着区块链技术的运用和发展在全球掀起一股区块链风暴,作为区块链的典型项目,各类数字货币层出不穷。据不完全统计,目前市场上已有近1500种数字货币,如比特币、以太坊、莱特币、瑞波币等等。上述基于以太坊的keystore文件的私钥存储方案,由于数字货币间数据结构的差异,无法应用于其他币种的私钥存储,通用性较差。
发明内容
本申请提供了一种私钥存储和读取方法、装置及硬件设备,以解决现有的基于以太坊的keystore文件的私钥存储方案由于数字货币间数据结构的差异,无法应用于其他币种的私钥存储,通用性较差的问题。
第一方面,本申请提供一种私钥存储方法,所述方法包括:
获取硬件设备的通用唯一识别码和用户密码;
生成第一随机数,并根据所述第一随机数生成对应的盐值;
循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵;
根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵;
根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
根据所述哈希值和第一预设函数,计算出系数值;
根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;
根据所述B矩阵、所述X矩阵以及所述系数,生成D矩阵,以将所述D矩阵存储至硬件设备。
结合第一方面,在第一方面的第一种可实现方式中,所述数据区可存储数据块的大小为M阶,其中,M为2的整数幂,并且所述数据区可存储数据块的大小大于所述敏感数据大小的四倍。
结合第一方面,在第一方面的第二种可实现方式中,将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵之前,包括:
根据预设加密算法,对包括私钥在内的敏感数据进行加密。
结合第一方面,在第一方面的第三种可实现方式中,根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵,包括:
以二阶矩阵为基本扫描单位,对所述A矩阵中的每个二阶矩阵分别进行N字形扫描编码,生成以编码后得到的多个一维数组为元素组成的新矩阵;
继续以二阶矩阵为基本扫描单位,对所述新矩阵中的每个二阶矩阵分别进行N字形扫描编码,直至将所述A矩阵转换为一维矩阵;
将所述一维矩阵按照所述A矩阵的初始维度逐行进行填充,生成B矩阵。
第二方面,本申请提供一种私钥读取方法,所述方法包括:
获取硬件设备的通用唯一识别码、用户密码以及D矩阵的数据,其中,所述D矩阵为以包括私钥在内的敏感数据为基础进行混淆生成的矩阵;
根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
根据所述哈希值和第一预设函数,计算出系数值;
根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;
根据所述X矩阵,生成所述X矩阵的逆矩阵Y矩阵;
根据所述Y矩阵、所述D矩阵以及所述系数值,生成B矩阵;
根据预设的矩阵变换规则,对所述B矩阵进行逆变换,生成A矩阵,以读取所述A矩阵中包括私钥在内的敏感数据。
结合第二方面,在第二方面的第一种可实现方式中,所述X矩阵为M阶矩阵,其中,M为2的整数幂,并且所述X矩阵可存储数据块的大小大于所述敏感数据大小的四倍。
结合第二方面,在第二方面的第二种可实现方式中,根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值的步骤中,所述安全散列算法采用SHA-512密码散列函数。
第三方面,本申请提供一种私钥存储装置,所述装置包括:
获取单元,用于获取硬件设备的通用唯一识别码和用户密码;
随机数生成单元,用于生成第一随机数,并根据所述第一随机数生成对应的盐值;
调用单元,用于循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
存储单元,用于将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵;
矩阵生成单元,用于根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵;
哈希值生成单元,用于根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
计算单元,用于根据所述哈希值和第一预设函数,计算出系数值;
所述矩阵生成单元,还用于根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;根据所述B矩阵、所述X矩阵以及所述系数,生成D矩阵,以将所述D矩阵存储至硬件设备。
结合第三方面,在第三方面的第一种可实现方式中,所述装置还包括:
加密单元,用于将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵之前,根据预设加密算法,对包括私钥在内的敏感数据进行加密。
结合第三方面,在第三方面的第二种可实现方式中,所述矩阵生成单元包括:
扫描单元,用于以二阶矩阵为基本扫描单位,对所述A矩阵中的每个二阶矩阵分别进行N字形扫描编码,生成以编码后得到的多个一维数组为元素组成的新矩阵;继续以二阶矩阵为基本扫描单位,对所述新矩阵中的每个二阶矩阵分别进行N字形扫描编码,直至将所述A矩阵转换为一维矩阵;
填充单元,用于将所述一维矩阵按照所述A矩阵的初始维度逐行进行填充,生成B矩阵。
第四方面,本申请提供一种私钥读取装置,所述装置包括:
获取单元,用于获取硬件设备的通用唯一识别码、用户密码以及D矩阵的数据,其中,所述D矩阵为以包括私钥在内的敏感数据为基础进行混淆生成的矩阵;
哈希值生成单元,用于根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
计算单元,用于根据所述哈希值和第一预设函数,计算出系数值;
矩阵生成单元,用于根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;根据所述X矩阵,生成所述X矩阵的逆矩阵Y矩阵;根据所述Y矩阵、所述D矩阵以及所述系数值,生成B矩阵;根据预设的矩阵变换规则,对所述B矩阵进行逆变换,生成A矩阵,以读取所述A矩阵中包括私钥在内的敏感数据。
结合第四方面,在第四方面的第一种可实现方式中,所述哈希值生成单元,用于根据所述通用唯一识别码和所述用户密码,通过SHA-512密码散列函数生成哈希值。
第五方面,本申请提供一种硬件设备,所述硬件设备包括:处理器,以及用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取硬件设备的通用唯一识别码和用户密码;
生成第一随机数,并根据所述第一随机数生成对应的盐值;
循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵;
根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵;
根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
根据所述哈希值和第一预设函数,计算出系数值;
根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;
根据所述B矩阵、所述X矩阵以及所述系数,生成D矩阵,以将所述D矩阵存储至硬件设备。
第六方面,本申请提供一种硬件设备,所述硬件设备包括:处理器,以及用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取硬件设备的通用唯一识别码、用户密码以及D矩阵的数据,其中,所述D矩阵为以包括私钥在内的敏感数据为基础进行混淆生成的矩阵;
根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
根据所述哈希值和第一预设函数,计算出系数值;
根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;
根据所述X矩阵,生成所述X矩阵的逆矩阵Y矩阵;
根据所述Y矩阵、所述D矩阵以及所述系数值,生成B矩阵;
根据预设的矩阵变换规则,对所述B矩阵进行逆变换,生成A矩阵,以读取所述A矩阵中包括私钥在内的敏感数据。
由以上技术方案可知,本申请的一种私钥存储和读取方法、装置及硬件设备,根据硬件设备的通用唯一识别码和用户密码等对私钥等敏感数据进行混淆,最终得到矩阵数据进行存储和读取,本方案只在数据存储方面进行混淆,计算量小,本身并不对数据进行加密,因而用户可以在本方案基础上集成任意的加密算法,以提升对私钥的保护强度,并且本方案不受数据结构的限制,可应用于各种币种的私钥存储,通用性强。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种私钥存储方法的流程图。
图2为本申请实施例提供的一种私钥存储方法的步骤105的流程图。
图3为本申请实施例提供的一种私钥存储方法的N变换的示意图。
图4为本申请实施例提供的一种私钥读取方法的流程图。
图5为本申请实施例提供的一种私钥存储装置的示意图。
图6为本申请实施例提供的一种私钥读取装置的示意图。
图7为本申请实施例提供的一种硬件设备的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。
请参阅图1,为本申请实施例提供的一种私钥存储方法的流程图,所述方法包括:
步骤101、获取硬件设备的通用唯一识别码和用户密码。
该硬件设备可以是一种嵌入式硬件设备等,用于存储用户的区块链账户的私钥。其中,通用唯一识别码(英文:Universally Unique Identifier,简称:UUID)是指在一台机器上根据以太网卡地址、纳秒级时间、芯片ID码等生成的一组32位数的16进制数字,并且这组数字对在同一时空中的所有机器来说都是唯一的,其目的是让分布式系统中的所有元素都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。用户密码指的是用户的区块链账户的密码,例如比特币钱包、以太坊钱包等的密码,该用户密码是获取私钥的使用权限的一个前提条件。
步骤102、生成第一随机数,并根据所述第一随机数生成对应的盐值。
随机数在密码学中非常重要,保密通信中大量运用的会话密钥的生成即需要随机数的参与。在系统需要随机数的时候,可利用随机数发生器通过一系列种子值计算出随机数。盐值的生成可根据现有的盐值生成算法实现,例如对第一随机数进行BASE64编码处理,生成对应的盐值。在本发明实施例中,对盐值生成算法不做限定。
步骤103、循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区。
安全散列算法(英文:Secure Hash Algorithm,简称:SHA)是一个密码散列函数家族,能计算出一个数字消息所对应到的长度固定的字符串。在本发明实施例中,可采用SHA512对硬件设备的通用唯一识别码和上述第一随机数得到的盐值进行循环调用,以生成第二随机数,将第一随机数填满硬件设备内的数据区。
步骤104、将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵。
具体地,该数据区可存储数据块的大小为M阶,其中,M为2的整数幂,并且所述数据区可存储数据块的大小优选大于需要存储的私钥等敏感数据大小的四倍。此外,将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵之前,根据预设加密算法,对包括私钥在内的敏感数据进行加密。
步骤105、根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵。
请参阅图2和图3,在本发明实施例中,该变换过程具体包括以下步骤:
步骤201、以二阶矩阵为基本扫描单位,对所述A矩阵中的每个二阶矩阵分别进行N字形扫描编码,生成以编码后得到的多个一维数组为元素组成的新矩阵。
图3中以A矩阵为4阶矩阵为例,以二阶矩阵为基本扫描单位,可将A矩阵划分为四个二阶矩阵,对每个A矩阵进行N字形扫描编码,箭头方向表示扫描方向。每个二阶矩阵经过扫描编码后得到一个序列,总共得到四个序列,这四个序列构成一个新的二阶矩阵。
步骤202、继续以二阶矩阵为基本扫描单位,对所述新矩阵中的每个二阶矩阵分别进行N字形扫描编码,直至将所述A矩阵转换为一维矩阵。
对上述四个序列构成的新二阶矩阵继续扫描编码,扫描编码的方式不变,直至将A矩阵转换为一维矩阵。由于本实施例以A矩阵为4阶矩阵为例,因此经过两级扫描编码后即将A矩阵转换为一维矩阵。
步骤203、将所述一维矩阵按照所述A矩阵的初始维度逐行进行填充,生成B矩阵。
对A矩阵转换得到的一维矩阵,按照A矩阵的初始维度即4阶矩阵进行逐行填充,得到变换后的4阶矩阵,即B矩阵。在本实施例中,将该预设的矩阵变换规则记作N变换。
步骤106、根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值。在本发明实施例中,可采用SHA512算法,根据硬件设备的通用唯一识别码和用户密码生成哈希值h。
步骤107、根据所述哈希值和第一预设函数,计算出系数值。
在本发明实施例中,第一预设函数记作F1(h),不对第一预设函数进行具体限定,通过F1(h)计算得到系数值k。
步骤108、根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵。
在本发明实施例中,第二预设函数记作F2(UUID,SHA512(h)),不对第二预设函数进行具体限定,根据F2(UUID,SHA512(h))生成X矩阵。
步骤109、根据所述B矩阵、所述X矩阵以及所述系数,生成D矩阵,以将所述D矩阵存储至硬件设备。
具体地,根据D=XkB,计算出D矩阵。D矩阵本身不具有加密属性,具有数据存储混淆属性。在本发明实施例中,D矩阵又可称为Matrix文件。
本实施例提供的私钥存储方法,计算简单,不受数据结构的限制,可应用于各种币种的私钥存储,支持多币种的私钥存储保护,通用性强。本方法支持混淆,在使用错误密码解码时也会正常得到输出结果,但并不会提供错误反馈。本方法在数据存储方面进行混淆,本身并不对数据进行加密,用户可以在本方案基础上集成任意的加密算法,在数据文件存储层提供保护机制。本实施例提供的私钥存储方法,适合在手持、嵌入式硬件设备存储私钥,与硬件的通用唯一识别码绑定,只有用户在生成该Matrix文件的硬件设备上正确输入用户密码,才能使用私钥。Matrix文件、硬件设备以及用户密码,三者缺一不可,保护强度高。
请参阅图4,为本申请实施例提供的一种私钥读取方法的流程图,所述方法包括:
步骤401、获取硬件设备的通用唯一识别码、用户密码以及D矩阵的数据,其中,所述D矩阵为以包括私钥在内的敏感数据为基础进行混淆生成的矩阵,即Matrix文件。用户需要读取私钥进行区块链账户的交易时,需要同时具有Matrix文件、生成该Matrix文件的硬件设备,以及用户密码,只有在该唯一硬件设备上正确输入用户密码,才能读取私钥。
步骤402、根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值。其中,所述安全散列算法具体可采用SHA-512密码散列函数,生成哈希值h。
步骤403、根据所述哈希值和第一预设函数,计算出系数值。
其中,第一预设函数与存储私钥时的F1(h)相一致,根据F1(h)计算出系数值k。
步骤404、根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵。
其中,第二预设函数与存储私钥时的F2(UUID,SHA512(h))相一致,根据F2(UUID,SHA512(h))生成X矩阵。在本发明实施例中,所述X矩阵为M阶矩阵,其中,M为2的整数幂,并且所述X矩阵可存储数据块的大小大于所述敏感数据大小的四倍。
步骤405、根据所述X矩阵,生成所述X矩阵的逆矩阵Y矩阵。
步骤406、根据所述Y矩阵、所述D矩阵以及所述系数值,生成B矩阵。
具体地,根据B=YkD生成B矩阵。
步骤407、根据预设的矩阵变换规则,对所述B矩阵进行逆变换,生成A矩阵,以读取所述A矩阵中包括私钥在内的敏感数据。
在本实施例中,预设的矩阵变换规则即所述N变换,对所述B矩阵进行N变换的逆变换,即A=N,(B),生成A矩阵。至此,获得混淆前的敏感数据,完成对私钥的读取。
请参阅图5,为本申请实施例提供的一种私钥存储装置,所述装置包括:
获取单元501,用于获取硬件设备的通用唯一识别码和用户密码;
随机数生成单元502,用于生成第一随机数,并根据所述第一随机数生成对应的盐值;
调用单元503,用于循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
存储单元504,用于将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵;
矩阵生成单元505,用于根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵;
哈希值生成单元506,用于根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
计算单元507,用于根据所述哈希值和第一预设函数,计算出系数值;
所述矩阵生成单元505,还用于根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;根据所述B矩阵、所述X矩阵以及所述系数,生成D矩阵,以将所述D矩阵存储至硬件设备。
具体地,所述装置还包括加密单元,用于将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵之前,根据预设加密算法,对包括私钥在内的敏感数据进行加密。
具体地,所述矩阵生成单元包括:
扫描单元,用于以二阶矩阵为基本扫描单位,对所述A矩阵中的每个二阶矩阵分别进行N字形扫描编码,生成以编码后得到的多个一维数组为元素组成的新矩阵;继续以二阶矩阵为基本扫描单位,对所述新矩阵中的每个二阶矩阵分别进行N字形扫描编码,直至将所述A矩阵转换为一维矩阵;
填充单元,用于将所述一维矩阵按照所述A矩阵的初始维度逐行进行填充,生成B矩阵。
请参阅图6,本申请实施例还提供一种私钥读取装置,所述装置包括:
获取单元501,用于获取硬件设备的通用唯一识别码、用户密码以及D矩阵的数据,其中,所述D矩阵为以包括私钥在内的敏感数据为基础进行混淆生成的矩阵;
哈希值生成单元506,用于根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
计算单元507,用于根据所述哈希值和第一预设函数,计算出系数值;
矩阵生成单元505,用于根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;根据所述X矩阵,生成所述X矩阵的逆矩阵Y矩阵;根据所述Y矩阵、所述D矩阵以及所述系数值,生成B矩阵;根据预设的矩阵变换规则,对所述B矩阵进行逆变换,生成A矩阵,以读取所述A矩阵中包括私钥在内的敏感数据。
其中,所述哈希值生成单元,用于根据所述通用唯一识别码和所述用户密码,通过SHA-512密码散列函数生成哈希值。
请参阅图7,本申请实施例还提供一种硬件设备,所述硬件设备包括:处理器61,以及用于存储处理器61可执行指令的存储器62;
其中,所述处理器被配置为:
获取硬件设备的通用唯一识别码和用户密码;
生成第一随机数,并根据所述第一随机数生成对应的盐值;
循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵;
根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵;
根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
根据所述哈希值和第一预设函数,计算出系数值;
根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;
根据所述B矩阵、所述X矩阵以及所述系数,生成D矩阵,以将所述D矩阵存储至硬件设备。
或者,请参阅图7,本申请实施例还提供一种硬件设备,所述硬件设备包括:处理器61,以及用于存储处理器61可执行指令的存储器62;
其中,所述处理器被配置为:
获取硬件设备的通用唯一识别码、用户密码以及D矩阵的数据,其中,所述D矩阵为以包括私钥在内的敏感数据为基础进行混淆生成的矩阵;
根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
根据所述哈希值和第一预设函数,计算出系数值;
根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;
根据所述X矩阵,生成所述X矩阵的逆矩阵Y矩阵;
根据所述Y矩阵、所述D矩阵以及所述系数值,生成B矩阵;
根据预设的矩阵变换规则,对所述B矩阵进行逆变换,生成A矩阵,以读取所述A矩阵中包括私钥在内的敏感数据。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的私钥存储和读取方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:Read-Only Memory,简称:ROM)或随机存储记忆体(英文:Random Access Memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于私钥存储装置和私钥读取装置以及硬件设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。

Claims (14)

1.一种私钥存储方法,其特征在于,所述方法包括:
获取硬件设备的通用唯一识别码和用户密码;
生成第一随机数,并根据所述第一随机数生成对应的盐值;
循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵;
根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵;
根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
根据所述哈希值和第一预设函数,计算出系数值;
根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;
根据所述B矩阵、所述X矩阵以及所述系数值,生成D矩阵,以将所述D矩阵存储至硬件设备。
2.如权利要求1所述的方法,其特征在于,所述数据区可存储数据块的大小为M阶,其中,M为2的整数幂,并且所述数据区可存储数据块的大小大于所述敏感数据大小的四倍。
3.如权利要求1所述的方法,其特征在于,将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵之前,包括:
根据预设加密算法,对包括私钥在内的敏感数据进行加密。
4.如权利要求1所述的方法,其特征在于,根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵,包括:
以二阶矩阵为基本扫描单位,对所述A矩阵中的每个二阶矩阵分别进行N字形扫描编码,生成以编码后得到的多个一维数组为元素组成的新矩阵;
继续以二阶矩阵为基本扫描单位,对所述新矩阵中的每个二阶矩阵分别进行N字形扫描编码,直至将所述A矩阵转换为一维矩阵;
将所述一维矩阵按照所述A矩阵的初始维度逐行进行填充,生成B矩阵。
5.一种私钥读取方法,其特征在于,所述方法包括:
获取硬件设备的通用唯一识别码、用户密码以及D矩阵的数据,其中,所述D矩阵为以包括私钥在内的敏感数据为基础进行混淆生成的矩阵;
根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
根据所述哈希值和第一预设函数,计算出系数值;
根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;
根据所述X矩阵,生成所述X矩阵的逆矩阵Y矩阵;
根据所述Y矩阵、所述D矩阵以及所述系数值,生成B矩阵;
根据预设的矩阵变换规则,对所述B矩阵进行逆变换,生成A矩阵,以读取所述A矩阵中包括私钥在内的敏感数据;
其中,在存储所述私钥时,获取硬件设备的通用唯一识别码和用户密码;
生成第一随机数,并根据所述第一随机数生成对应的盐值;
循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵。
6.如权利要求5所述的方法,其特征在于,所述X矩阵为M阶矩阵,其中,M为2的整数幂,并且所述X矩阵可存储数据块的大小大于所述敏感数据大小的四倍。
7.如权利要求5所述的方法,其特征在于,根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值的步骤中,所述安全散列算法采用SHA-512密码散列函数。
8.一种私钥存储装置,其特征在于,所述装置包括:
获取单元,用于获取硬件设备的通用唯一识别码和用户密码;
随机数生成单元,用于生成第一随机数,并根据所述第一随机数生成对应的盐值;
调用单元,用于循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
存储单元,用于将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵;
矩阵生成单元,用于根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵;
哈希值生成单元,用于根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
计算单元,用于根据所述哈希值和第一预设函数,计算出系数值;
所述矩阵生成单元,还用于根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;根据所述B矩阵、所述X矩阵以及所述系数值,生成D矩阵,以将所述D矩阵存储至硬件设备。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
加密单元,用于将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵之前,根据预设加密算法,对包括私钥在内的敏感数据进行加密。
10.如权利要求8所述的装置,其特征在于,所述矩阵生成单元包括:
扫描单元,用于以二阶矩阵为基本扫描单位,对所述A矩阵中的每个二阶矩阵分别进行N字形扫描编码,生成以编码后得到的多个一维数组为元素组成的新矩阵;继续以二阶矩阵为基本扫描单位,对所述新矩阵中的每个二阶矩阵分别进行N字形扫描编码,直至将所述A矩阵转换为一维矩阵;
填充单元,用于将所述一维矩阵按照所述A矩阵的初始维度逐行进行填充,生成B矩阵。
11.一种私钥读取装置,其特征在于,所述装置包括:
获取单元,用于获取硬件设备的通用唯一识别码、用户密码以及D矩阵的数据,其中,所述D矩阵为以包括私钥在内的敏感数据为基础进行混淆生成的矩阵;
哈希值生成单元,用于根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
计算单元,用于根据所述哈希值和第一预设函数,计算出系数值;
矩阵生成单元,用于根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;根据所述X矩阵,生成所述X矩阵的逆矩阵Y矩阵;根据所述Y矩阵、所述D矩阵以及所述系数值,生成B矩阵;根据预设的矩阵变换规则,对所述B矩阵进行逆变换,生成A矩阵,以读取所述A矩阵中包括私钥在内的敏感数据;
其中,在存储所述私钥时,获取硬件设备的通用唯一识别码和用户密码;
生成第一随机数,并根据所述第一随机数生成对应的盐值;
循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵。
12.如权利要求11所述的装置,其特征在于,所述哈希值生成单元,用于根据所述通用唯一识别码和所述用户密码,通过SHA-512密码散列函数生成哈希值。
13.一种硬件设备,其特征在于,所述硬件设备包括:处理器,以及用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取硬件设备的通用唯一识别码和用户密码;
生成第一随机数,并根据所述第一随机数生成对应的盐值;
循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵;
根据预设的矩阵变换规则,对所述A矩阵进行变换,生成B矩阵;
根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
根据所述哈希值和第一预设函数,计算出系数值;
根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;
根据所述B矩阵、所述X矩阵以及所述系数值,生成D矩阵,以将所述D矩阵存储至硬件设备。
14.一种硬件设备,其特征在于,所述硬件设备包括:处理器,以及用于存储处理器可执行指令的存储器;
所述处理器被配置为:
获取硬件设备的通用唯一识别码、用户密码以及D矩阵的数据,其中,所述D矩阵为以包括私钥在内的敏感数据为基础进行混淆生成的矩阵;
根据所述通用唯一识别码和所述用户密码,通过安全散列算法生成哈希值;
根据所述哈希值和第一预设函数,计算出系数值;
根据所述哈希值、所述通用唯一识别码和第二预设函数,生成X矩阵,所述X矩阵为可逆矩阵;
根据所述X矩阵,生成所述X矩阵的逆矩阵Y矩阵;
根据所述Y矩阵、所述D矩阵以及所述系数值,生成B矩阵;
根据预设的矩阵变换规则,对所述B矩阵进行逆变换,生成A矩阵,以读取所述A矩阵中包括私钥在内的敏感数据;
其中,在存储所述私钥时,获取硬件设备的通用唯一识别码和用户密码;
生成第一随机数,并根据所述第一随机数生成对应的盐值;
循环调用所述通用唯一识别码和所述盐值,通过安全散列算法生成第二随机数,以将所述第二随机数填满数据区;
将包括私钥在内的敏感数据存储至所述数据区,以与所述第二随机数经过混淆初始化后生成A矩阵。
CN201810825132.6A 2018-07-25 2018-07-25 一种私钥存储和读取方法、装置及硬件设备 Active CN108833117B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810825132.6A CN108833117B (zh) 2018-07-25 2018-07-25 一种私钥存储和读取方法、装置及硬件设备
PCT/CN2019/097221 WO2020020127A1 (zh) 2018-07-25 2019-07-23 一种私钥存储和读取方法、装置及硬件设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810825132.6A CN108833117B (zh) 2018-07-25 2018-07-25 一种私钥存储和读取方法、装置及硬件设备

Publications (2)

Publication Number Publication Date
CN108833117A CN108833117A (zh) 2018-11-16
CN108833117B true CN108833117B (zh) 2020-11-10

Family

ID=64140586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810825132.6A Active CN108833117B (zh) 2018-07-25 2018-07-25 一种私钥存储和读取方法、装置及硬件设备

Country Status (2)

Country Link
CN (1) CN108833117B (zh)
WO (1) WO2020020127A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108833117B (zh) * 2018-07-25 2020-11-10 海南新软软件有限公司 一种私钥存储和读取方法、装置及硬件设备
CN110505306B (zh) * 2019-08-30 2021-12-21 公安部交通管理科学研究所 一种可指定位数的数据id生成方法
CN110704873B (zh) * 2019-09-25 2021-05-25 全球能源互联网研究院有限公司 一种防止敏感数据泄漏的方法及系统
CN110881063B (zh) * 2019-11-20 2022-03-15 腾讯科技(深圳)有限公司 一种隐私数据的存储方法、装置、设备及介质
CN110990872B (zh) * 2019-12-03 2022-03-25 成都链鱼科技有限公司 基于区块链的私钥导出二维码存储及扫描恢复方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103370688B (zh) * 2010-07-29 2016-11-09 尼尔默尔·朱萨尼 一种由简单用户密码生成多因素个性化服务器强密钥的系统及其方法
US20130185210A1 (en) * 2011-10-21 2013-07-18 The Board of Trustees of the Leland Stanford, Junior, University Method and System for Making Digital Payments
US20170103389A1 (en) * 2015-10-07 2017-04-13 Aerius, Inc. Electronic Payment Validation and Authorization System
MA45323A (fr) * 2016-03-18 2019-01-23 Forticode Ltd Procédé et système d'authentification d'utilisateur à sécurité améliorée
CN105681039B (zh) * 2016-04-15 2021-04-13 上海上讯信息技术股份有限公司 用于生成密钥及对应解密的方法和设备
US10320573B2 (en) * 2016-11-09 2019-06-11 Arizona Board Of Regents On Behalf Of Northern Arizona University PUF-based password generation scheme
CN107070660B (zh) * 2017-03-03 2020-03-17 上海唯链信息科技有限公司 一种区块链加密射频芯片的存储设计方法
CN108833117B (zh) * 2018-07-25 2020-11-10 海南新软软件有限公司 一种私钥存储和读取方法、装置及硬件设备

Also Published As

Publication number Publication date
CN108833117A (zh) 2018-11-16
WO2020020127A1 (zh) 2020-01-30

Similar Documents

Publication Publication Date Title
US11936774B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
CN108833117B (zh) 一种私钥存储和读取方法、装置及硬件设备
CN108780548A (zh) 将椭圆曲线加密用于个人装置安全以共享秘密
CN112119611A (zh) 使用区块链执行原子交换的计算机实现的系统和方法
EP3871365B1 (en) Computer implemented system and method for distributing shares of digitally signed data
CN101145911B (zh) 具有私密保护及口令找回功能的身份认证方法
CN111147245A (zh) 一种区块链中使用国家密码进行加密的算法
KR20210063378A (ko) 공통 비밀을 공유하는 컴퓨터 구현 시스템 및 방법
Mohan et al. Secure visual cryptography scheme with meaningful shares
Homoliak et al. An air-gapped 2-factor authentication for smart-contract wallets
CN104410498A (zh) 一种动态口令认证方法及其系统
Gohel et al. A new data integrity checking protocol with public verifiability in cloud storage
Harjito et al. Comparative Analysis between Elgamal and NTRU Algorithms and their implementation of Digital Signature for Electronic Certificate
Sarkar et al. Blockchain-based authenticable (k, n) multi-secret image sharing scheme
CN117729053B (zh) 基于量子隐形传态的防伪验证方法、设备及存储介质
Abdul-Jabbar Secure QR-code generation in healthcare
Sharad Mangrulkar et al. Essentials of Blockchain Programming
Haunts et al. Final Summary
CN117114875A (zh) 一种证券交易对账方法、系统、电子设备及存储介质
CN116866029A (zh) 随机数加密数据传输方法、装置、计算机设备及存储介质
CN111052206A (zh) 秘密计算装置、秘密计算方法、程序以及记录介质
Anjali et al. ASIDS-Authenticated Secure and Integral Data Storage in Cloud

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230810

Address after: No. 1303, 13th Floor, Building 1, No. 166 Tianfu Second Street, Chengdu High tech Zone, China (Sichuan) Pilot Free Trade Zone, Chengdu, Sichuan, 610095

Patentee after: Chengdu Tongchuang Jialian Technology Co.,Ltd.

Address before: 571924 building 8830, Hainan eco software Walker Park, Haikou old town high tech Industrial Demonstration Park, Hainan Province

Patentee before: HAINAN XINRUAN SOFTWARE Co.,Ltd.