区块链数据加密方法、装置、计算机设备及存储介质与流程

文档序号:18267073发布日期:2019-07-27 09:15阅读:233来源:国知局
区块链数据加密方法、装置、计算机设备及存储介质与流程

本申请涉及区块链加密技术领域,尤其涉及一种区块链数据加密方法、装置、计算机设备及计算机可读存储介质。



背景技术:

区块链网络能够实现行业之间的信息共享,但各个大公司视数据为生命,不愿意共享数据。为此,所有上传区块链的敏感数据都必须是加密的,由此才能解决大公司对数据共享的顾虑,也不至于让数据共享变成数据福利。但是传统技术中对加密数据授权方式,是采用密钥进行加密后,一旦加密数据授权给任一被授权方,被授权方即拥有对数据的全部权限,但是在实际商业需求中,这种方式降低了对区块链上数据的管理效率。



技术实现要素:

本申请实施例提供了一种区块链数据加密方法、装置、计算机设备及计算机可读存储介质,能够解决传统技术中对区块链上数据管理效率不高的问题。

第一方面,本申请实施例提供了一种区块链数据加密方法,所述方法包括:获取待加密数据;生成对应读权限的第一密钥和对应写权限的第二密钥;使用所述第一密钥对所述数据进行加密得到密文;使用所述第二密钥对所述密文进行签名;将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链。

第二方面,本申请实施例还提供了一种区块链数据加密装置,包括:第一获取单元,用于获取待加密数据;第一生成单元,用于生成对应读权限的第一密钥和对应写权限的第二密钥;加密单元,用于使用所述第一密钥对所述数据进行加密得到密文;签名单元,用于使用所述第二密钥对所述密文进行签名;上传单元,用于将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链。

第三方面,本申请实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现所述区块链数据加密方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器执行所述区块链数据加密方法。

本申请实施例提供了一种区块链数据加密方法、装置、计算机设备及计算机可读存储介质。本申请实施例实现区块链数据加密时,获取待加密数据,生成对应读权限的第一密钥和对应写权限的第二密钥,使用所述第一密钥对所述数据进行加密得到密文,使用所述第二密钥对所述密文进行签名,将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链,从而实现区块链加密数据的读权限和写权限的分离控制,使得授权方可以灵活的选择授予被授权方对加密数据的权限,从而提高区块链上对加密数据的管理效率。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的区块链数据加密方法的应用场景示意图;

图2为本申请实施例提供的区块链数据加密方法的流程示意图;

图3为本申请实施例提供的区块链数据加密方法的加密流程交互示意图;

图4为本申请实施例提供的区块链数据加密方法的数字签名流程交互示意图;

图5为本申请实施例提供的区块链数据加密方法的另一个流程示意图;

图6为本申请实施例提供的区块链数据加密方法的一个具体实施例的交互示意图;

图7为本申请实施例提供的区块链数据加密装置的示意性框图;

图8为本申请实施例提供的区块链数据加密装置的另一个示意性框图;以及

图9为本申请实施例提供的计算机设备的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1,图1为本申请实施例提供的区块链数据加密方法的应用场景示意图。所述应用场景包括:

(1)区块链及区块链中的多个终端。图1所示的区块链中包含有6个终端,假如终端1上有加密数据需要上传到区块链中,以供区块链中的其它终端共享加密数据,终端1上的数据经通过本申请实施例中的数据加密方法加密后上传到链上,区块链中的其它终端在得到读授权或者写授权等对应授权权限后可以从链上获取加密数据以实现对加密数据的访问,其中需要上传加密数据的终端1执行本申请实施例中的数据加密方法的步骤,所述终端可以为笔记本电脑、平板电脑,智能手机或者台式电脑等电子设备。

以终端1执行本申请实施例中的区块链加密数据方法和以终端5访问终端1上传区块链中的加密数据为例,图1中的各个主体工作过程如下:获取待加密数据;生成对应读权限的第一密钥和对应写权限的第二密钥;使用所述第一密钥对所述数据进行加密得到密文;使用所述第二密钥对所述密文进行签名;将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链。终端5获得终端1提供的第一密钥后,取得对加密数据的读权限,终端5获得终端1提供的第二密钥后,取得对加密数据的写权限,若终端5取得终端1提供的第一密钥和第二密钥,终端5获得加密数据的读权限和写权限以取得全授权。

