一种区块链加密方法、装置及系统与流程

文档序号:20039131发布日期:2020-02-28 11:41阅读:191来源:国知局
一种区块链加密方法、装置及系统与流程

本公开涉及计算机安全技术领域,尤其涉及一种区块链加密方法、装置及系统。



背景技术:

区块链是一种基于加密技术的低成本、高安全、可定制和封装的去中心化信任解决工具,也是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术在互联网时代的创新应用模式。区块链省去了区块链中心记录保存的需要,因为分类账是公开的,每个人都可以轻松进入,每个人都可以轻松获取准入权利。为了保护比特币和其他加密货币的交易安全,需要密钥和公钥两种密钥。其中,公钥在日志中永久共享,用于签名和加密信息;密钥只有用户知道,可以充当pin码,接收者可以用密钥解码信息,这两个密钥的结合可以构成数字签名。密钥的安全性防护对于区块链安全性起着至关重要的作用。

区块链的底层依赖于密码学来保证去中心化和可信任机制,比特币中使用基于ecp256k1椭圆曲线数学的公钥密码学算法进行签名与验证签名,一方面可以保证用户的账户不被冒名顶替,另一方面保证用户不能否认其所签名的交易。对称加密算法比特币官方客户端使用ae对称分组密码算法加密钱包文件,用户设置密码后,采用用户设置饿密码通过ae对钱包密钥进行加密,确保客户端密钥的安全。现有的区块链密钥保护方法在一定程度上可提高区块链交易过程的安全性,但对于处于关键因素的密钥,根据保护方法客户端密钥容易泄露了,密钥的安全性也难以得到保障。



技术实现要素:

本申请提供一种区块链加密方法、装置及系统,为解决现有的区块链密钥保护方法在一定程度上可提高区块链交易过程的安全性,但对于处于关键因素的密钥,根据保护方法客户端密钥容易泄露了,密钥的安全性也难以得到保障的问题。

本申请的第一方面,提供一种区块链加密方法,所述方法应用于可信服务器,包括:步骤101:从客户端接收可信服务器加密请求,所述可信服务器加密请求包含客户端子密钥;步骤102:判断所述可信服务器加密请求和所述客户端子密钥是否正确;步骤103:如果所述可信服务器加密请求和所述客户端子密钥中的任意一项不正确,则重新进行步骤101,如果所述可信服务器加密请求和所述客户端子密钥均正确,则根据所述客户端子密钥生成可信服务器子密钥且进行步骤104;步骤104:向密钥白盒系统发送白盒加密请求,所述白盒加密请求包含所述可信服务器子密钥;步骤105:判断所述白盒加密请求和所述可信服务器子密钥是否正确;步骤106:如果所述白盒加密请求和所述可信服务器子密钥中的任意一项不正确,则重新进行步骤101,如果所述白盒加密请求和所述可信服务器子密钥均正确,则根据所述可信服务器子密钥生成白盒子密钥。

结合第一方面,在第一种可能的实现方式中,所述步骤101之前还包括:根据签名值、mac地址、ip地址、硬件序列号和密钥口令利用hash算法计算得到所述客户端子密钥。

结合第一种可能的实现方式,在第二种可能的实现方式中,所述签名值采用真随机数生成器生成。

结合第一方面,在第三种可能的实现方式中,所述方法还包括:步骤201:从密钥白盒系统接收白盒解密请求,所述白盒解密请求包含所述白盒解密密钥;步骤202:判断所述白盒解密请求和所述白盒解密密钥是否正确;步骤203:如果所述白盒解密请求和所述白盒解密密钥中的任意一项不正确,则重复进行步骤201,如果所述白盒解密请求和所述白盒解密密钥均正确,则根据所述白盒解密密钥生成可信服务器解密密钥且进行步骤204;步骤204:向所述客户端发送可信服务器解密请求,所述可信服务器解密请求包含所述可信服务器解密密钥;步骤205:判断所述可信服务器解密请求和所述可信服务器解密密钥是否正确;步骤206:如果所述可信服务器解密请求和所述可信服务器解密密钥中的任意一项不正确,则重复进行步骤201,如果所述可信服务器和所述可信服务器解密密钥均正确,则根据所述可信服务器解密密钥生成所述客户端解密密钥。

