CN109150532A - 一种Onchain钱包私钥的加密和解密方法、装置及客户端架构 - Google Patents
一种Onchain钱包私钥的加密和解密方法、装置及客户端架构 Download PDFInfo
- Publication number
- CN109150532A CN109150532A CN201810965252.6A CN201810965252A CN109150532A CN 109150532 A CN109150532 A CN 109150532A CN 201810965252 A CN201810965252 A CN 201810965252A CN 109150532 A CN109150532 A CN 109150532A
- Authority
- CN
- China
- Prior art keywords
- private key
- onchain
- key
- symmetric encipherment
- shamir
- 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
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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial 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)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种Onchain钱包私钥的加密和解密方法、装置及客户端架构,所述客户端架构将开发语言分层,表现层采用javascript语言,动态层在Android***中采用java语言,在ios***中采用objective‑c语言,所述静态层使用c语言。所述静态层采用c语言编写,可以补充表现层和动态层在运行效率和安全性上的不足,所述静态层在三层架构中起到藏匿Onchain钱包私钥的核心作用,本申请利用三种开发语言构建了三层隔离客户端架构,保证了Onchain钱包私钥的安全,避免Onchain钱包私钥被不法分子窃取,造成用户的财产损失。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种Onchain钱包私钥的加密和解密方法、装置及客户端架构。
背景技术
目前,在数字货币生态中钱包属于非常重要的一环。钱包既是工具,也是流量入口,并且越来越多钱包的涌现也证明了这一点,现有钱包包括Offchain钱包和Onchain钱包。
Offchain钱包采用了中心化思想,钱包的私钥并不在用户手里,而是保存在中心服务器中,当用户要进行转账交易的时候需要在中心服务器中获取私钥并且由中心服务器进行签名再广播到区块链节点上,这样的架构缺点在于用户的公、私钥不受自己支配,这样的做法有违区块链网络的初衷,还是传统的互联网思维方式。为了解决用户的公钥和私钥不受自己支配问题,可以选用Onchain钱包,Onchain钱包是真正的遵循区块链去中心化思想的钱包,用户的钱包私钥管理,签名均是在钱包中完成,和服务器唯一的通信就是将签好名的hash广播到链上节点,在整个使用周期中不会泄漏私钥信息到服务器,使用户对自己的资产拥有绝对的支配权。
但是,现有的onchain钱包私钥存在安全性不高的问题,容易给用户带来财产损失。因此,如何有效地提高Onchain钱包私钥的安全性,避免用户的财产损失,成为业内亟待解决的问题。
发明内容
本申请提供了一种Onchain钱包私钥的加密和解密方法、装置及客户端架构,以解决现有的Onchain钱包私钥的安全性低,易造成用户的财产损失的问题。
第一方面,本申请提供一种Onchain钱包私钥的客户端架构,所述架构包括表现层、动态层和静态层;
所述表现层采用javascript语言,用于图形界面展示,提供UI交互接口;
所述动态层采用java语言或objective-c语言,用于连接所述表现层和所述静态层;
所述静态层采用c语言将非对称加密算法公钥和私钥,编译成静态库,用于被所述动态层调用。
第二方面,本申请提供一种Onchain钱包私钥的加密方法,所述加密方法包括:
接收Onchain钱包私钥申请加密进入数据库的请求;
获取数据库中对称加密算法秘钥密文;
获取静态库中非对称加密算法私钥;
基于非对称加密算法私钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
基于对称加密算法私钥明文,加密所述Onchain钱包私钥;
将加密后的所述Onchain钱包私钥存储至数据库中。
结合第二方面,在第二方面的第一种可实现方式中,在所述接收Onchain钱包私钥申请加密进入数据库的请求之前,所述加密方法还包括:
获取APP发送的信号;
判断所述信号是否为启动信号;
如果所述信号为启动信号,随机生成一个对称加密算法秘钥明文;
获取静态库中非对称加密算法公钥;
基于非对称加密算法公钥,加密所述对称加密算法秘钥明文,得到对称加密算法秘钥密文,存储至数据库中。
结合第二方面的第一种可实现方式中,在第二方面的第二种可实现方式中,在所述接收Onchain钱包私钥申请加密进入数据库的请求之前,所述加密方法还包括:
生成一对非对称加密算法秘钥,其中,所述一对非对称加密算法秘钥包括非对称加密算法公钥和私钥,编译成静态库,存储至静态层。
结合第二方面的第一种可实现方式中,在第二方面的第三种可实现方式中,所述随机生成一个对称加密算法秘钥明文的方法包括AES算法。
结合第二方面的第二种可实现方式中,在第二方面的第四种可实现方式中,所述生成一对非对称加密算法秘钥的方法包括RSA算法。
第三方面,本申请提供一种Onchain钱包私钥的解密方法,所述解密方法包括:
接收Onchain钱包私钥申请解密输出数据库的请求;
获取数据库中对称加密算法秘钥密文;
获取静态库中非对称加密算法公钥;
基于非对称加密算法公钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
基于对称加密算法私钥明文,解密数据库中所述Onchain钱包私钥;
将解密后的所述Onchain钱包私钥返回给表现层。
第四方面,本申请提供一种Onchain钱包私钥的加密装置,所述加密装置包括:
第一接收单元,用于接收Onchain钱包私钥申请加密进入数据库的请求;
第一获取单元,用于获取数据库中对称加密算法秘钥密文;
第二获取单元,用于获取静态库中非对称加密算法私钥;
第一解密单元,用于基于非对称加密算法私钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
第一加密单元,用于基于对称加密算法私钥明文,加密所述Onchain钱包私钥;
第一存储单元,用于将加密后的所述Onchain钱包私钥存储至数据库中。
结合第四方面,在第四方面的第一种可实现方式中,在所述第一接收单元之前,所述加密装置还包括:
第三获取单元,用于获取APP发送的信号;
判断单元,用于判断所述信号是否为启动信号;
第一生成单元,用于如果所述信号为启动信号,随机生成一个对称加密算法秘钥明文;
第四获取单元,用于获取静态库中非对称加密算法公钥;
第二存储单元,用于基于非对称加密算法公钥,加密所述对称加密算法秘钥明文,得到对称加密算法秘钥密文,存储至数据库中。
结合第四方面的第一种可实现方式中,在第四方面的第二种可实现方式中,在所述第一接收单元之前,所述加密装置还包括:
第二生成单元,用于生成一对非对称加密算法秘钥,其中,所述一对非对称加密算法秘钥包括非对称加密算法公钥和私钥,编译成静态库,存储至静态层。
结合第四方面的第一种可实现方式中,在第四方面的第三种可实现方式中,所述随机生成一个对称加密算法秘钥明文的方法包括AES算法。
结合第四方面的第二种可实现方式中,在第四方面的第四种可实现方式中,所述生成一对非对称加密算法秘钥的方法包括RSA算法。
第五方面,本申请提供一种Onchain钱包私钥的解密装置,所述解密装置包括:
第二接收单元,用于接收Onchain钱包私钥申请解密输出数据库的请求;
第五获取单元,用于获取数据库中对称加密算法秘钥密文;
第六获取单元,用于获取静态库中非对称加密算法公钥;
第二解密单元,用于基于非对称加密算法公钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
第三解密单元,用于基于对称加密算法私钥明文,解密数据库中所述Onchain钱包私钥;
返回单元,用于将解密后的所述Onchain钱包私钥返回给表现层。
由以上技术方案可知,本申请的一种Onchain钱包私钥的加密和解密方法、装置及客户端架构,所述客户端架构将开发语言分层,表现层采用javascript语言,动态层在Android***中采用java语言,在ios***中采用objective-c语言,所述静态层使用c语言。所述静态层采用c语言编写,可以补充表现层和动态层在运行效率和安全性上的不足,所述静态层在三层架构中起到藏匿Onchain钱包私钥的核心作用,本申请利用三种开发语言构建了三层隔离客户端架构,保证了Onchain钱包私钥的安全,避免Onchain钱包私钥被不法分子窃取,造成用户的财产损失。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种Onchain钱包私钥的客户端架构实施例的结构图;
图2为本申请提供的一种Onchain钱包私钥的加密方法第一实施例的流程图;
图3为本申请提供的一种Onchain钱包私钥的加密方法第二实施例的流程图;
图4为本申请提供的一种Onchain钱包私钥的解密方法实施例的流程图;
图5为本申请提供的一种Onchain钱包私钥的加密装置的结构框图;
图6为本申请提供的一种Onchain钱包私钥的解密装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。
请参阅图1,为本申请提供的一种Onchain钱包私钥的客户端架构实施例的结构图,所述架构包括表现层101、动态层102和静态层103;
具体的,本申请实施例通过对Onchain钱包对安全性的要求,有针对性的设计客户端开发框架结构,保证客户端中的Onchain钱包私钥信息不能从客户端外部获取,以达到提高Onchain钱包安全性的目的。为了保证客户端的开发效率、运行效率、发布成本和安全性,单一语言不能满足保证Onchain钱包私钥安全的客户端架构的开发语言要求,因此需要将客户端的开发语言进行分层。
所述表现层101采用javascript语言,用于图形界面展示,提供UI交互接口;
需要说明的是,JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能,现在也可以在APP上增加动态功能。JavaScript语言兼容性好,可以运行在几乎所有的设备上,并且支持热更新,可以降低应用的发布成本。
所述动态层102采用java语言或objective-c语言,用于连接所述表现层101和所述静态层103;
具体的,动态层102在Android***中采用java语言,在ios***中采用objective-c语言。所述动态层102用于连接所述表现层101和所述静态层103的的通信。所述动态层102和静态层103使用的语言在运行前都需要编译,所以动态层102和静态层103都不可以从外部篡改,动态层102和静态层103的安全性均高于表现层101。
所述静态层103采用c语言将非对称加密算法公钥和私钥,编译成静态库。所述静态库可以被所述动态层102调用。
具体的,非对称加密算法需要两个密钥:非对称加密算法公开密钥(简称非对称加密算法公钥)和非对称加密算法私有密钥(简称非对称加密算法私钥)。非对称加密算法公钥与非对称加密算法私钥是一对,如果用非对称加密算法公钥对数据进行加密,只有用对应的非对称加密算法私钥才能解密;如果用非对称加密算法私钥对数据进行加密,那么只有用对应的非对称加密算法公钥才能解密。
需要说明的是,利用c语言将非对称加密算法秘钥编译成静态库,可以补充所述表现层101和所述动态层102在运行效率和安全性上的不足。所述静态层103在三层架构中藏匿所述Onchain钱包私钥起到核心作用,所述静态层可以被动态层102调用。
本申请实施例中,表现层101使用的JavaScript语言,兼容性好,可以运行在几乎所有的设备上,并且支持热更新,可以降低应用的发布成本。而所述表现层101的脚本语言的源代码可能会被篡改,但是在动态层102的java语言或objective-c语言和静态层103的c语言的防护下,所述表现层101的安全性极大提高。所以,本申请实施例中的客户端架构既能保证Onchain钱包私钥的安全性,又能降低发布成本、提高运行效率,最终,避免不法分子对Onchain钱包私钥窃取,造成用户的财产损失。
本申请实施例的客户端架构主要用于保证Onchain钱包私钥安全,所述表现层101中不出现任何的加密、解密逻辑;表现层101、动态层102中均不出现任何的敏感字符串信息,如加密算法的公钥、私钥等;一切加密、解密算法都放在表现层101中,表现层101采用java语言和objective-c语言中内建的代码库可以很快的实现相关算法,如果时间允许也可以在静态层103实现加密、解密算法。
由以上实施例可知,本申请的一种Onchain钱包私钥的客户端架构实施例,将客户端的开发语言分层,表现层101采用javascript架构,动态层102在Android***中采用java语言,在ios***中采用objective-c语言,所述静态层103使用c语言。所述静态层103采用c语言编写,可以补充表现层101和动态层102在运行效率和安全性上的不足,所述静态层103在三层架构中起到藏匿Onchain钱包私钥的核心作用。本申请实施例利用三种不同的语言构建三层隔离客户端架构,保证了Onchain钱包私钥的安全,避免了Onchain钱包私钥被不法分子窃取,造成用户财产损失。
请参阅图2,为本申请提供的一种Onchain钱包私钥的加密方法第一实施例的流程图,所述加密方法包括:
步骤201,接收Onchain钱包私钥申请加密进入数据库的请求。
具体的,由于用户的钱包私钥管理都是在Onchain钱包中,当Onchain钱包的地址和Onchain钱包私钥在一开始创建时,就要对Onchain钱包私钥第一时间进行加密存,并存储进数据库,所以Onchain钱包私钥会有申请加密进入数据库的请求,此时,表现层将要加密的Onchain钱包私钥提交给动态层。
步骤202,获取数据库中对称加密算法秘钥密文;
具体的,预先生成对称加密算法秘钥密文,存放在数据库中。当接收到Onchain钱包私钥申请加密进入数据库的请求时,动态层获取数据库中预先生成的对称加密算法秘钥密文。所述对称加密算法秘钥以密文的形式存储在所述数据库中,可以增加对称加密算法秘钥的安全性。
步骤203,获取静态库中非对称加密算法私钥;
具体的,预先生成所述非对称加密算法私钥,存储至所述静态层的静态库。当接收到所述Onchain钱包私钥申请加密进入数据库的请求时,获取静态库中非对称加密算法私钥。
步骤204,基于非对称加密算法私钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
具体的,加密所述Onchain钱包私钥利用的是对称加密算法私钥明文,但是在对称加密算法私钥明文存储时是以对称加密算法私钥密文的形式存储在数据库中的,所以在加密所述Onchain钱包私钥之前,首先需要对从数据库中获取的对称加密算法秘钥密文解密,本申请实施例,利用非对称加密算法私钥解密对称加密算法秘钥密文。
步骤205,基于对称加密算法私钥明文,加密所述Onchain钱包私钥;
具体的,利用对称加密算法私钥明文,加密所述Onchain钱包私钥,可以增加所述Onchain钱包私钥加密的安全性。
另外,加密所述Onchain钱包私钥的对称加密算法私钥明文是以对称加密算法私钥密文的形式在所述数据库中存储的,这样,可以保证加密所述Onchain钱包私钥的对称加密算法私钥明文的安全性。
步骤206,将加密后的所述Onchain钱包私钥存储至数据库中。
本申请实施例中,利用对称加密算法私钥明文,加密所述Onchain钱包私钥后,将加密后的所述Onchain钱包私钥存储至数据库中,完成Onchain钱包私钥的存储。
由以上实施例可知,本申请的一种Onchain钱包私钥的加密方法第一实施例,当接收到Onchain钱包私钥申请加密进入数据库的请求时,获取数据库中预先生成的对称加密算法秘钥密文;获取静态库中预先生成的非对称加密算法私钥;基于非对称加密算法私钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;基于对称加密算法私钥明文,加密所述Onchain钱包私钥;将加密后的所述Onchain钱包私钥存储至数据库中。加密所述Onchain钱包私钥的对称加密算法私钥明文是以对称加密算法私钥密文的形式在所述数据库中存储的,这样,当需要加密所述Onchain钱包私钥时,首先需要解密所述对称加密算法私钥密文,可以保证加密所述Onchain钱包私钥的对称加密算法私钥明文的安全性,进而提高了Onchain钱包私钥的安全。
请参阅图3,为本申请提供的一种Onchain钱包私钥的加密方法第二实施例的流程图,该第二实施例与第一实施例的不同之处在于,在所述接收Onchain钱包私钥申请加密进入数据库的请求之前,所述加密方法还包括:
步骤301、获取APP发送的信号;
步骤302、判断所述信号是否为启动信号;
步骤303、如果所述信号为启动信号,随机生成一个对称加密算法秘钥明文;
具体的,APP(英文全称:Application,中文:应用),当应用启动时,随机生成一个对称加密算法秘钥明文,所述对称加密算法秘钥明文用于Onchain钱包私钥加密。
步骤304、获取静态库中非对称加密算法公钥;
具体的,所述非对称加密算法公钥为预先生成的,并存储在静态层的静态库中。
步骤305、基于非对称加密算法公钥,加密所述对称加密算法秘钥明文,得到对称加密算法秘钥密文,存储至数据库中。
具体的,利用非对称加密算法公钥,对对称加密算法秘钥明文加密,得到对称加密算法秘钥密文。将所述对称加密算法秘钥密文存储在所述数据库中,便于加密Onchain钱包私钥时调用。
由以上实施例可知,本申请的一种Onchain钱包私钥的加密方法第二实施例,当APP开启时,随机生成一个对称加密算法秘钥明文,获取静态库中非对称加密算法公钥,利用静态库中非对称加密算法公钥加密所述对称加密算法秘钥明文,得到对称加密算法密文,存储至数据库中。所述对称加密算法明文用于对Onchain钱包私钥加密,如果对称加密算法明文以明文形式,存储在所述数据库中,会加大对称加密算法明文被泄漏的风险,本申请以加密算法密文的形式存储在所述数据库中,提高了对称加密算法明文的安全性,进而提高了Onchain钱包私钥的安全。
本申请提供的一种Onchain钱包私钥的加密方法第三实施例,该第三实施例与第二实施例的不同之处在于,在所述接收Onchain钱包私钥申请加密进入数据库的请求之前,所述加密方法还包括:
生成一对非对称加密算法秘钥,其中,所述一对非对称加密算法秘钥包括非对称加密算法公钥和私钥,编译成静态库,存储至静态层。
本申请实施例中,所述非对称加密算法公钥用于加密所述对称加密算法明文,得到对称加密算法密文。所述非对称加密算法私钥用于解密所述对称加密算法密文,得到对称加密算法明文。利用非对称加密算法秘钥,可以提高对称加密算法明文的安全性。
由以上实施例可知,本申请的一种Onchain钱包私钥的加密方法第三实施例,生成一对非对称加密算法秘钥,编译成静态库,存储至静态层。所述静态库中的非对称加密算法私钥和公钥可以用做对称加密算法密文的解密和对称加密算法明文的加密,非对称加密算法秘钥的使用可以提高对称加密算法明文的安全性。
本申请提供的一种Onchain钱包私钥的加密方法第四实施例,该第四实施例与第二实施例的不同之处在于,所述随机生成一个对称加密算法秘钥明文的方法包括AES算法。
具体的,A ES(英文全称:Advanced Encryption Standard,中文:高级加密标准),AES算法采用对称分组密码体制,密钥长度的最少支持为128、192,以及256,分组长度128位,AES算法易于各种硬件和软件实现。AES具有简单、有利于并行计算,以及误差不会被扩散的优势。
由以上实施例可知,本申请的一种Onchain钱包私钥的加密方法第四实施例,所述随机生成一个对称加密算法秘钥明文的方法包括AES算法,AES算法具有简单、有利于并行计算,以及误差不会被扩散的优势。
本申请提供的一种Onchain钱包私钥的加密方法第五实施例,该第五实施例与第三实施例的不同之处在于,所述生成一对非对称加密算法秘钥的方法包括RSA算法。
具体的,RSA算法的秘钥很长,加密的计算量比较大,安全性较高。所以,利用RSA算法生成的一对非对称加密算法秘钥,加密对称加密算法秘钥明文或者解密对称加密算法秘钥密文的过程中,加密和解密的安全性都非常高。
由以上实施例可知,本申请的一种Onchain钱包私钥的加密方法第五实施例,所述生成一对非对称加密算法秘钥的方法包括RSA算法,所述RSA算法具有安全性较高的优势,极大程度上保证非对称加密算法公钥和非对称加密算法私钥的安全性。
请参阅图4,为本申请提供的一种Onchain钱包私钥的解密方法实施例的流程图,所述解密方法包括:
步骤401,接收Onchain钱包私钥申请解密输出数据库的请求;
具体的,例如用户要备份助记词或Onchain钱包私钥、转账签名的时候需要通过表现层通知动态层从数据库中将Onchain钱包私钥密文信息读出,再将Onchain钱包私钥明文信息返回给表现层。此时,Onchain钱包私钥申请有解密输出数据库的请求。
步骤402,获取数据库中对称加密算法秘钥密文;
具体的,要解密Onchain钱包私钥,需要用对称加密算法秘钥明文对Onchain钱包私钥解密,所以,首先需要动态层获取所述数据库中对称加密算法秘钥密文。
所述对称加密算法秘钥密文为预先生成的存储在所述数据库中。当接收到Onchain钱包私钥的申请解密输出数据库的请求时,获取所述数据库中对称加密算法秘钥密文。
步骤403,获取静态库中非对称加密算法公钥;
预先生成所述非对称加密算法公钥,存储在所述静态层的静态库中。当接收到Onchain钱包私钥的申请解密输出数据库的请求时,获取静态库中非对称加密算法公钥。
所述预先生成所述非对称加密算法公钥的方法包括RSA算法。
具体的,RSA算法的秘钥很长,加密的计算量比较大,安全性较高。所以,对于利用RSA算法生成的一对非对称加密算法秘钥,加密对称加密算法秘钥明文或者解密对称加密算法秘钥密文的过程中,加密和解密的安全性都非常高。
步骤404,基于非对称加密算法公钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
所述Onchain钱包私钥是通过对称加密算法私钥明文加密后,储存至数据库中的。所以需要对对称加密算法秘钥密文解密成对称加密算法秘钥明文后,才能对所述Onchain钱包私钥解密,所以,所述步骤404利用非对称加密算法公钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文。
步骤405,基于对称加密算法私钥明文,解密数据库中所述Onchain钱包私钥;
利用对称加密算法私钥明文,解密所述数据库中所述Onchain钱包私钥,可以增加所述Onchain钱包私钥解密的安全性。
在解密数据库中所述Onchain钱包私钥的过程中,首先对对称加密算法私钥密文解密,得到对称加密算法私钥明文,然后利用对称加密算法私钥明文,解密Onchain钱包私钥。整个过程由于添加了先解密对称加密算法私钥密文的过程,进一步提高了解密数据库中所述Onchain钱包私钥的安全性。
步骤406,将解密后的所述Onchain钱包私钥返回给表现层。
将所述Onchain钱包私钥明文信息返回给动态层的接口,用于执行后续逻辑。
由以上实施例可知,本申请的一种Onchain钱包私钥的解密方法实施例,当用户要备份助记词或Onchain钱包私钥、转账签名时,需要解密Onchain钱包私钥。此时,接收Onchain钱包私钥申请解密输出数据库的请求;获取数据库中对称加密算法秘钥密文;获取静态库中非对称加密算法公钥;基于非对称加密算法公钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;基于对称加密算法私钥明文,解密数据库中所述Onchain钱包私钥;将解密后的所述Onchain钱包私钥返回给表现层。解密所述Onchain钱包私钥的对称加密算法私钥明文是以对称加密算法私钥密文的形式在所述数据库中存储的,当需要所述Onchain钱包私钥时,首先需要对对称加密算法私钥密文解密,然后在进行所述Onchain钱包私钥的解密,该解密方法增加了解密所述Onchain钱包私钥的安全性。
请参阅图5,为本申请提供的一种Onchain钱包私钥的加密装置的结构框图,所述加密装置包括:
第一接收单元501,用于接收Onchain钱包私钥申请加密进入数据库的请求;
第一获取单元502,用于获取数据库中对称加密算法秘钥密文;
第二获取单元503,用于获取静态库中非对称加密算法私钥;
第一解密单元504,用于基于非对称加密算法私钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
第一加密单元505,用于基于对称加密算法私钥明文,加密所述Onchain钱包私钥;
第一存储单元506,用于将加密后的所述Onchain钱包私钥存储至数据库中。
在本申请提供的一种Onchain钱包私钥的加密装置的另一实施例中,在所述第一接收单元之前,所述加密装置还包括:
第三获取单元,用于获取APP发送的信号;
判断单元,用于判断所述信号是否为启动信号;
第一生成单元,用于如果所述信号为启动信号,随机生成一个对称加密算法秘钥明文;
第四获取单元,用于获取静态库中非对称加密算法公钥;
第二存储单元,用于基于非对称加密算法公钥,加密所述对称加密算法秘钥明文,得到对称加密算法秘钥密文,存储至数据库中。
在本申请提供的一种Onchain钱包私钥的加密装置的另一实施例中,在所述第一接收单元之前,所述加密装置还包括:
第二生成单元,用于生成一对非对称加密算法秘钥,其中,所述一对非对称加密算法秘钥包括非对称加密算法公钥和私钥,编译成静态库,存储至静态层。
在本申请提供的一种Onchain钱包私钥的加密装置的另一实施例中,所述随机生成一个对称加密算法秘钥明文的方法包括AES算法。
在本申请提供的一种Onchain钱包私钥的加密装置的另一实施例中,所述生成一对非对称加密算法秘钥的方法包括RSA算法。
请参阅图6,为本申请提供的一种Onchain钱包私钥的解密装置的结构框图,所述解密装置包括:
第二接收单元601,用于接收Onchain钱包私钥申请解密输出数据库的请求;
第五获取单元602,用于获取数据库中对称加密算法秘钥密文;
第六获取单元603,用于获取静态库中非对称加密算法公钥;
第二解密单元604,用于基于非对称加密算法公钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
第三解密单元605,用于基于对称加密算法私钥明文,解密数据库中所述Onchain钱包私钥;
返回单元606,用于将解密后的所述Onchain钱包私钥返回给表现层。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的Onchain钱包私钥的加密和解密方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:Read-Only Memory,简称:ROM)或随机存储记忆体(英文:Random Access Memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于Onchain钱包私钥的加密和解密方法、装置及客户端架构实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (13)
1.一种Onchain钱包私钥的客户端架构,其特征在于,所述架构包括表现层、动态层和静态层;
所述表现层采用javascript语言,用于图形界面展示,提供UI交互接口;
所述动态层采用java语言或objective-c语言,用于连接所述表现层和所述静态层;
所述静态层采用c语言将非对称加密算法公钥和私钥,编译成静态库,用于被所述动态层调用。
2.一种Onchain钱包私钥的加密方法,其特征在于,所述加密方法包括:
接收Onchain钱包私钥申请加密进入数据库的请求;
获取数据库中对称加密算法秘钥密文;
获取静态库中非对称加密算法私钥;
基于非对称加密算法私钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
基于对称加密算法私钥明文,加密所述Onchain钱包私钥;
将加密后的所述Onchain钱包私钥存储至数据库中。
3.如权利要求2所述的加密方法,其特征在于,在所述接收Onchain钱包私钥申请加密进入数据库的请求之前,所述加密方法还包括:
获取APP发送的信号;
判断所述信号是否为启动信号;
如果所述信号为启动信号,随机生成一个对称加密算法秘钥明文;
获取静态库中非对称加密算法公钥;
基于非对称加密算法公钥,加密所述对称加密算法秘钥明文,得到对称加密算法秘钥密文,存储至数据库中。
4.如权利要求3所述的加密方法,其特征在于,在所述接收Onchain钱包私钥申请加密进入数据库的请求之前,所述加密方法还包括:
生成一对非对称加密算法秘钥,其中,所述一对非对称加密算法秘钥包括非对称加密算法公钥和私钥,编译成静态库,存储至静态层。
5.如权利要求3所述的加密方法,其特征在于,所述随机生成一个对称加密算法秘钥明文的方法包括AES算法。
6.如权利要求4所述的加密方法,其特征在于,所述生成一对非对称加密算法秘钥的方法包括RSA算法。
7.一种Onchain钱包私钥的解密方法,其特征在于,所述解密方法包括:
接收Onchain钱包私钥申请解密输出数据库的请求;
获取数据库中对称加密算法秘钥密文;
获取静态库中非对称加密算法公钥;
基于非对称加密算法公钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
基于对称加密算法私钥明文,解密数据库中所述Onchain钱包私钥;
将解密后的所述Onchain钱包私钥返回给表现层。
8.一种Onchain钱包私钥的加密装置,其特征在于,所述加密装置包括:
第一接收单元,用于接收Onchain钱包私钥申请加密进入数据库的请求;
第一获取单元,用于获取数据库中对称加密算法秘钥密文;
第二获取单元,用于获取静态库中非对称加密算法私钥;
第一解密单元,用于基于非对称加密算法私钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
第一加密单元,用于基于对称加密算法私钥明文,加密所述Onchain钱包私钥;
第一存储单元,用于将加密后的所述Onchain钱包私钥存储至数据库中。
9.如权利要求8所述的加密装置,其特征在于,在所述第一接收单元之前,所述加密装置还包括:
第三获取单元,用于获取APP发送的信号;
判断单元,用于判断所述信号是否为启动信号;
第一生成单元,用于如果所述信号为启动信号,随机生成一个对称加密算法秘钥明文;
第四获取单元,用于获取静态库中非对称加密算法公钥;
第二存储单元,用于基于非对称加密算法公钥,加密所述对称加密算法秘钥明文,得到对称加密算法秘钥密文,存储至数据库中。
10.如权利要求9所述的加密装置,其特征在于,在所述第一接收单元之前,所述加密装置还包括:
第二生成单元,用于生成一对非对称加密算法秘钥,其中,所述一对非对称加密算法秘钥包括非对称加密算法公钥和私钥,编译成静态库,存储至静态层。
11.如权利要求9所述的加密装置,其特征在于,所述随机生成一个对称加密算法秘钥明文的方法包括AES算法。
12.如权利要求10所述的加密装置,其特征在于,所述生成一对非对称加密算法秘钥的方法包括RSA算法。
13.一种Onchain钱包私钥的解密装置,其特征在于,所述解密装置包括:
第二接收单元,用于接收Onchain钱包私钥申请解密输出数据库的请求;
第五获取单元,用于获取数据库中对称加密算法秘钥密文;
第六获取单元,用于获取静态库中非对称加密算法公钥;
第二解密单元,用于基于非对称加密算法公钥,解密所述对称加密算法私钥密文,得到对称加密算法私钥明文;
第三解密单元,用于基于对称加密算法私钥明文,解密数据库中所述Onchain钱包私钥;
返回单元,用于将解密后的所述Onchain钱包私钥返回给表现层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810965252.6A CN109150532A (zh) | 2018-08-23 | 2018-08-23 | 一种Onchain钱包私钥的加密和解密方法、装置及客户端架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810965252.6A CN109150532A (zh) | 2018-08-23 | 2018-08-23 | 一种Onchain钱包私钥的加密和解密方法、装置及客户端架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109150532A true CN109150532A (zh) | 2019-01-04 |
Family
ID=64791365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810965252.6A Pending CN109150532A (zh) | 2018-08-23 | 2018-08-23 | 一种Onchain钱包私钥的加密和解密方法、装置及客户端架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109150532A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110009344A (zh) * | 2019-03-08 | 2019-07-12 | 海南新软软件有限公司 | 一种备份助记词的方法、装置及*** |
CN113360885A (zh) * | 2021-06-25 | 2021-09-07 | 深圳市雪球科技有限公司 | 安全芯片的访问方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239071A (zh) * | 2014-10-13 | 2014-12-24 | 浪潮通信信息***有限公司 | 一种基于通用组件和中转服务的跨平台移动应用开发框架*** |
CN105307165A (zh) * | 2015-10-10 | 2016-02-03 | 中国民生银行股份有限公司 | 基于移动应用的通信方法、服务端和客户端 |
US20160350544A1 (en) * | 2014-10-22 | 2016-12-01 | Sze Yuen Wong | Methods And Apparatus For Sharing Encrypted Data |
CN106372464A (zh) * | 2016-08-25 | 2017-02-01 | 中山市天启智能科技有限公司 | 一种嵌入式***中静态库文件的防盗版加密方法 |
CN106506523A (zh) * | 2016-11-29 | 2017-03-15 | 济南恒大视讯科技有限公司 | 一种用于保证电子表决数据安全的处理***及方法 |
US20170185384A1 (en) * | 2015-12-28 | 2017-06-29 | Quixey, Inc. | Adaptive Function-Based Dynamic Application Extension Framework |
CN107743133A (zh) * | 2017-11-30 | 2018-02-27 | 中国石油大学(北京) | 移动终端及其基于可信安全环境的访问控制方法和*** |
CN108055125A (zh) * | 2017-11-23 | 2018-05-18 | 阿里巴巴集团控股有限公司 | 一种产品信息的加密、解密方法及装置 |
CN108123801A (zh) * | 2017-12-29 | 2018-06-05 | 重庆小犀智能科技有限公司 | 一种区块链钱包使用音频加密私钥***以及方法 |
-
2018
- 2018-08-23 CN CN201810965252.6A patent/CN109150532A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239071A (zh) * | 2014-10-13 | 2014-12-24 | 浪潮通信信息***有限公司 | 一种基于通用组件和中转服务的跨平台移动应用开发框架*** |
US20160350544A1 (en) * | 2014-10-22 | 2016-12-01 | Sze Yuen Wong | Methods And Apparatus For Sharing Encrypted Data |
CN105307165A (zh) * | 2015-10-10 | 2016-02-03 | 中国民生银行股份有限公司 | 基于移动应用的通信方法、服务端和客户端 |
US20170185384A1 (en) * | 2015-12-28 | 2017-06-29 | Quixey, Inc. | Adaptive Function-Based Dynamic Application Extension Framework |
CN106372464A (zh) * | 2016-08-25 | 2017-02-01 | 中山市天启智能科技有限公司 | 一种嵌入式***中静态库文件的防盗版加密方法 |
CN106506523A (zh) * | 2016-11-29 | 2017-03-15 | 济南恒大视讯科技有限公司 | 一种用于保证电子表决数据安全的处理***及方法 |
CN108055125A (zh) * | 2017-11-23 | 2018-05-18 | 阿里巴巴集团控股有限公司 | 一种产品信息的加密、解密方法及装置 |
CN107743133A (zh) * | 2017-11-30 | 2018-02-27 | 中国石油大学(北京) | 移动终端及其基于可信安全环境的访问控制方法和*** |
CN108123801A (zh) * | 2017-12-29 | 2018-06-05 | 重庆小犀智能科技有限公司 | 一种区块链钱包使用音频加密私钥***以及方法 |
Non-Patent Citations (2)
Title |
---|
WEIXIN_33893473: "VS2010编译链接Openssl静态库", 《CSDN》 * |
张毅: "《基于Android手机的课堂互动应用的设计和实现》", 《现代电信科技》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110009344A (zh) * | 2019-03-08 | 2019-07-12 | 海南新软软件有限公司 | 一种备份助记词的方法、装置及*** |
CN113360885A (zh) * | 2021-06-25 | 2021-09-07 | 深圳市雪球科技有限公司 | 安全芯片的访问方法和装置 |
CN113360885B (zh) * | 2021-06-25 | 2024-04-19 | 深圳市雪球科技有限公司 | 安全芯片的访问方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6941183B2 (ja) | データのトークン化 | |
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和*** | |
CN101340279B (zh) | 数据加密及解密方法、***及设备 | |
CN110245506A (zh) | 基于区块链的智能合约管理方法及装置、电子设备 | |
CN110266467B (zh) | 基于区块高度实现动态加密的方法及装置 | |
CN110032883A (zh) | 区块链中实现隐私保护的方法、***和节点 | |
CN110032884A (zh) | 区块链中实现隐私保护的方法及节点、存储介质 | |
WO2015060157A1 (ja) | 属性情報提供方法および属性情報提供システム | |
CN104967693B (zh) | 面向云存储的基于全同态密码技术的文档相似度计算方法 | |
CN110008736A (zh) | 区块链中实现隐私保护的方法及节点、存储介质 | |
CN105022966A (zh) | 数据库数据加密解密方法和*** | |
CN107248984A (zh) | 数据交换***、方法和装置 | |
CN108347404A (zh) | 一种身份认证方法及装置 | |
CN112685760A (zh) | 一种区块链上可授权的金融数据隐私处理与共享的方法 | |
CN108199847A (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN110263543A (zh) | 基于代码标注的对象级收据存储方法和节点 | |
CN109150532A (zh) | 一种Onchain钱包私钥的加密和解密方法、装置及客户端架构 | |
CN116150776A (zh) | 一种共享信息的隐私共享方法及*** | |
CN109120399A (zh) | 一种基于非对称加密的数据加密方法、解密方法及*** | |
CN104301102B (zh) | Widget通信方法、装置及*** | |
CN108270563A (zh) | 一种基于sm2加密算法的数据交换方法和*** | |
CN110502911A (zh) | 一种基于Faas云服务配置vFPGA的方法、设备以及存储介质 | |
KR20190099984A (ko) | 개인 키 관리 시스템 | |
CN109492359A (zh) | 一种用于身份认证的安全网络中间件及其实现方法和装置 | |
JP7158693B2 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190104 |
|
RJ01 | Rejection of invention patent application after publication |