需要说明的是,图1中仅仅示意出台式电脑作为终端,在实际操作过程中,终端的类型不限于图1中所示,所述终端还可以为手机、笔记本电脑或者平板电脑等电子设备,上述区块链数据加密方法的应用场景仅仅用于说明本申请技术方案,并不用于限定本申请技术方案,上述连接关系还可以有其他形式。

图2为本申请实施例提供的区块链数据加密方法的示意性流程图。该区块链数据加密方法应用于图1中的终端中,以完成区块链数据加密方法的全部或者部分功能。

请参阅图2,图2是本申请实施例提供的区块链数据加密方法的流程示意图。如图2所示,该方法包括以下步骤s210-s290:

s210、获取待加密数据;

s220、生成对应读权限的第一密钥和对应写权限的第二密钥。

其中,读权限是指查看或者访问加密数据的权限,写权限是指修改或者删除等对加密数据进行操作的权限。

具体地,为了对待加密数据的读权限和写权限进行分离以实现读权限和写权限的分别授权,在本申请实施例中,分别生成对应读权限的第一密钥和对应写权限的第二密钥,用第一密钥控制现对加密数据的读权限,用第二密钥控制现对加密数据的写权限,从而使用第一密钥获得对所述加密数据进行查看的授权,使用第二密钥获得对所述加密数据修改或者删除等进行操作的授权。区块链中上传加密数据的节点会针对该条待加密数据生成两个密钥,其中,一个密钥为第一密钥,为读权限密钥,英文为readkey,另一个密钥为第二密钥,为写权限密钥,英文为writekey。

进一步地,所述生成对应读权限的第一密钥和对应写权限的第二密钥的步骤包括:

生成对称密钥的所述第一密钥和非对称密钥的所述第二密钥。

其中,对称密钥是指采用了对称密码编码技术,采用文件加密和解密使用相同的密钥。由于对称加密算法使用起来简单快捷,密钥较短,且破译困难,因此对应读权限使用对称密钥。

非对称密钥是指加密算法需要两个密钥,其中一个公开密钥,英文为publickey,另一个为私有密钥,英文为privatekey。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种密钥叫作非对称加密密钥。由于非对称加密的典型应用是数字签名,因此对应写权限的第二密钥采用非对称密钥。

具体地,区块链中上传加密数据的节点会针对该条待加密数据生成两个密钥,其中一个密钥为第一密钥,为读权限密钥,英文为readkey,采取对称密钥,另一个密钥为第二密钥,为写权限密钥,英文为writekey,采取非对称密钥。

s230、使用所述第一密钥对所述数据进行加密得到密文。

其中,加密涉及公钥和私钥的概念。公钥和私钥相当于钥匙和锁,锁可以用来锁住东西,钥匙可以用来打开对应的锁,一把钥匙只能开一把锁,当然钥匙和锁都可以复制。加密相当于我自己生成一把锁和一把钥匙,然后把锁发给你,你用我的锁把想发给我的东西锁上再发给我,我收到之后用钥匙打开锁。天下人都能拿到我的锁,但只有我有这把锁的钥匙。钥匙相当于私钥,锁相当于公钥。数字加密涉及三个过程,具体地,请参阅图3,图3为本申请实施例提供的区块链数据加密方法的加密流程交互示意图。如图3所示,所述过程如下:

1)第一主体生成一对公钥和私钥;

2)第一主体将公钥发给第二主体;

3)第二主体使用公钥对数据进行加密,加密过程为:公钥+明文->密文;

4)第二主体将密文发送至第一主体;

5)第一主体接收到密文后,使用自己保存的私钥进行解密,解密过程为:私钥+密文->明文,从而获得加密数据。

具体地,在本申请实施例中,区块链中的节点使用所述第一密钥对所述数据进行加密得到密文。

s240、使用所述第二密钥对所述密文进行签名。