本申请的第二方面,提供一种区块链加密装置,所述装置包括:可信服务器加密请求接收单元,用于从客户端接收可信服务器加密请求,所述可信服务器加密请求包含客户端子密钥;第一判断单元,用于判断所述可信服务器加密请求和所述客户端子密钥是否正确;可信服务器子密钥生成单元,用于如果所述可信服务器加密请求和所述客户端子密钥均正确,则根据所述客户端子密钥生成可信服务器子密钥;白盒加密请求发送单元,用于向密钥白盒系统发送白盒加密请求,所述白盒加密请求包含所述可信服务器子密钥;第二判断单元,用于判断所述白盒加密请求和所述可信服务器子密钥是否正确;白盒子密钥生成单元,用于如果所述白盒加密请求和所述可信服务器子密钥均正确,则根据所述可信服务器子密钥生成白盒子密钥。

结合第二方面,在第四种可能的实现方式中,所述装置还包括:客户端子密钥生成单元,用于根据签名值、mac地址、ip地址、硬件序列号和密钥口令利用hash算法计算得到所述客户端子密钥。

结合第四种可能的实现方式,在第五种可能的实现方式中,所述签名值采用真随机数生成器生成。

结合第二方面,在第六种可能的实现方式中,所述装置还包括:白盒解密请求接收单元,用于从密钥白盒系统接收白盒解密请求,所述白盒解密请求包含所述白盒解密密钥;第三判断单元,用于判断所述白盒解密请求和所述白盒解密密钥是否正确;可信服务器解密密钥生成单元,用于如果所述白盒解密请求和所述白盒解密密钥均正确,则根据所述白盒解密密钥生成可信服务器解密密钥;可信服务器解密请求单元,用于向所述客户端发送可信服务器解密请求,所述可信服务器解密请求包含所述可信服务器解密密钥;第四判断单元,用于判断所述可信服务器解密请求和所述可信服务器解密密钥是否正确;客户端解密密钥生成单元,用于如果所述可信服务器和所述可信服务器解密密钥均正确,则根据所述可信服务器解密密钥生成所述客户端解密密钥。

本申请的第三方面,提供一种区块链加密系统,所述系统包括:客户端、可信服务器和密钥白盒系统,所述客户端与所述可信服务器相互通信,所述可信服务器与所述密钥白盒系统相互通信。

结合第三方面,在第七种可能的实现方式中,所述系统还包括随机数生成器,所述随机数生成器与所述客户端相互通信,所述随机数生成器包括对随机数生成模块和随机数存储模块,所述随机数生成模块用于生成随机数,所述随机数生成模块包括温度传感器、磁场传感器和噪声传感器,所述随机数存储模块用于存储所述随机数生成模块生成的随机数。

本申请实施例提供的技术方案可以包括以下有益效果:步骤101:从客户端接收可信服务器加密请求,所述可信服务器加密请求包含客户端子密钥;步骤102:判断所述可信服务器加密请求和所述客户端子密钥是否正确;步骤103:如果所述可信服务器加密请求和所述客户端子密钥中的任意一项不正确,则重新进行步骤101,如果所述可信服务器加密请求和所述客户端子密钥均正确,则根据所述客户端子密钥生成可信服务器子密钥且进行步骤104;步骤104:向密钥白盒系统发送白盒加密请求,所述白盒加密请求包含所述可信服务器子密钥;步骤105:判断所述白盒加密请求和所述可信服务器子密钥是否正确;步骤106:如果所述白盒加密请求和所述可信服务器子密钥中的任意一项不正确,则重新进行步骤101,如果所述白盒加密请求和所述可信服务器子密钥均正确,则根据所述可信服务器子密钥生成白盒子密钥。与现有技术相比,本申请通过设置多个客户端、可信服务器和白盒系统多个服务器参与,密钥的生成需要多个不同权限的服务器参与生成,从而降低单一服务器被控带来的安全风险,生成的密钥不容泄露,从而保证密钥的安全性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为本申请实施例提供的区块链加密方法的工作流程示意图;

图2是本申请实施例提供的区块链解密方法的工作流程示意图;

图3是本申请实施例提供的区块链加密装置的框架图;

图4是本申请实施例提供的区块链加密系统的框架图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

本申请的第一方面,提供一种区块链加密方法,如图1所示,所述方法包括以下步骤:

步骤101,从客户端接收可信服务器加密请求,所述可信服务器加密请求包含客户端子密钥。从私钥的整个生命周期来看,区块链私钥的安全涉及私钥的生成、存储、使用、找回、销毁、更新等几个环节,想要确保去中心化和可信任机制,关键的一个环节是保护私钥的安全性。本发明从以下几个方面进行安全分析:硬件模块抗拆毁、抗功耗分析、错误注入攻击等侧信道分析能力;随机数生成算法强度,随机数发生器产生随机数的随机性;密钥与密钥参与运算过程都在硬件当中;密钥导入导出过程全在硬件中实现;密钥恢复与备份;主要关注加密货币,私钥通过助记符来协助恢复。

其中,步骤101之前还包括:根据签名值、mac地址、ip地址、硬件序列号和密钥口令利用hash算法计算得到所述客户端子密钥。即客户端向可信服务器发起加密请求时,同时提交客户端子密钥,客户端子密钥是根据上述的参数和算法综合生成。密钥口令客户可以根据需要实时设置。将这些参数输入到客户端根据hash算法即可生成客户端子密钥。比如用户设置的口令a,口令a作为客户端子密钥的生成参数输入到客户端生成客户端子密钥a。

步骤102:判断所述可信服务器加密请求和所述客户端子密钥是否正确;

步骤103:如果所述可信服务器加密请求和所述客户端子密钥中的任意一项不正确,则重新进行步骤101,如果所述可信服务器加密请求和所述客户端子密钥均正确,则根据所述客户端子密钥生成可信服务器子密钥且进行步骤104;

判断所述可信服务器加密请求和所述客户端子密钥是否正确是指提交的可信服务器加密请求和客户端子密钥是否存在错误,比如判断提交的可信服务器加密请求是否是具有加密权限的客户端发送的。可信服务器加密请求中包含的客户端子密钥包含了签名值、mac地址、ip地址、硬件序列号和密钥口令几个参数,可以通过识别mac地址来判断是否是具有加密权限的客户端发送的。也可以通过可信服务器加密请求中的ip地址判断当前发送的可信服务器加密请求是否是处于可进行加密的场景或者位置。如果ip地址不符合可加密的场景或者位置,比如用户的手机丢失,手机所使用的网络的ip地址不是常用的ip地址,则不符合可加密的场景或位置,将不能继续进行加密操作。如果获取的可信服务器加密请求的各个参数均符合可加密的条件,即可信服务器加密请求和客户端子密钥均正确,则判断可继续进行加密操作即生成可信服务器子密钥。根据上述的客户端子密钥a可以结合可信服务器内部存储的口令k生成可信服务器子密钥ka。

步骤104:向密钥白盒系统发送白盒加密请求,所述白盒加密请求包含所述可信服务器子密钥;

步骤105:判断所述白盒加密请求和所述可信服务器子密钥是否正确;

步骤106:如果所述白盒加密请求和所述可信服务器子密钥中的任意一项不正确,则重新进行步骤101,如果所述白盒加密请求和所述可信服务器子密钥均正确,则根据所述可信服务器子密钥生成白盒子密钥。

生成可信服务器子密钥ka后,可信服务器向密钥白盒系统发送白盒密钥请求,其中发送的白盒密钥请求中包含了可信服务器子密钥。接着判断白盒加密请求和可信服务器子密钥是否正确,具体的可以是,判断白盒加密请求是否是指定的可信服务器发出的,可以通过携带的pc地址来判断是否是指定的可信服务器,判断发出的可信服务器子密钥是否是在步骤103生成的可信服务器子密钥ka,如果如果不是则可能表示该白盒密钥请求不是指定可信服务器发出的或者接收到的可信服务器子密钥不是在步骤103生成的可信服务器子密钥ka,因此该白盒密钥请求和包含的可信服务器子密钥不可用,不能用于下一步密钥的生成,则重新进行步骤101。如果经过判断白盒加密请求是指定的可信服务器发出的并且包含的可信服务器子密钥是步骤103生成的可信服务器子密钥ka,则可以进行下一步的密钥生成。将收到的可信服务器子密钥ka作为生成白盒子密钥的一部分,最后得到白盒子密钥kab。

可信后台服务器接收到客户端发来的加密需求时会自动生成白盒密钥,生成过程需要接收区块链密钥随机数生成装置生成的签名值、客户端发送的子密钥、服务器端自身的子密钥信息作为输入,由客户端和服务器端协同产生,且子密钥由客户端和服务器分别存储保管。白盒子密钥传入相匹配的白盒库,通过白盒库进行正常加密或解密功能,白盒库根据验证结果的正确性,自动化更新白盒库中的数据。