其中,签名和加密是两个不同的概念,又都涉及公钥和私钥的概念。公钥和私钥相当于钥匙和锁,锁可以用来锁住东西,钥匙可以用来打开对应的锁,一把钥匙只能开一把锁,当然钥匙和锁都可以复制。签名相当于我自己生成一把锁和一把钥匙,然后把我想发布的内容用我的锁锁起来形成一个签名,把内容和签名一起发布,并且告诉大家我的钥匙是什么。人们可以拿到钥匙来打开签名里的内容来验证是不是跟发布的内容一致。天下人都能拿到钥匙来验证签名与内容的一致性,但只有我有签名的锁。这个例子中,钥匙相当于公钥,锁相当于私钥。请参阅图4,图4为本申请实施例提供的区块链数据加密方法的数字签名流程交互示意图,数字签名涉及以下四个过程:

1)第一主体生成一对公钥和私钥;

2)第一主体使用私钥对待加密数据进行签名,签名过程为:私钥+内容->签名;

3)第一主体将加密数据和签名一起发布,并公布公钥;

4)第二主体使用公布的公钥对签名进行验证,验证过程为:公钥+签名+内容->内容有没有改变,从而判断第一主体发布的加密数据是否发生改变或者被篡改。

具体地,在本申请实施例中,区块链中的节点使用使用所述第二密钥对所述密文进行签名以得到签名码。

进一步地,所述使用所述第二密钥对所述密文进行签名的步骤之前,还包括:

使用所述第二密钥作为私钥生成第一公钥;

获取当前时间戳;

所述使用所述第二密钥对所述密文进行签名的步骤包括:

使用所述第二密钥对所述密文、所述第一公钥和所述时间戳进行签名得到签名码;

所述将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链的步骤包括:

将签名后的密文、所述第一公钥和所述签名码上传至区块链以使区块链对所述签名码使用所述公钥验签通过后将所述密文存储至区块链。

具体地,区块链中的节点往区块链中新增数据时,由于此时区块链上没有当前数据,需要往区块链上添加数据,在本申请实施例中称为区块链二级节点,此时按照如下步骤进行:

1)区块链二级节点会针对该条数据生成两个密码学安全的密钥,第一密钥为读权限密钥,英文为readkey,第二密钥为写权限密钥,英文为writekey。

2)然后使用readkey对数据进行加密得到密文encyptdata,然后使用writekey作为私钥生成其对应的公钥publickey;并得到当前时间戳timestamp;同时使用当前二级节点自身的私钥writekey,对encyptdata+publickey+timestamp进行签名,得到签名码s。

3)将encyptdata+publickey+s发送给区块链,区块链接收到encyptdata+publickey+s后,会使用公钥publickey对签名码s进行验签,若验签通过,将所述encyptdata+publickey+s存储至区块链的各个节点中,也就是将加密数据进行上链。

s250、将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链。

具体地,对所述密文使用所述写权限密钥进行签名,并将所述密文发送至区块链,以使不同主体根据获取的密钥取得所述数据的对应权限。具体地,区块链节点将所述待加密数据进行如下处理:

区块链的节点对加密数据进行加密的过程如下:

1)区块链二级节点会针对该条数据生成两个密码学安全的密钥,第一密钥为读权限密钥,英文为readkey,第二密钥为写权限密钥,英文为writekey。

2)然后使用readkey对数据进行加密得到密文encyptdata,然后使用writekey作为私钥生成其对应的公钥publickey;并得到当前时间戳timestamp;同时使用当前二级节点自身的私钥writekey,对encyptdata+publickey+timestamp进行签名,得到签名码s。

3)将encyptdata+publickey+s发送给区块链。

区块链接收到区块链二级节点发送过来的加密数据encyptdata+publickey+s后,对所述加密数据进行验签,区块链上验签的的检测过程如下:

1)验证发送上来的时间戳timestamp为当前时间,防止重放攻击;

2)区块链上会获取到发送数据的区块链二级节点的公钥publickey,对数据中的s码进行验签,验签通过,则同意数据存储。

请参阅图5,图5为本申请实施例提供的区块链数据加密方法的另一个流程示意图。如图5所示,在该实施例中,所述将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链的步骤之后,还包括:

s260、发送授权密钥至区块链中的节点以使所述节点使用所述授权密钥访问上传至区块链中的加密数据,其中,所述授权密钥包括所述第一密钥、所述第二密钥或者所述第一密钥及第二密钥。

具体地,在本申请实施例中,由于采取了读写权限分离的加密数据授权方式,授权方,也就是对数据进行加密的一方,授权方在对数据加密的时候,使用了两个密钥,第一个密钥为对称密钥,用于对数据加密,第二个密钥为非对称密钥,用于对加密的结果进行签名,在授权的过程中,如果仅授权给被授权方第一个密钥,则被授权方仅有查看数据的权限,而如果授权对方第二个密钥,则被授权方拥有了修改数据和删除数据的权限;同时,该方法也支持将读密钥和写密钥同时授权给被授权方,则被授权方同时拥有了读权限和写权限,这样的方式被称为全授权。被授权方根据获得的授权,对加密数据进行对应的操作,可以分为以下几种:

(1)被授权方获得了读权限的第一密钥。

具体地,假如被授权方获得了第一密钥,也就是读取方已被授权readkey,被授权方访问加密数据的过程如下:

1)数据读取方从区块链直接查询,查询英文为query,获取数据encyptdata;

2)数据读取方的二级节点利用readkey解密encyptdata,得到原始数据。

(2)被授权方获得了读权限的第一密钥和写权限的第二密钥。

具体地,由于被授权方获得了写权限的第二密钥,被授权方拥有了修改数据的权限,也就是被授权方可以修改数据,假设操作方已被授权readkey和writekey,此时,按照如下步骤进行:

1)操作方使用readkey对修改后的数据进行加密,得到加密数据encyptdata2;操作方使用writekey作为私钥,对新的encyptdata2+timestamp2进行签名,得到签名码s2;操作方将encyptdata2+timestamp2+s2发送到区块链上。

2)区块链上的检测:

①验证被授权方发送上来的时间戳timestamp2为当前时间,防止重放攻击;

②区块链上会获取原始数据的publickey,并使用该publickey对当前上链数据的s2进行验签,如果验签通过,则允许修改数据,如果验签失败,拒绝修改数据,该次操作失败。

(3)被授权方获得了写权限的第二密钥。

删除数据:假设操作方已被授权writekey;此时,按照如下步骤进行:

1)操作方使用writekey作为私钥,对新的encyptdata3进行签名,对timestamp3进行签名,得到签名码s3;操作方将timestamp3+s3发送到区块链上。

2)区块链上的检测:

①验证被授权方发送上来的时间戳timestamp3为当前时间,防止重放攻击;

②区块链上会获取原始数据的publickey,并使用该publickey对当前上链数据的s3进行验签,如果验签通过,则允许删除数据,如果验签失败,拒绝删除数据,该次操作失败。

请参阅图5,如图5所示,在该实施例中,所述将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链的步骤之后,还包括:

s270、通过密钥交换算法发送所述第一密钥以使区块链中的节点对所述待加密数据进行查看。

所述通过密钥交换算法发送所述第一密钥以使区块链中的节点对所述待加密数据进行查看的步骤包括:

获取区块链中的节点发送的第二公钥;

使用所述第二密钥和所述第二公钥进行密钥交换得到对称密钥的第三密钥;

使用所述第三密钥对所述第一密钥进行加密得到加密第一密钥;

发送所述加密第一密钥至区块链以使所述节点使用所述第二公钥对应的私钥解密出所述第一密钥。

其中,所述使用所述第二密钥和所述第二公钥进行密钥交换得到对称密钥的第三密钥,是指使用所述第二密钥和所述第二公钥进行ecdh得到对称密钥的第三密钥。