本申请实施例提供的技术方案可以包括以下有益效果:步骤101:从客户端接收可信服务器加密请求,所述可信服务器加密请求包含客户端子密钥;步骤102:判断所述可信服务器加密请求和所述客户端子密钥是否正确;步骤103:如果所述可信服务器加密请求和所述客户端子密钥中的任意一项不正确,则重新进行步骤101,如果所述可信服务器加密请求和所述客户端子密钥均正确,则根据所述客户端子密钥生成可信服务器子密钥且进行步骤104;步骤104:向密钥白盒系统发送白盒加密请求,所述白盒加密请求包含所述可信服务器子密钥;步骤105:判断所述白盒加密请求和所述可信服务器子密钥是否正确;步骤106:如果所述白盒加密请求和所述可信服务器子密钥中的任意一项不正确,则重新进行步骤101,如果所述白盒加密请求和所述可信服务器子密钥均正确,则根据所述可信服务器子密钥生成白盒子密钥。与现有技术相比,本申请通过设置多个客户端、可信服务器和白盒系统多个服务器参与,密钥的生成需要多个不同权限的服务器参与生成,从而降低单一服务器被控带来的安全风险,生成的密钥不容泄露,从而保证密钥的安全性。

进一步的,本申请的签名值采用真随机数生成器生成。

随机数是以现代密码学为基础的信息安全系统的基石,高质量的随机数的核心是“不可预测性”。随机数分为两种:伪随机和真随机。伪随机一般依靠种子和算法,知道种子或者已经产生的随机数,可以获得接下来的随机数,具有可预测性。当前主流的区块链系统是用伪随机数生成方法生成私钥,安全性堪忧。随机数生成模块内置温度传感器、磁场传感器、噪声传感器,能够根据外界的温度、电压、电磁场、环境噪声等产生随机数,是一种真随机数的产生方法,随机的不可预测性大大增加。

进一步的,如图2所示,本申请的方法还包括区块链解密方法:

步骤201:从密钥白盒系统接收白盒解密请求,所述白盒解密请求包含所述白盒解密密钥;

步骤202:判断所述白盒解密请求和所述白盒解密密钥是否正确;

步骤203:如果所述白盒解密请求和所述白盒解密密钥中的任意一项不正确,则重复进行步骤201,如果所述白盒解密请求和所述白盒解密密钥均正确,则根据所述白盒解密密钥生成可信服务器解密密钥且进行步骤204。

经过上述步骤101至步骤106分别设置了客户端解密密钥a、可信服务器解密密钥ka和白盒解密密钥kab。首先从密钥白盒系统接收白盒解密请求,白盒解密请求中同样包含了白盒解密密钥。判断白盒解密请求是否是指定白盒发出的解密请求,并且判断包含的白盒解密密钥是否是步骤101至步骤106设置的白盒解密密钥kab。如果其中之一不符合则不能实现解密操作,如果该白盒解密请求是指定白盒发出的解密请求且白盒解密密钥与步骤101至步骤106设置的白盒解密密钥kab相匹配,则可以实现初步的解密操作,生成可信服务器解密密钥。

步骤204:向所述客户端发送可信服务器解密请求,所述可信服务器解密请求包含所述可信服务器解密密钥;

步骤205:判断所述可信服务器解密请求和所述可信服务器解密密钥是否正确;

步骤206:如果所述可信服务器解密请求和所述可信服务器解密密钥中的任意一项不正确,则重复进行步骤201,如果所述可信服务器和所述可信服务器解密密钥均正确,则根据所述可信服务器解密密钥生成所述客户端解密密钥。

经过上述的初步解密步骤,进一步解密,首先向所述客户端发送可信服务器解密请求,所述可信服务器解密请求包含所述可信服务器解密密钥。之后判断该可信服务器解密请求是否是指定可信服务器发出的,并且包含的可信服务器解密密钥与步骤101至步骤106生成的可信服务器子密钥ka是否匹配,如果该可信服务器解密请求不是指定的可信服务器发出的或者包含的可信服务器解密密钥与可信服务器子密钥ka不相匹配,则不能继续进行解密操作。如果该可信服务器解密请求是指定的可信服务器发出的且包含的可信服务器解密密钥与可信服务器子密钥ka相匹配,则可继续进行解密操作,并且生成客户端解密密钥。最后还可以继续判断客户端解密密钥与步骤101至步骤106生成的客户端子密钥a是否匹配,如果客户端解密密钥与客户端子密钥a相匹配,则最终解密成功。