具体地,本申请实施例中,还可以通过密钥交换算法发送所述第一密钥以使区块链中的节点对所述待加密数据进行查看,比如,在实施穿透式监管时,可以使监管单位通过密钥交换算法获得所述第一密钥对加密数据进行查看,也就是本申请实施例可同时支持穿透式监管,其中,穿透式监管是指采取密钥协商算法使上传数据的单位和监管单位通过区块链安全的交换信息并且第三方不能获取到该信息。其中,密钥协商算法包括ecdh和ecdhe等。其中,ecdh是基于ecc(ellipticcurvecryptosystems,椭圆曲线密码体制)的dh(diffie-hellman)密钥交换算法,交换双方可以在不共享任何秘密的情况下协商出一个密钥。ecc算法和dh结合使用,用于密钥磋商,这个密钥交换算法称为ecdh。diffie-hellman算法,简称dh算法,是一种密钥一致性算法,该算法是一种建立密钥的方法,并非加密方法,但其产生的密钥可用于加密、密钥管理或任何其它的加密方式,这种密钥交换技术的目的在于使两个用户间能安全地交换密钥(key)以便用于今后的报文加密。

本申请实施例可以使区块链中的监管单位节点通过密钥交换算法获得读权限密钥对所述待加密数据进行查看。通过密钥交换算法以使区块链中的监管单位节点对所述待加密数据进行查看时,区块链中上传数据的节点获取区块链中的监管节点发送的第二公钥,使用所述第二密钥和所述第二公钥进行密钥交换得到对称密钥的第三密钥,使用所述第三密钥对所述第一密钥进行加密得到加密第一密钥,然后发送所述加密第一密钥至区块链以使区块链中的监管节点使用所述第二公钥对应的私钥解密出所述第一密钥以查看区块链中的加密数据。其中,所述使用所述第二密钥和所述第二公钥进行密钥交换得到对称密钥的第三密钥,是指使用所述第二密钥和所述第二公钥进行ecdh得到对称密钥的第三密钥。比如,若读权限的第一密钥为readkey,写权限的第二密钥为writekey,区块链中上传数据的节点使用writekey和监管提供的公钥supervisepubkey(监管公钥)进行ecdh,得到双方同时拥有的对称密钥symkey(对称密钥),然后使用symkey对readkey进行加密,并附在数据的最后,当新增数据的时候,将该加密的readkey一并发送到区块链上,由此,监管节点可以使用自己的私钥解出readkey查看加密数据的内容。

请参阅图6,图6为本申请实施例提供的区块链数据加密方法的一个具体实施例的交互示意图,如图6所示,本申请实施例提供的区块链数据加密方法的过程如下:

1)区块链中授权方节点获取需要加密的数据;

2)区块链中授权方节点生成读权限密钥readkey和写权限密钥writekey;

3)区块链中授权方节点使用所述readkey对所述数据进行加密,获取密文encyptdata;

4)区块链中授权方节点使用writekey作为私钥,生成对应的公钥publickey;

5)区块链中授权方节点获取当前时间戳timestamp;

6)区块链中授权方节点使用当前私钥writekey,对encyptdata+publickey+timestamp进行签名,得到签名码s;

7)区块链中授权方节点发送encyptdata+publickey+s至区块链;

8)区块链验证发送上来的时间戳timestamp为当前时间,防止重放攻击;

9)区块链获取公钥publickey,对数据中的s码进行验签,验签通过,则同意数据存储;

10)区块链中授权方节点发送授权readkey;

11)区块链中被授权方节点从区块链直接query(query,查询)获取数据encyptdata;

12)区块链中被授权方节点利用readkey解密encyptdata,得到原始数据;

13)区块链中授权方节点发送授权readkey和writekey;

14)区块链中被授权方节点从区块链直接query(query,查询)获取数据encyptdata;

15)区块链中被授权方节点利用readkey解密encyptdata,得到原始数据;

16)区块链中被授权方节点修改原始数据,使用readkey对修改后的数据进行加密,得到加密数据encyptdata2;

17)区块链中被授权方节点使用writekey作为私钥,对新的encyptdata2+timestamp2进行签名,得到签名码s2;

18)区块链中被授权方节点将encyptdata2+timestamp2+s2发送到区块链上;

19)区块链验证发送上来的时间戳timestamp2为当前时间,防止重放攻击;

20)区块链获取原始数据的publickey,使用该publickey对当前上链数据的s2进行验签,验签通过,允许修改数据,验签失败,拒绝修改数据,该次操作失败。

在大量的业务需求中,需要更细粒度的授权方式,比如,使得被授权用户仅能查看数据,却不能修改和删除数据,为了提高数据的安全性和管理效率,也可以仅使被授权用户删除数据而不查看数据及修改数据等。本申请实施例提供的读写权限分离的加密数据授权方式,在对数据加密的时候,使用了两个密钥,第一个密钥可以为对称密钥,用于对数据加密,第二个密钥可以为非对称密钥,用于对加密的结果进行签名;在授权的过程中,如果仅授权对方第一个密钥,则对方仅有查看数据的权限,而如果授权对方第二个密钥,则对方拥有了修改数据和删除数据的权限;同时,该方法也支持将读写密钥同时授权给对方,则对方同时拥有了读写权限,这样的方式被称为全授权。该方案是对传统加密数据授权方式的重要补充和增强,弥补了传统加密授权方式的不足,该方法使得授权方可以灵活的选择授予对方查看权限、修改权限或者删除权限,是对传统授权方式的一种改进,提高了区块链中节点对加密数据授权的灵活性和对加密数据的管理效率。

需要说明的是,上述各个实施例所述的区块链数据加密方法,可以根据需要将不同实施例中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本申请要求的保护范围之内。

请参阅图7,图7为本申请实施例提供的区块链数据加密装置的示意性框图。对应于上述区块链数据加密方法,本申请实施例还提供一种区块链数据加密装置。如图7所示,该区块链数据加密装置包括用于执行上述区块链数据加密方法的单元,该装置可以被配置于服务器等计算机设备中。具体地,请参阅图7,该区块链数据加密装置700包括第一获取单元701、第一生成单元702、加密单元703、签名单元704及上传单元705。

其中,第一获取单元701,获取待加密数据;

第一生成单元702,用于生成对应读权限的第一密钥和对应写权限的第二密钥;

加密单元703,用于使用所述第一密钥对所述数据进行加密得到密文;

签名单元704,用于使用所述第二密钥对所述密文进行签名;

上传单元705,用于将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链。

在一个实施例中,所述第一生成单元702。用于生成对称密钥的所述第一密钥和非对称密钥的所述第二密钥。

请参阅图8,图8为本申请实施例提供的区块链数据加密装置的另一个示意性框图。如图8所示,在该实施例中,所述区块链数据加密装置700还包括:

第二生成单元706,用于使用所述第二密钥作为私钥生成第一公钥;

第二获取单元707,用于获取当前时间戳;

所述签名单元704,用于使用所述第二密钥对所述密文、所述第一公钥和所述时间戳进行签名得到签名码;

所述上传单元705,用于将签名后的密文、所述第一公钥和所述签名码上传至区块链以使区块链对所述签名码使用所述公钥验签通过后将所述密文存储至区块链。

请继续参阅图8,如图8所示,在该实施例中,所述区块链数据加密装置700还包括:

发送单元708,用于发送授权密钥至区块链中的节点以使所述节点使用所述授权密钥访问上传至区块链中的加密数据,其中,所述授权密钥包括所述第一密钥、所述第二密钥或者所述第一密钥及第二密钥。

请继续参阅图8,如图8所示,在该实施例中,所述区块链数据加密装置700还包括:

交换单元709,用于通过密钥交换算法发送所述第一密钥以使区块链中的节点对所述待加密数据进行查看;

所述交换单元709包括:

获取子单元7091,用于获取区块链中的节点发送的第二公钥;

交换子单元7092,用于使用所述第二密钥和所述第二公钥进行密钥交换得到对称密钥的第三密钥;

加密子单元7093,用于使用所述第三密钥对所述第一密钥进行加密得到加密第一密钥;

发送子单元7094,用于发送所述加密第一密钥至区块链以使所述节点使用所述第二公钥对应的私钥解密出所述第一密钥。

在一个实施例中,所述交换子单元7092,用于使用所述第二密钥和所述第二公钥进行ecdh得到对称密钥的第三密钥。

需要说明的是,所属领域的技术人员可以清楚地了解到,上述区块链数据加密装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。