通过一种基于白盒算法的区块,结合服务器子密钥,协同输入白盒密钥系统,完成私钥的生成,从而当面临用户的口令被窃取、用户硬件设备被窃取、可信服务器被攻击时,只有攻击者完成三方的数据同时窃取时,才可能解密获取私钥,明显降低私钥被窃取的概率,增加私钥的保护程度,有效的保护用户的数字货币资产。

为了实现上述方法实施例,如图3所示,本申请的第二方面提供一种区块链加密装置,所述装置包括:

可信服务器加密请求接收单元1001,用于从客户端接收可信服务器加密请求,所述可信服务器加密请求包含客户端子密钥;

第一判断单元1002,用于判断所述可信服务器加密请求和所述客户端子密钥是否正确;

可信服务器子密钥生成单元1003,用于如果所述可信服务器加密请求和所述客户端子密钥均正确,则根据所述客户端子密钥生成可信服务器子密钥;

白盒加密请求发送单元1004,用于向密钥白盒系统发送白盒加密请求,所述白盒加密请求包含所述可信服务器子密钥;

第二判断单元1005,用于判断所述白盒加密请求和所述可信服务器子密钥是否正确;

白盒子密钥生成单元1006,用于如果所述白盒加密请求和所述可信服务器子密钥均正确,则根据所述可信服务器子密钥生成白盒子密钥。

所述装置还包括:客户端子密钥生成单元1007,用于根据签名值、mac地址、ip地址、硬件序列号和密钥口令利用hash算法计算得到所述客户端子密钥。其中,所述签名值采用真随机数生成器生成。

另外,所述装置还包括:

白盒解密请求接收单元2001,用于从密钥白盒系统接收白盒解密请求,所述白盒解密请求包含所述白盒解密密钥;

第三判断单元2002,用于判断所述白盒解密请求和所述白盒解密密钥是否正确;

可信服务器解密密钥生成单元2003,用于如果所述白盒解密请求和所述白盒解密密钥均正确,则根据所述白盒解密密钥生成可信服务器解密密钥;

可信服务器解密请求单元2004,用于向所述客户端发送可信服务器解密请求,所述可信服务器解密请求包含所述可信服务器解密密钥;

第四判断单元2005,用于判断所述可信服务器解密请求和所述可信服务器解密密钥是否正确;

客户端解密密钥生成单元2006,用于如果所述可信服务器和所述可信服务器解密密钥均正确,则根据所述可信服务器解密密钥生成所述客户端解密密钥。

本申请还提供一种区块链加密系统,如图4所示,所述系统包括:客户端1、可信服务器2和密钥白盒系统3,所述客户端1与所述可信服务器2相互通信,所述可信服务器2与所述密钥白盒系统3相互通信。所述系统还可以包括随机数生成器4,所述随机数生成器4与所述客户端1相互通信,所述随机数生成器4包括随机数生成模块41和随机数存储模块42,所述随机数生成模块41用于生成随机数,所述随机数生成模块41包括温度传感器411、磁场传感器412和噪声传感器413,所述随机数存储模块42用于存储所述随机数生成模块生成的随机数。

另外,随机数存储模块42具备密钥存储功能,且为非联网的装置。常见的私钥的存储和使用分为软实现和硬实现,软实现即存储和使用都以软件形式,密钥生成后作为文件或字符串保存在用户终端或者托管到服务器,使用时直接或通过简单的口令控制读取到私钥明文到内存,通过cpu完成私钥计算,这种存储和使用方式显然有很多安全风险,容易被黑客或内鬼复制、窃取、暴力破解等。本区块链密钥随机数生成器采用硬实现方式,依托专用的密码设备作为载体,有密钥保护等机制,在任何时间、任何情况下,私钥不以明文形式出现在密码设备外,密码存储设备内部存储的密钥具备密钥保护机制,防止解剖和非法读取,私钥不可导出,仅计算输出签名值。比如,将随机数存储在记忆设备中,内含检测设置,强行解剖会自毁。记忆设备是加密的,不能像普通sd卡那样直接读取,没有导出功能。输出签名是根据私钥值,使用不可逆加密算法计算得出,如:md5算法。

具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的一种基于规则的报文检测方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、rom(read-onlymemory,只读存储记忆体)或ram(randomaccememory,随机存储记忆体)等。

本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1