同时,上述区块链数据加密装置中各个单元的划分和连接方式仅用于举例说明,在其他实施例中,可将区块链数据加密装置按照需要划分为不同的单元,也可将区块链数据加密装置中各单元采取不同的连接顺序和方式,以完成上述区块链数据加密装置的全部或部分功能。

上述区块链数据加密装置可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。

请参阅图9,图9是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备900可以是台式机电脑或者服务器等计算机设备,也可以是其他设备中的组件或者部件。

参阅图9,该计算机设备900包括通过系统总线901连接的处理器902、存储器和网络接口905,其中,存储器可以包括非易失性存储介质903和内存储器904。

该非易失性存储介质903可存储操作系统9031和计算机程序9032。该计算机程序9032被执行时,可使得处理器902执行一种上述区块链数据加密方法。

该处理器902用于提供计算和控制能力,以支撑整个计算机设备900的运行。

该内存储器904为非易失性存储介质903中的计算机程序9032的运行提供环境,该计算机程序9032被处理器902执行时,可使得处理器902执行一种上述区块链数据加密方法。

该网络接口905用于与其它设备进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备900的限定,具体的计算机设备900可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图9所示实施例一致,在此不再赘述。

其中,所述处理器902用于运行存储在存储器中的计算机程序9032,以实现如下步骤:获取待加密数据;生成对应读权限的第一密钥和对应写权限的第二密钥;使用所述第一密钥对所述数据进行加密得到密文;使用所述第二密钥对所述密文进行签名;将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链。

在一实施例中,所述处理器902在实现所述生成对应读权限的第一密钥和对应写权限的第二密钥的步骤时,具体实现以下步骤:

生成对称密钥的所述第一密钥和非对称密钥的所述第二密钥。

在一实施例中,所述处理器902在实现所述使用所述第二密钥对所述密文进行签名的步骤之前,还实现以下步骤:

使用所述第二密钥作为私钥生成第一公钥;

获取当前时间戳;

所述处理器902在实现所述使用所述第二密钥对所述密文进行签名的步骤时,具体实现以下步骤:

使用所述第二密钥对所述密文、所述第一公钥和所述时间戳进行签名得到签名码;

所述处理器902在实现所述将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链的步骤时,具体实现以下步骤:

将签名后的密文、所述第一公钥和所述签名码上传至区块链以使区块链对所述签名码使用所述公钥验签通过后将所述密文存储至区块链。

在一实施例中,所述处理器902在实现所述将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链的步骤之后,还实现以下步骤:

发送授权密钥至区块链中的节点以使所述节点使用所述授权密钥访问上传至区块链中的加密数据,其中,所述授权密钥包括所述第一密钥、所述第二密钥或者所述第一密钥及第二密钥。

在一实施例中,所述处理器902在实现所述将签名后的密文上传至区块链以使区块链对所述密文验签通过后将所述密文存储至区块链的步骤之后,还实现以下步骤:

通过密钥交换算法发送所述第一密钥以使区块链中的节点对所述待加密数据进行查看。

在一实施例中,所述处理器902在实现所述通过密钥交换算法发送所述第一密钥以使区块链中的节点对所述待加密数据进行查看的步骤时,具体实现以下步骤:

获取区块链中的节点发送的第二公钥;

使用所述第二密钥和所述第二公钥进行密钥交换得到对称密钥的第三密钥;

使用所述第三密钥对所述第一密钥进行加密得到加密第一密钥;

发送所述加密第一密钥至区块链以使所述节点使用所述第二公钥对应的私钥解密出所述第一密钥。

在一实施例中,所述处理器902在实现所述使用所述第二密钥和所述第二公钥进行密钥交换得到对称密钥的第三密钥的步骤时,具体实现以下步骤:

使用所述第二密钥和所述第二公钥进行ecdh得到对称密钥的第三密钥。应当理解,在本申请实施例中,处理器902可以是中央处理单元(centralprocessingunit,cpu),该处理器902还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来完成,该计算机程序可存储于一计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。

因此,本申请还提供一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行如下步骤:

一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的区块链数据加密方法的步骤。

所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述计算机可读存储介质可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

以上所述,仅为本申请的具体实施方式,但本申请明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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