数据加密和解密的方法、装置和系统与流程

文档序号:17088447发布日期:2019-03-13 23:09阅读:294来源:国知局
数据加密和解密的方法、装置和系统与流程

本申请涉及互联网技术应用领域,具体而言,涉及一种数据加密和解密的方法、装置和系统。



背景技术:

随着比特币这类线上虚拟货币的流通,为保障该虚拟货币的正常流通,区块链作为比特币这类虚拟货币的底层技术和基础架构,区块链通过一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。即,狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本,因此现有区块链技术无论是在虚拟货币线上交易也好,或是数据安全传输也好通过分布式数据存储、点对点传输、共识机制和加密算法提升了用户在互联网活动的安全性,为用户的数据信息安全提供了可靠保障。

特别是在特定的区块链应用中,例如,区块链征信系统、区块链公益或区块链智能合约等应用中,应用方希望交易数据对外保密并只允许特定的应用方及监管机构可以查看交易数据。这种情况下,就需要对数据的访问进行控制。

而现有解决对数据的访问进行控制的技术中,控制交易数据的读取权限,这种方案需要对所有的链上数据访问节点都实现一套复杂的数据读取权限控制系统。

针对上述由于在区块链上实行对数据的访问权限控制,导致的工作量大且运算复杂的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种数据加密和解密的方法、装置和系统,以至少解决由于在区块链上实行对数据的访问权限控制,导致的工作量大且运算复杂的技术问题。

根据本发明实施例的一方面,提供了一种数据加密和解密的系统,包括:加密终端,用于生成区块密钥,通过区块密钥对待上传数据进行加密,得到加密数据;依据预设目标对象的公钥对区块密钥进行加密,得到对应预设目标对象的区块加密密钥;并通过加密终端的私钥对加密数据和区块加密密钥进行签名,生成数据签名;将加密数据、区块加密密钥和数据签名上传至存储设备;存储设备,用于存储加密数据、区块加密密钥和数据签名;解密终端,与存储设备连接,用于获取加密数据、区块加密密钥和数据签名;通过解密终端的私钥对区块加密密钥进行解密,得到区块密钥,通过区块密钥解密加密数据,得到待上传数据。

根据本发明实施例的另一个方面,还提供了一种数据加密的方法,包括:生成区块密钥,并依据区块密钥加密待上传数据,得到加密数据;依据预设目标对象的公钥对区块密钥进行加密,得到对应预设目标对象的区块加密密钥;依据加密数据和区块加密密钥生成上传数据,并将上传数据上传至区块链。

根据本发明实施例的另一个方面,还提供了一种数据解密的方法,包括:获取加密终端上传至区块链的上传数据;通过预先存储的解密终端的私钥对上传数据中的区块加密密钥进行解密,得到加密终端生成的区块密钥;通过区块密钥解密上传数据中的加密数据,得到加密终端加密的待上传数据。

根据本发明实施例的另一个方面,还提供了一种数据加密的装置,包括:第一加密模块,用于生成区块密钥,并依据区块密钥加密待上传数据,得到加密数据;第二加密模块,用于依据预设目标对象的公钥对区块密钥进行加密,得到对应预设目标对象的区块加密密钥;数据上传模块,用于依据加密数据和区块加密密钥生成上传数据,并将上传数据上传至区块链。

根据本发明实施例的另一个方面,还提供了一种数据解密的装置,其特征在于,包括:第一获取模块,用于获取加密终端上传至区块链的上传数据;第一解密模块,用于通过预先存储的解密终端的私钥对上传数据中的区块加密密钥进行解密,得到加密终端生成的区块密钥;第二解密模块,用于通过区块密钥解密上传数据中的加密数据,得到加密终端加密的待上传数据。

根据本发明实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的数据加密的方法。

根据本发明实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的数据解密的方法。

根据本发明实施例的另一个方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的数据加密的方法。

根据本发明实施例的另一个方面,还提供了一种处理器,其特征在于,处理器用于运行程序,其中,程序运行时执行上述数据解密的方法。

根据本发明实施例的另一个方面,还提供了一种数据加密的方法,包括:获取加密数据,其中,生成加密数据使用的密钥包括区块密钥;获取加密后的区块密钥,其中,加密区块密钥的密钥包括第一公钥;获取签名数据,其中,签名使用的密钥包括第二私钥;和发送加密数据、加密后的区块密钥、签名数据到服务器。

根据本发明实施例的另一个方面,还提供了一种数据解密的方法,包括:获取来自客户端的加密数据、加密后的区块密钥、签名数据;通过第二公钥验证签名数据;通过第一私钥对加密后的区块密钥进行解密,得到区块密钥;和通过区块密钥解密加密数据,得到上传数据。

在本发明实施例中,通过生成区块密钥,并依据区块密钥加密待上传数据,得到加密数据;依据预设目标对象的公钥对区块密钥进行加密,得到对应预设目标对象的区块加密密钥;依据加密数据和区块加密密钥生成上传数据,并将上传数据上传至区块链,达到了控制区块链上的数据只能被许可的应用方或监管方进行查看的目的,从而实现了保护用户数据隐私的技术效果,进而解决了由于在区块链上实行对数据的访问权限控制,导致的工作量大且运算复杂的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种数据加密和解密的系统示意图;

图2(a)根据本申请实施例的一种可选的用户终端上传数据到区块链的示意图;

图2(b)是根据本申请实施例的一种可选的应用方或监管方解密从区块链上获取的加密数据的示意图;

图3(a)是根据本申请实施例的一种可选的用户终端对数据进行加密上链的过程示意图;

图3(b)是根据本申请实施例的一种可选的允许查看数据的应用方及监管方从区块链上获取数据并解密的过程示意图;

图4是根据本申请实施例的一种数据加密的方法流程图;

图5是根据本申请实施例的一种可选的数据加密的方法流程图;

图6是根据本申请实施例的一种可选的数据加密的方法流程图;

图7是根据本申请实施例的一种可选的数据加密的方法流程图;

图8是根据本申请实施例的一种可选的数据加密的方法流程图;

图8(a)是根据本申请实施例的一种数据加密的方法的数据上链的流程图;

图8(b)是根据本申请实施例的一种数据加密的方法的数据加密上链的流程图;

图9是根据本申请实施例的一种数据解密的方法流程图;

图10是根据本申请实施例的一种数据解密的方法流程图;

图11是根据本申请实施例的一种可选的数据解密的方法流程图;

图12是根据本申请实施例的一种可选的数据解密的方法流程图;

图12(a)是根据本申请实施例的一种数据解密的方法的数据验证示意图;

图12(b)是根据本申请实施例的一种数据解密的方法的隐私数据验证示意图;

图13是根据本申请实施例的一种数据加密的装置示意图;

图14是根据本申请实施例的一种数据解密的装置示意图;以及

图15是根据本申请实施例的一种计算机终端的硬件结构框图。

具体实施方式

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

区块链,是一种分布式分布式数据存储技术。其相关技术包括分布式存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。例如,区块链将数据分成不同的区块,每个区块通过特定的信息链接到上一区块的后面,前后顺连来呈现一套完整的数据。其中,“区块”是指存放记录的文件,记录其创建期间内发生的所有价值变换活动;“链”是指按时间先后顺序将区块存储在数据库。

应用方,使用区块链进行数据存储、传输或金融交易等应用的用户(企业或个人)。

监管方,根据法律规定对区块链上的数据、交易进行监督管理的机构。

对称加密算法,是指加密和解密使用相同密钥的加密算法,具体地,在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过加密算法处理后,使其变成复杂的加密密文发送出去;收信方接收到密文后,使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。

非对称加密算法,是指加密和解密使用不同密钥的加密算法。具体地,在非对称加密算法中,数据发信方使用收信方的公钥将明文(原始数据)加密,收信方利用自己的私钥解密。

数字签名,是指用于鉴别数字信息的方法,数据发信方用一个哈希函数从报文文本中生成报文摘要,然后利用自己的私钥将报文摘要进行加密,并将加密后的摘要作为报文的数字签名与报文一起发送给收信方,收信方在接收到报文后,首先用与发送一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发信方的公钥密钥来对报文的附加的数字签名进行解密,如果两个摘要相同,则确认该数字签名来自数据发信方。

实施例1

根据本申请实施例,提供了一种数据加密和解密的系统实施例,需要说明的是,本实施例可以应用于各种各样的区块链应用场景中,包括但不限于支付、转账、股票、证券、房地产、保险、保险、医疗、供应链管理等行业。

随着互联网技术的发展,网上支付、转账、购物等电子交易变得越来越普及。传统互联网上的电子交易,都需要借助可信赖第三方信用机构来处理电子支付信息,这种方式受制于第三方信用机构的可信度。区块链基于密码学原理,使得交易双方直接支付,而无需第三方中介的参与,保障了电子交易的安全性。

区块链是一个分布式账本,通过去中心化、去信任的方式集体维护一个可靠数据库,理论上讲,区块链是一种几乎不可能被更改的分布式数据库,不依赖于单一的技术,而是多种技术整合的结果。由于区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构,任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点之间基于一套共识机制,共同维护整个区块链,任意一个节点失效,其余节点仍能正常工作。

由上可知,区块链的运行规则是公开透明的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。但是,在某些特定的区块链应用中,例如区块链征信系统、区块链公益、区块链智能合约等应用中,应用方希望交易数据对外保密并只允许特定的应用方及监管机构可以查看交易数据。这种情况下,就需要对数据的访问进行控制。

目前,现有技术对于区块链上数据的访问控制主要采用如下两种方案:第一种方案,控制交易数据的读取权限,这种方案需要对所有的链上数据访问节点都实现一套复杂的数据读取权限控制系统;第二种方案,将交易数据存储在链下的可信第三方,链上只存储交易数据摘要,但是这种方案需要确保可信第三方的安全,一旦这个可信第三方出现安全问题,那么交易数据也将处于危险之中。

可以看出,上述两种方案都存在一些局限,两种方案本质上都是采用传统的安全边界控制来实现数据的保护,对于交易数据的保护都不是非常有保障。例如,对于上述第一种方案,一旦某个节点的系统权限被突破,则所有数据都将泄漏;对于上述第二种方案,将交易数据存在线下的可信第三方,采用的也是边界安全控制方法,同样存在系统权限被突破的风险。随着黑客渗透技术变得越来越强大,而操作系统的漏洞更是防不胜防,所以依靠这样的方案难于保障数据的安全。

根据本申请中至少一个实施例中的方案,对区块链数据进行加密,并对密钥分发进行管理,可以实现对链上数据访问的有效控制,即让特定的应用方和监管方获取链上的加密数据并进行解密获取数据明文,而对其他不允许访问的应用方或监管方进行保密。

作为一种可选的实施例,本申请提出了一种区块链的数据加密和解密的系统实施例,图1是根据本申请实施例的一种数据加密和解密的系统示意图,如图1所示,包括:加密终端101、存储设备103和解密终端105。

其中,加密终端101,用于生成区块密钥,通过区块密钥对待上传数据进行加密,得到加密数据;依据预设目标对象的公钥对区块密钥进行加密,得到对应预设目标对象的区块加密密钥(即,加密的区块密钥);并通过加密终端的私钥对加密数据和区块加密密钥进行签名,生成数据签名;将加密数据、区块加密密钥和数据签名上传至存储设备;

存储设备103,用于存储加密数据、区块加密密钥和数据签名;

解密终端105,与存储设备连接,用于获取加密数据、区块加密密钥和数据签名;通过解密终端的私钥对区块加密密钥进行解密,得到区块密钥,通过区块密钥解密加密数据,得到待上传数据。

综上,本申请提供的区块链的数据加密和解密的系统中以在互联网电子交易为例进行说明,假设以用户a所使用的终端a为加密终端101,以用户b所使用的解密终端为终端b,以交易平台所处的服务器(或终端)为终端c,并以监管组织所使用的终端为终端d为例进行说明:

这里目标对象包括:终端b、终端c和终端d,上述终端b、终端c和终端d作为解密终端105。

终端a在加密过程中分两个阶段,阶段一:对称加密,通过预先与解密终端协商好的加密解密方式,终端a生成区块密钥,并通过对称加密的方式依据区块密钥key对待上传数据进行加密;进一步地,为了保障数据的安全性,以目标对象终端b、终端c和终端d的公钥通过非对称加密分别加密该区块密钥,即,得到分别对应终端b、终端c和终端d的区块加密密钥:b-key、c-key和d-key,最后通过加密终端101的私钥对加密数据和区块加密密钥(b-key、c-key和d-key)进行签名,生成数据签名;将加密数据、区块加密密钥和数据签名上传至存储设备。

通过上述方式以使得只有终端b、终端c和终端d在接收到加密数据、区块加密密钥和数据签名之后,首先通过非对称解密,终端b、终端c和终端d分别依据自身的私钥对区块加密密钥进行解密,得到区块密钥,并通过对称解密方式,依据预设对称解密算法,通过区块密钥解密加密数据,得到最终的原数据,即,加密终端在对称加密时的待上传数据。达到了控制区块链上的数据只能被许可的应用方或监管方进行查看的目的,从而实现了保护用户数据隐私的技术效果。

可选地,上述加密终端101和解密终端105可以是进行互联网电子交易的交易双方的终端设备,包括但不限于如下任意一种形式:手机、平板电脑、笔记本电脑、计算机等;上述存储设备可以是互联网上用于存储数据的数据存储服务器。

具体地,在上述实施例中,上述加密终端可以是互联网电子交易的交易双方任一方的终端设备,用于将交易数据上传至区块链,在交易数据上传至区块链之前,加密终端利用内部生成的区块密钥对待上传数据进行加密,得到加密后的加密数据;并对允许查看交易数据的应用方或监管机构(即允许查看区块链上该交易数据的终端)的公钥进行加密,得到允许查看交易数据的各个应用方或监管机构的区块加密密钥,然后利用加密终端自己的私钥对得到的加密数据和区块加密密钥进行签名,生成该加密终端的数字签名,最后将得到的加密数据、区块加密密钥和数据签名上传至存储区块链数据的存储设备;允许查看区块链上该交易数据的应用方或监管机构(即解密终端)可以从上述存储区块链数据的存储设备上获取加密终端上传的加密数据、区块加密密钥和数据签名,利用解密终端自己的私钥对区块加密密钥进行解密,得到加密终端的区块密钥,然后利用该区块密钥对加密数据进行解密,得到加密终端上传到区块链的交易数据,其中,数字签名可以用于对加密终端的身份进行验证。

需要说明的是,本申请提供的区块链的数据加密和解密的系统用于实现数据存证,而所应用的场景,例如,区块链征信系统、区块链公益或区块链智能合约等,仅以上述示例为应用场景进行说明,以实现本申请提供的区块链的数据加密和解密的系统为准,具体不做限定。后续将以应用方和监管方在区块链进行数据加密和解密为例进行说明。

作为一种可选的实施方式,上述加密终端生成的区块密钥可以是随机生成的。

可选地,上述区块链为分布式区块链。

一种可选的实施例中,图2(a)是根据本申请实施例的一种可选的用户终端上传数据到区块链的示意图,如图2(a)所示,用户终端生成原始数据后,利用内部生成的加密密钥对该原始数据进行加密得到加密数据,同时对被允许查看该原始数据的应用方和监管方分发密钥,然后将加密后的数据上传至区块链。这样,只有被允许查看该原始数据的应用方和监管方才能利用对应的密钥解密用户终端上传到区块链上的加密数据,图2(b)是根据本申请实施例的一种可选的应用方或监管方解密从区块链上获取的加密数据的示意图,如图2(b)所示,经许可的应用方或监管方可以从链上获取加密的数据以及加密的区块密钥,使用自己持有的私钥来对加密的密钥进行解密从而获得数据加密密钥来解密密文的数据获得数据明文。

由上可知,在本申请上述实施例中,通过加密终端101生成用于加密待上传至区块链上的原始数据的区块密钥,利用该区块密钥将待上传至区块链的原始数据进行加密得到对应的加密数据,并利用该区块密钥对被允许查看该原始数据的应用方和监管方的公钥进行加密得到对应的区块加密密钥,然后利用加密终端的私钥对加密后的加密数据、区块加密密钥进行签名后上传至存储区块链的存储设备,被允许查看该原始数据的应用方和监管方可以通过解密终端从存储区块链的存储设备上获取加密终端上传至区块链的加密数据、区块加密密钥和数据签名,利用解密终端的私钥对获取到的区块加密密钥进行解密,得到对应的区块密钥,并通过该区块密钥对区块链上获取的加密数据进行解密,得到加密终端上传的原始数据。

通过本申请上述实施例提供的方案,达到了控制区块链上的数据只能被许可的应用方或监管方进行查看的目的,从而实现了保护用户数据隐私的技术效果。

由此,本申请提供的上述实施例的方案解决了由于在区块链上实行对数据的访问权限控制,导致的工作量大且运算复杂的技术问题。

在一种可选的实施例中,上述加密终端101可以包括:密钥生成模块,用于随机生成区块密钥;第一加密模块,用于依据区块密钥通过对称密码算法对待上传数据加密,得到加密数据;公钥获取模块,用于通过预设数据证书获取预设目标对象的公钥;第二加密模块,用于依据预设目标对象的公钥通过非对称密码算法对区块密钥加密,得到区块加密密钥;签名生成模块,用于通过加密终端的私钥对加密数据和区块加密密钥进行签名,生成数据签名;数据上传模块,用于将加密数据、区块加密密钥和数据签名上传至存储设备。

具体地,在上述实施例中,加密终端可以通过密钥生成模块随机生成用于加密待上传到区块链的原始数据的区块密钥,并通过第一加密模块采用对称密码算法对待上传到区块链的原始数据进行加密得到加密数据,并通过公钥获取模块通过预设数据证书获取允许查看待上传到区块链的原始数据的应用方或监管方的公钥,通过第二加密模块利用获取到的允许查看原始数据的各个应用方或监管方的公钥,采用非对称密码算法对区块密钥进行加密,得到各个应用方或监管方对一个的区块加密密钥,最后通过签名生成模块利用加密终端的私钥对加密后的加密数据和区块加密密钥进行签名,生成数据签名,最后通过数据上传模块将加密数据、区块加密密钥和数据签名上传至存储区块链的存储设备。

一种可选的实施例中,以图2(a)所示的用户终端为例,该用户终端对数据进行加密上链的过程如图3(a)所示,图3(a)是根据本申请实施例的一种可选的用户终端对数据进行加密上链的过程示意图,如图3(a)所示,包括如下步骤:

(1)用户终端随机生成区块密钥bk,并利用其允许查看本区块数据的应用方的公钥(例如,pukt1,pukt2,...,puktn)及监管方的密钥(puks)采用非对称密码算法各自加密区块密钥(bk),得到加密后的各个应用方及监管方的区块密钥,即cbkt1,cbkt2,...,cbktn及cbks;

(2)用户终端利用区块密钥(bk)采用对称密码算法加密用户终端即将上传到区块链的原始数据data,得到加密后的加密数据cdata;

(3)用户终端利用其私钥对即将上传到区块链的数据(包括加密后的加密数据cdata、利用允许查看本区块数据的各个应用方及监管方的公钥加密的区块加密密钥cbkt1,cbkt2,...,cbktn及cbks)进行签名sig;

(4)用户终端将加密的数据cdata、加密的区块密钥cbkt1、cbkt2、cbktn及cbks及其签名sig一起上链。

此处需要说明的是,由于应用方、监管方的公钥(pukt1,pukt2,...,puktn及puks)由于涉及到要直接认证具体的应用方和监管机构,所以需要用到pki技术或者可信第三方的ca证书来配合实现应用方或监管方与公钥的绑定,从证书里提取机构的公钥。

在一种可选的实施例中,上述解密终端105可以包括:数据获取模块,用于获取加密数据、区块加密密钥和数据签名;数据验证模块,用于通过数据签名验证加密数据和区块加密密钥是否完整,在验证结果为是的情况下,通过第一解密模块解密区块加密密钥;在验证结果为否的情况下,终止对加密数据和区块加密密钥的处理;第一解密模块,用于依据解密终端的私钥通过非对称密码算法解密区块加密密钥,得到加密终端生成的区块密钥;第二解密模块,用于依据区块密钥通过对称密码算法解密加密数据,得到加密终端的待上传数据。

具体地,在上述实施例中,解密终端可以通过数据获取模块从存储区块链的存储设备上获取加密终端上传到该区块的加密数据、区块加密密钥和数据签名,并通过数据验证模块通过数据签名验证获取到的加密数据和区块加密密钥是否完整,并在验证结果为是的情况下,通过第一解密模块依据解密终端的私钥通过非对称密码算法解密区块加密密钥,在验证结果为否的情况下,终止对加密数据和区块加密密钥的处理,其中,在通过第一解密模块解密区块加密密钥得到区块密钥后,利用该区块密钥通过对称密码算法解密加密数据,得到加密终端的上传到区块链的原始数据。

一种可选的实施例中,图3(b)是根据本申请实施例的一种可选的允许查看数据的应用方及监管方从区块链上获取数据并解密的过程示意图,如图3(b)所示,包括如下步骤:

(1)许可的应用方或监管方(即允许查看数据的应用方及监管方)从区块链上获取数据dup,获取的数据dup包括加密的数据cdata、加密的区块密钥cbkt1、cbkt2、cbktn及cbks;

(2)许可的应用方或监管方利用各自的私钥prkt1,对加密的区块密钥cbkt1采用与数据上链过程中一致的非对称密码算法进行解密,得到对应的区块密钥bk;

(3)通过得到的区块密钥bk采用与数据上链过程中一致的对称加密算法解密数据cdata获得明文数据data(即加密终端上传的原始数据)。

此处需要说明的是,如图3(a)和3(b)所示的加密与解密过程,如果只允许应用方1获取数据明文,那么上链的数据dup里包括加密数据cdata、加密的区块密钥cbkt1,应用方1获取数据之后用私钥prkt1,对加密的区块密钥cbkt1采用与数据上链过程中一致的非对称密码算法进行解密,获得区块密钥bk,并利用该区块密钥bk采用与数据上链过程中一致的对称加密算法解密数据cdata,得到明文数据data。

进一步地,作为一种可选的实施方式,上述交易中,如果运行中需要监管方1加入来对交易数据进行监管,那么在后续上链的区块数据dup里包括cdata、加密的区块密钥cbkt1、cbks1,应用方1、监管方1获取数据之后用各自的私钥prkt1、prks1对加密后的区块密钥cbkt1、cbks1分别采用与数据上链过程中一致的非对称密码算法进行解密,获得对应的区块密钥bk,应用方1、监管方1各自用区块密钥bk采用与数据上链过程中一致的对称加密算法解密数据cdata获得明文数据data。

可选地,如果后续运行过程中,由于某些原因,不需要再受到监管方1的监管,那么,在后续上链的区块数据里将去除加密的区块密钥cbks1,这样,监管方1后续将无法获取数据解密密钥bk,也就无法解密区块数据明文。

需要注意的是,上述各个实施例可以适用于在上链数据量较小的场景里使用,比如公益捐款,股权证明、房产证明等应用场景,另外,涉及查看的应用方和监管机构数量也不能太多,几个到几十个左右,数量过大的情况下,区块链的区块大小可能支撑不了,这些因素也是在使用本专利方案的时候需要注意的。

通过本申请上述各个实施例公开的方案,采用对称加密算法对上链的数据进行加密,实现数据上链加密存储,采用非对称密码算法来对应用方或监管方的密钥进行加密分发。通过这种密钥管理方式,以控制哪些应用方或监管方可以查看数据,而对其他没有数据查看权限的其他应用方或监管方保密。可以看到,此方案可以实现有针对性的公开上链的数据,保护上链数据的安全,可以很好地解决公益、征信、多方借贷等区块链应用场景中需要保护用户数据隐私又允许相关的监管机构来获取这些链上的敏感数据的需求。另外,本申请上述实施例可以取得如下技术效果:

(1)每个区块的数据都是随机生成的不同的加密密钥,可以实现“一块一密”,“一块一密”极大地增加了密码破解的难度。

(2)监管方可以在需要的时候在下一个区块上添加进来,该监控方只能看到添加进来之后后续区块的数据;也可以在不需要的时候去除某一监管方,他在下一个区块开始将看不到后续的区块交易数据。

实施例2

根据本申请实施例,还提供了一种数据加密的方法实施例,本实施例提供的数据加密的方法可以应用于本申请实施例1提供的数据加密和解密的系统中,包括但不限于本申请实施例1描述的应用场景。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

由于任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝,因而,区块链上所有的数据信息是公开的。为了保护用户数据的隐私安全,现有技术采用在区块链的每个节点上设置复杂的数据读取权限控制系统或者将交易数据存储在链下的可信第三方的方式来控制区块链上交易数据的读取权限。

可以看出,现有的控制区块链上交易数据的读取权限的方案本质上都是采用传统的安全边界控制来实现数据的保护,在区块链的每个节点上设置复杂的数据读取权限控制系统,容易出现因某个节点的系统权限被突破而导致所有数据被泄漏的风险;将交易数据存储在链下的可信第三方,依赖于第三方设备,也存在系统权限被突破的风险。

在上述应用环境下,本申请提供了图4所示的一种数据加密的方法,图4是根据本申请实施例的一种数据加密的方法流程图,如图4所示,包括如下步骤:

步骤s402,生成区块密钥,并依据区块密钥加密待上传数据,得到加密数据。

作为一种可选的实施例,上述待上传数据可以任意一种线上或线下的电子交易数据,包括但不限于互联网进行转账、支付等的交易数据;上述区块密钥可以是将区块链上存储交易数据的某个区块的数据进行加密的密钥,一种可选的实施方式中,该区块密钥可以是随机生成的,在生成该区块密钥后,依据该区块密钥对即将上传到区块链的待上传数据进行加密,得到加密后的加密数据。

此处需要说明的是,区块链中的区块是按时间顺序一个一个先后生成的,每一个区块会记录下区块生成时间段内的交易数据,为了确保区块中记录的交易数据不被区块链网络中任意节点进行访问或查看,可以将需要保密的区块记录的交易数据进行加密,上述区块密钥就是指上传到区块链上区块的数据进行加密的密钥。

步骤s404,依据预设目标对象的公钥对区块密钥进行加密,得到对应预设目标对象的区块加密密钥。

作为一种可选的实施例,上述预设目标对象可以为允许查看上传到区块链上的交易数据的应用方或监管机构,为了指定哪些用户可以查看上传到区块链上的数据,可以利用允许查看上传到区块链上的交易数据的各个应用方或监管方(监管机构)的公钥将生成的区块密钥进行加密,得到允许查看上传到区块链上的交易数据的各个应用方或监管方对应的区块加密密钥。

步骤s406,依据加密数据和区块加密密钥生成上传数据,并将上传数据上传至区块链。

作为一种可选的实施例,在利用生成的区块密钥对即将上传到区块链的待上传数据进行加密,得到加密后的加密数据,并利用允许查看上传到区块链上的交易数据的各个应用方或监管方(监管机构)的公钥将生成的区块密钥进行加密,得到允许查看上传到区块链上的交易数据的各个应用方或监管方对应的区块加密密钥后,可以根据得到的加密数据和各个应用方或监管方对应的区块加密密钥生成上传到区块链的上传数据,并上传到区块链。

由上可知,在本申请上述实施例中,通过生成用于加密待上传至区块链上的原始数据的区块密钥,利用该区块密钥将待上传至区块链的原始数据进行加密得到对应的加密数据,并利用被允许查看该原始数据的应用方和监管方的公钥对该区块密钥进行加密得到对应的区块加密密钥,然后利用加密终端的私钥对加密后的加密数据、区块加密密钥进行签名后上传至区块链。

通过本申请上述实施例提供的方案,达到了控制区块链上的数据只能被许可的应用方或监管方进行查看的目的,从而实现了保护用户数据隐私的技术效果。

由此,本申请提供的上述实施例的方案解决了由于在区块链上实行对数据的访问权限控制,导致的工作量大且运算复杂的技术问题。

在一种可选的实施方案中,如图5所示,依据区块密钥加密待上传数据,得到加密数据包括:

步骤s502,依据区块密钥通过对称密码算法对待上传数据进行加密,得到加密数据,其中,对称密码算法,用于加密终端和解密终端通过同一密钥进行加密和解密。

具体地,在上述实施例中,在生成将区块链上存储交易数据的某个区块的数据进行加密的区块密钥后,通过对称密码算法对待上传数据进行加密,得到加密数据。

需要说明的是,依据区块密钥采用对称加密算法对即将上传到区块链上某区块的数据进行加密,以便允许查看该区块内的数据的应用方或监管方可以根据解密后的区块密钥对加密数据进行解密,进而得到该区块内的原始数据。

可选地,采用的对称加密算法可以包括但不限于des、aes等算法。

通过上实施例,由数据提供方来生成随机的对称加密密钥,并利用此对称加密密钥对上传到区块链的数据进行加密的目的。

在一种可选的实施方案中,如图6所示,步骤s404,依据区块密钥对预设目标对象的公钥进行加密,得到对应预设目标对象的区块加密密钥包括:

步骤s602,通过预先获取的数字证书提取预设目标对象的公钥;

步骤s604,依据公钥通过非对称密码算法对区块密钥加密,得到区块加密密钥,其中,非对称密码算法,用于在加密终端以解密终端的公钥对待加密数据进行加密,在解密终端通过解密终端的私钥对加密后的待加密数据进行解密。

具体地,在上述实施例中,在生成将区块链上存储交易数据的某个区块的数据进行加密的区块密钥后,获取允许查看上传到区块链上的交易数据的各个应用方或监管方(监管机构)的公钥,并通过获取到的公钥,采用非对称密码算法将生成的区块密钥进行加密,得到允许查看上传到区块链上的交易数据的各个应用方或监管方对应的区块加密密钥,可选地,可以根据预先获取的数字证书提取允许查看上传到区块链上的交易数据的各个应用方或监管方(监管机构)的公钥。

需要说明的是,非对称加密算法是指在“加密”和“解密”的过程中分别使用两个密码,其中,公开的密钥称为“公钥”,没有公开的密钥称为“私钥”。上述实施例中,应用方或监管方的公钥是对区块链公开的,区块链上的每个节点都可以查看到应用方或监管方的公钥,因而,当某一节点上传的数据需要指定允许查看该数据的应用方或监管方时,可以采用允许查看数据的应用方或监管方的公钥对区块密钥进行加密,这样,只有允许查看数据的应用方或监管方的私钥才能解密加密的区块密钥,进而利用该区块密钥对交易数据进行解密。

可选地,采用的非对称加密算法可以包括但不限于rsa、elgamal、d-h、ecc等算法。

通过上述实施例,利用各个数据查看方的公钥加密生成的区块密钥,可以生成允许查看上传到区块链上的交易数据的各个应用方或监管方对应的区块加密密钥,并使得各个应用方或监管方可以采用各自的区块加密密钥解密从区块链上获取到的数据,进而实现了制定。

在一种可选的实施方案中,如图7所示,步骤s404,依据公钥通过非对称密码算法对区块密钥加密,得到区块加密密钥包括:

步骤s702,在预设目标对象的个数为多个目标对象的情况下,获取多个目标对象各自的公钥;

步骤s704,依据多个目标对象各自的公钥通过非对称密码算法对区块密钥进行加密,得到多个区块加密密钥。

具体地,在上述实施例中,上述预设目标对象可以是允许查看区块链上数据的用户,可以是应用方,也可以是监管方;当允许查看区块链上数据的用户为多个的情况下,例如,多个应用方,或多个应用方和监管方的情形,在利用预设目标对象的公钥对区块密钥进行加密的过程中,获取各个应用方和监管方各自的公钥,并利用各自的公钥分别采用非对称密码算法对区块密钥进行加密,得到各个应用方和监管方各自的区块加密密钥。

一种可选的实施例中,假如某次交易中,允许查看区块链上某区块中存储的交易数据的用户为应用方1、应用方2和监管方1,则分别获取应用方1、应用方2和监管方1的公钥,并利用应用方1、应用方2和监管方1各自的公钥可以分别采用非对称密码算法对该区块的区块密钥进行加密,得到多个区块加密密钥。

通过上述实施例,可以实现指定允许查看区块链上某一区块存储的交易数据的一个或多个用户,以确保该区块的交易数据只能被许可的用户查看,进而保证数据隐私的目的。

为了便于解密终端验证获取到数据确实来自加密终端,在一种可选的实施方案中,如图8所示,依据加密数据和区块加密密钥生成上传数据包括:

步骤s802,依据预先获取的加密终端的私钥,对加密数据和区块加密密钥进行签名,得到数据签名;

步骤s804,依据加密数据、区块加密密钥和数据签名生成上传数据,其中,数据签名,用于在解密终端验证上传数据是否为加密终端上传的数据。

具体地,在上述实施例中,提供数据的发送方利用自己的私钥对上传的加密数据和区块加密密钥添加数字签名,解密终端可以通过该数据签名,验证获取到的上传数据是否为加密终端上传的数据。

通过上述实施例,一方面,可以确定解密终端获取到的数据确实是由加密终端发送的;另一方面,可以验证获取到的数据的完整性。

综上,本申请提供的数据加密的方法在应用过程中具体如下:

在一种可选的实施方案中,在步骤s402中依据区块密钥加密待上传数据,得到加密数据之前,本申请提供的数据加密的方法还包括:

步骤s399,接收信息上链请求;其中,信息上链请求包括:待上传数据;

步骤s400,依据预设条件检测待上传数据是否正确;

步骤s401,在检测结果正确的情况下,依据区块密钥加密待上传数据。

进一步地,基于上述步骤s399至步骤s401,可选的,步骤s402中依据区块密钥加密待上传数据,得到加密数据包括:

step1,对待上传数据中的摘要数据通过区块密钥进行加密,得到加密数据。

具体的,图8(a)是根据本申请实施例的一种数据加密的方法的数据上链的流程图;如上图8a所示,由用户提交信息上链请求,由权威机构或可信第三方验证用户数据之后对用户的数据进行摘要然后用其私钥加密,最后将此加密的摘要上链。

其中,权威机构或可信第三方可以为本申请中的加密终端所属位置。对用户的数据进行摘要然后用权威机构或可信第三方的私钥加密可以包括:通过步骤s402中的通过区块密钥加密待上传数据,得到加密数据。加密流程详见图2(a)和图3(a)。

以通过权威机构对用户终端数据进行加密上链为例,结合图8(a),图8(b)是根据本申请实施例的一种数据加密的方法的数据加密上链的流程图,如图8(b)所示,将数据进行加密上链的过程如下:

1.用户提交信息上链请求,如果需要同时提交数据,则可以同时上交数据。

2.权威机构验证用户提交上来的数据,或者直接测量用户获取数据,比如医院直接抽血检查。

3.权威机构对数据验证通过后,采用摘要算法对数据进行摘要,该摘要算法可以包括sha256等,然后用权威机构的私钥对摘要进行加密。

4.权威机构将加密过的摘要上传到区块链上。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

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

实施例3

根据本申请实施例,还提供了一种数据解密的方法实施例,本实施例提供的数据解密的方法可以应用于本申请实施例1提供的数据加密和解密的系统中,包括但不限于本申请实施例1描述的应用场景。作为一种可选的实施例,可以用于解密通过实施例2中的数据加密的方法得到的加密数据,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请提供了图9所示的一种数据解密的方法,图9是根据本申请实施例的一种数据解密的方法流程图,如图9所示,包括如下步骤:

步骤s902,获取加密终端上传至区块链的上传数据。

作为一种可选的实施例,上述区块链上的上传数据可以包括:加密数据和区块加密密钥,其中,加密数据是指通过区块密钥加密的交易数据,区块加密密钥是指利用解密终端的公钥进行加密的区块密钥,其中,区块密钥是指加密终端生成的用于将区块链上存储交易数据的某个区块的数据进行加密的密钥。

步骤s904,通过预先存储的解密终端的私钥对上传数据中的区块加密密钥进行解密,得到加密终端生成的区块密钥。

具体地,在上述步骤中,当获取到加密终端上传至区块链的加密数据和区块加密密钥后,解密终端可以利用自己的私钥对区块加密密钥进行解密,得到加密终端生成的用于将区块链上存储交易数据的某个区块的数据进行加密的区块密钥。

步骤s906,通过区块密钥解密上传数据中的加密数据,得到加密终端加密的待上传数据。

具体地,在上述步骤中,当解密终端根据自己的私钥得到加密终端生成的用于将区块链上存储交易数据的某个区块的数据进行加密的区块密钥后,利用该区块密钥对获取到的上传数据中的加密数据进行解密,得到加密终端上传到区块链的原始数据。

由上可知,在本申请上述实施例中,在获取到加密终端上传至区块链上的通过区块密钥将原始数据加密得到的加密数据以及利用允许查看该原始数据的用户的公钥加密该区块密钥得到的区块加密密钥后,利用解密终端的私钥解密区块解密密钥得到加密终端用于加密原始数据的区块密钥,并利用该区块密钥解密将获取到的加密数据得到加密终端上传的原始数据。

通过本申请上述实施例提供的方案,达到了只有被许可的应用方或监管方才能对上传到区块链上的数据进行查看的目的,从而实现了保护用户数据隐私的技术效果。

由此,本申请提供的上述实施例的方案解决了由于在区块链上实行对数据的访问权限控制,导致的工作量大且运算复杂的技术问题。

在一种可选的实施例中,如图10所示,在通过预先存储的解密终端的私钥对上传数据中的区块加密密钥进行解密之前,上述方法还可以包括如下步骤:

步骤s102,获取上传数据中的数据签名;

步骤s104,判断数据签名是否为加密终端上传的上传数据的签名;

步骤s106a,在判断结果为是的情况下,对上传数据中的区块加密密钥进行解密;

步骤s106b,在判断结果为否的情况下,对上传数据暂停处理。

作为一种可选的实施例,上述数据签名可以是加密终端对即将上传至区块链数据的加密数据和区块加密密钥添加的数字签名,在获取到上传数据后,判断上传数据中获取到的数据签名是否为加密终端上传的上传数据的签名,如果上传数据中获取到的数据签名是加密终端上传的上传数据的签名,则对上传数据中的区块加密密钥进行解密;反之,则对不对获取到的上传数据进行处理。

通过上述实施例,通过验证解密终端获取到的数据是否来自加密终端,并在验证成功的情况下才对数据进行解密处理,一方面保证了数据的来源的可靠性和完成性,另一方面,也可以降低解密终端因解密错误数据导致的资源浪费。

在一种可选的实施例中,如图11所示,步骤s904,通过预先存储的解密终端的私钥对上传数据中的区块加密密钥进行解密,得到加密终端生成的区块密钥包括:

步骤s112,依据私钥通过非对称密码算法对区块加密密钥进行解密,得到加密终端生成的区块密钥。

具体地,在上述实施例中,由于解密终端获取到的上传数据中,区块加密密钥是加密终端通过解密终端的公钥进行加密的,因而,解密终端可以利用自己的私钥,通过非对称密码算法对区块加密密钥进行解密,从而得到加密终端生成的用于将区块链上存储交易数据的某个区块的数据进行加密的区块密钥。

作为一种可选的实施例,上述非对称密码算法,用于在加密终端以解密终端的公钥对待加密数据进行加密,在解密终端侧通过解密终端的私钥对加密后的待加密数据进行解密。

在一种可选的实施例中,如图12所示,步骤s906,通过区块密钥解密上传数据中的加密数据,得到加密终端加密的待上传数据包括:

步骤s122,依据区块密钥通过对称密码算法对加密数据解密,得到加密终端加密的待上传数据。

具体地,在上述实施例中,当当解密终端根据自己的私钥得到加密终端生成的用于将区块链上存储交易数据的某个区块的数据进行加密的区块密钥后,可以利用该区块密钥,采用对称密码算法对加密数据解密,得到加密终端加密的原始数据。

作为一种可选的实施例,上述对称密码算法,可以用于加密终端和解密终端通过同一密钥进行加密和解密。

综上,对应实施例2的数据加密的方法,在本申请实施例提供的数据解密的方法在应用过程中具体如下:

在一种可选的实施方案中,在步骤s902中获取加密终端上传至区块链的上传数据之前,本申请实施例提供的数据解密的方法还包括:

步骤s897,接收数据服务请求;

步骤s898,依据数据服务请求,返回用户数据服务信息需求信息;

步骤s899,接收依据用户数据服务信息需求信息返回的用户信息,并对用户信息进行验证;

步骤s900,在验证结果为用户信息不完整的情况下,向加密终端发送用户数据请求消息;

步骤s901,接收加密终端发送的用户数据。

进一步地,可选的,步骤s902中获取加密终端上传至区块链的上传数据包括:

step1,获取区块链的上传数据中的摘要数据。

可选的,在步骤s906中得到加密终端加密的待上传数据之后,本申请实施例提供的数据解密的方法还包括:

步骤s907,对摘要数据和待上传数据进行验证;

步骤s908,在依据预设条件对摘要数据和待上传数据验证成功之后,提供对应的服务。

具体的,图12(a)是根据本申请实施例的一种数据解密的方法的数据验证示意图;如图12(a)所示,用户在第三方运营商(即,本申请实施例中提到的解密终端所属位置)那里请求服务,第三方运营商对用户隐私数据进行验证;

其中,用户在第三方运营商提交服务请求,如果有数据也可以同时提交数据,第三方运营商从链上获取数据对应的签名,如果需要获取具体数据则从权威机构(即,本申请实施例中的加密终端所属位置)查询数据,然后将用户数据和对应的权威机构签名进行验证。

结合图12(a),图12(b)是根据本申请实施例的一种数据解密的方法的隐私数据验证示意图;如上图12(b)所示,第三方运营商对链上数据进行解密的过程如下:

1.用户在在第三方运营商那里请求服务,第三方运营商提出验证用户信息需求,用户提出验证请求,附待验证的数据信息;

2.如果用户身上也没有完整的隐私数据,则需要向权威机构获取隐私信息,可以在线的也可以线下获取,视具体情况;

3.权威机构返回用户隐私数据信息;

4.第三方运营商向分布式区块链请求用户隐私数据的加密摘要(权威机构对隐私数据的签名)。

5.分布式区块链返回数据的签名信息给第三方运营商。

6.第三方运营商采用权威机构的公钥对用户的隐私数据以及隐私数据的签名信息进行验证。

7.验证通过,则对用户提供相应的服务。

基于上述,隐私数据签名上链过程:由用户提供数据给权威机构进行认证,认证通过后生成数据摘要,并由权威机构私钥对数据摘要加密生成签名,然后将数据的签名上链。

其中,隐私数据验证的流程:用户提供隐私数据给第三方运营商进行验证,第三方运营商通过区块链获取权威机构对此用户隐私数据的签名以及权威机构的公钥,用权威机构的公钥验证隐私数据及数据签名是否一致来判定此隐私数据的正确性。

实施例2和本实施例中提供的数据解密的方法采用权威机构对用户隐私数据进行摘要,然后用私钥加密(相当于对隐私数据进行签名)之后上链,数据本身并未上链。在本申请中数据摘要签名上链,数据存在权威机构,只能由用户从权威机构获取,数据不存在第三方运营商,保证隐私数据安全;

其次,权威机构的签名上链,这样权威机构也无法否认在曾经的某个时间,它认可并记录了某个数据。

并且,第三方运营商可以从多个权威机构那里进行多方验证,以提高验证的正确性。

可以看到,本申请可以实现在有效地保护用户的隐私数据的前提下对用户隐私数据进行验证,可以解决个人健康状况查询、个人信用查询、个人资产查询等区块链应用场景中需要保护用户数据隐私又需要提供给第三方运营商进行数据验证的需求。

除此之外,本申请在数据验证时,每次需要验证用户隐私数据的时候,第三方运营商向权威机构申请用户数据的验证请求,第三方权威机构验证后返回验证结果给第三方运营商。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

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

实施例4

根据本申请实施例,还提供了一种用于实现上述实施例2中数据加密的方法的装置实施例,图13是根据本申请实施例的一种数据加密的装置示意图,如图13所示,该装置包括:第一加密模块131、第二加密模块133和数据上传模块135。

其中,第一加密模块131,用于生成区块密钥,并依据区块密钥加密待上传数据,得到加密数据;

第二加密模块133,用于依据预设目标对象的公钥对区块密钥进行加密,得到对应预设目标对象的区块加密密钥;

数据上传模块135,用于依据加密数据和区块加密密钥生成上传数据,并将上传数据上传至区块链。

此处需要说明的是,上述第一加密模块131、第二加密模块133和数据上传模块135对应于实施例2中的步骤s402至s406,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

由上可知,在本申请上述实施例中,通过第一加密模块131生成用于加密待上传至区块链上的原始数据的区块密钥,并利用该区块密钥将待上传至区块链的原始数据进行加密得到对应的加密数据,通过利用第二加密模块133被允许查看该原始数据的应用方和监管方的公钥对该区块密钥进行加密得到对应的区块加密密钥,然后利用加密终端的私钥对加密后的加密数据、区块加密密钥进行签名后上传至区块链。

通过本申请上述实施例提供的方案,达到了控制区块链上的数据只能被许可的应用方或监管方进行查看的目的,从而实现了保护用户数据隐私的技术效果。

由此,本申请提供的上述实施例的方案解决了由于在区块链上实行对数据的访问权限控制,导致的工作量大且运算复杂的技术问题。

在一种可选的实施方案中,如图13所示,上述第一加密模块包括:第一加密单元,用于依据区块密钥通过对称密码算法对待上传数据进行加密,得到加密数据,其中,对称密码算法,用于加密终端和解密终端通过同一密钥进行加密和解密。

此处需要说明的是,上述第一加密单元对应于实施例2中的步骤s502,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施方案中,如图13所示,上述第二加密模块包括:第一获取单元,用于通过预先获取的数字证书提取预设目标对象的公钥;第二加密单元,用于依据公钥通过非对称密码算法对区块密钥加密,得到区块加密密钥,其中,非对称密码算法,用于在加密终端以解密终端的公钥对待加密数据进行加密,在解密终端侧通过解密终端的私钥对加密后的待加密数据进行解密。

此处需要说明的是,上述第一获取单元和第二加密单元对应于实施例2中的步骤s602至s604,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施方案中,如图13所示,上述第二加密模块包括:第二获取单元,用于在预设目标对象的个数为多个目标对象的情况下,获取多个目标对象各自的公钥;第三加密单元,用于依据多个目标对象各自的公钥通过非对称密码算法对区块密钥进行加密,得到多个区块加密密钥。

此处需要说明的是,上述第二获取单元和第三加密单元对应于实施例2中的步骤s702至s704,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施方案中,如图13所示,上述数据上传模块包括:数据签名单元,用于依据预先获取的加密终端的私钥,对加密数据和区块加密密钥进行签名,得到数据签名;数据上传单元,用于依据加密数据、区块加密密钥和数据签名生成上传数据,其中,数据签名,用于在解密终端验证上传数据是否为加密终端上传的数据。

此处需要说明的是,上述数据签名单元和数据上传单元对应于实施例2中的步骤s802至s804,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

实施例5

根据本申请实施例,还提供了一种用于实现上述实施例3中数据解密的方法的装置实施例,图14是根据本申请实施例的一种数据解密的装置示意图,如图14所示,该装置包括:第一获取模块141、第一解密模块143和第二解密模块145。

其中,第一获取模块141,用于获取加密终端上传至区块链的上传数据;

第一解密模块143,用于通过预先存储的解密终端的私钥对上传数据中的区块加密密钥进行解密,得到加密终端生成的区块密钥;

第二解密模块145,用于通过区块密钥解密上传数据中的加密数据,得到加密终端加密的待上传数据。

此处需要说明的是,上述第一获取模块141、第一解密模块143和第二解密模块145对应于实施例3中的步骤s902至s906,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

由上可知,在本申请上述实施例中,通过第一获取模块141获取到加密终端上传至区块链上的通过区块密钥将原始数据加密得到的加密数据以及利用允许查看该原始数据的用户的公钥加密该区块密钥得到的区块加密密钥后,通过第一解密模块143利用解密终端的私钥解密区块解密密钥得到加密终端用于加密原始数据的区块密钥,并通过第二解密模块145利用该区块密钥解密将获取到的加密数据得到加密终端上传的原始数据。

通过本申请上述实施例提供的方案,达到了只有被许可的应用方或监管方才能对上传到区块链上的数据进行查看的目的,从而实现了保护用户数据隐私的技术效果。

由此,本申请提供的上述实施例的方案解决了由于在区块链上实行对数据的访问权限控制,导致的工作量大且运算复杂的技术问题。

在一种可选的实施例中,如图14所示,上述装置还包括:第二获取模块,用于在通过预先存储的解密终端的私钥对上传数据中的区块加密密钥进行解密之前,获取上传数据中的数据签名;判断模块,用于判断数据签名是否为加密终端上传的上传数据的签名;在判断结果为是的情况下,对上传数据中的区块加密密钥进行解密;在判断结果为否的情况下,对上传数据暂停处理。

此处需要说明的是,上述第二获取模块和判断模块对应于实施例3中的步骤s102至s108,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,如图14所示,上述第一解密模块包括:第一解密单元,用于依据私钥通过非对称密码算法对区块加密密钥进行解密,得到加密终端生成的区块密钥。

此处需要说明的是,上述第一解密单元对应于实施例3中的步骤s112,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,如图14所示,上述第二解密模块包括:第二解密单元,用于依据区块密钥通过对称密码算法对加密数据解密,得到加密终端加密的待上传数据。

此处需要说明的是,上述第二解密单元对应于实施例3中的步骤s122,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

实施例6

本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个访问设备。

图15示出了一种计算机终端的硬件结构框图。如图15所示,计算机终端15可以包括一个或多个(图中采用152a、152b,......,152n来示出)处理器152(处理器152可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器154、以及用于通信功能的传输装置156。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图15所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端15还可包括比图15中所示更多或者更少的组件,或者具有与图15所示不同的配置。

应当注意到的是上述一个或多个处理器152和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端15中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

处理器152可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取地图中的选中的路径;根据选中的路径的路况信息,生成路径的动态图像,其中,路径的动态图像为沿路径的起始位置到终点位置动态移动的图像;在地图中显示路径的动态图像。

存储器154可用于存储应用软件的软件程序以及模块,如本申请实施例2中的数据加密的方法或实施例3中数据解密的方法对应的程序指令/数据存储装置,处理器152通过运行存储在存储器154内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据加密的方法或数据解密的方法。存储器154可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器154可进一步包括相对于处理器152远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端15。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置156用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端15的通信供应商提供的无线网络。在一个实例中,传输装置156包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置156可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端15的用户界面进行交互。

此处需要说明的是,在一些可选实施例中,上述图15所示的计算机终端15可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图15仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机终端15中的部件的类型。

作为一种可选的实施方案,在本实施例中,上述计算机终端15可以执行应用程序的数据加密的方法中以下步骤的程序代码:生成区块密钥,并依据区块密钥加密待上传数据,得到加密数据;依据预设目标对象的公钥对区块密钥进行加密,得到对应预设目标对象的区块加密密钥;依据加密数据和区块加密密钥生成上传数据,并将上传数据上传至区块链。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:生成区块密钥,并依据区块密钥加密待上传数据,得到加密数据;依据预设目标对象的公钥对区块密钥进行加密,得到对应预设目标对象的区块加密密钥;依据加密数据和区块加密密钥生成上传数据,并将上传数据上传至区块链。

可选的,上述处理器还可以执行如下步骤的程序代码:依据区块密钥通过对称密码算法对待上传数据进行加密,得到加密数据,其中,对称密码算法,用于加密终端和解密终端通过同一密钥进行加密和解密。

可选的,上述处理器还可以执行如下步骤的程序代码:通过预先获取的数字证书提取预设目标对象的公钥;依据公钥通过非对称密码算法对区块密钥加密,得到区块加密密钥,其中,非对称密码算法,用于在加密终端以解密终端的公钥对待加密数据进行加密,在解密终端通过解密终端的私钥对加密后的待加密数据进行解密。

可选的,上述处理器还可以执行如下步骤的程序代码:在预设目标对象的个数为多个目标对象的情况下,获取多个目标对象各自的公钥;依据多个目标对象各自的公钥通过非对称密码算法对区块密钥进行加密,得到多个区块加密密钥。

可选的,上述处理器还可以执行如下步骤的程序代码:依据预先获取的加密终端的私钥,对加密数据和区块加密密钥进行签名,得到数据签名;依据加密数据、区块加密密钥和数据签名生成上传数据,其中,数据签名,用于在解密终端验证上传数据是否为加密终端上传的数据。

作为另一种可选的实施方案,在本实施例中,上述计算机终端15可以执行应用程序的数据解密的方法中以下步骤的程序代码:获取加密终端上传至区块链的上传数据;通过预先存储的解密终端的私钥对上传数据中的区块加密密钥进行解密,得到加密终端生成的区块密钥;通过区块密钥解密上传数据中的加密数据,得到加密终端加密的待上传数据。

可选的,上述处理器还可以执行如下步骤的程序代码:获取上传数据中的数据签名;判断数据签名是否为加密终端上传的上传数据的签名;在判断结果为是的情况下,对上传数据中的区块加密密钥进行解密;在判断结果为否的情况下,对上传数据暂停处理。

可选的,上述处理器还可以执行如下步骤的程序代码:依据私钥通过非对称密码算法对区块加密密钥进行解密,得到加密终端生成的区块密钥。

可选的,上述非对称密码算法,用于在加密终端以解密终端的公钥对待加密数据进行加密,在解密终端侧通过解密终端的私钥对加密后的待加密数据进行解密。

可选的,上述处理器还可以执行如下步骤的程序代码:依据区块密钥通过对称密码算法对加密数据解密,得到加密终端加密的待上传数据。

可选的,上述对称密码算法,用于加密终端和解密终端通过同一密钥进行加密和解密。

实施例7

本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例2所提供的数据加密的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:生成区块密钥,并依据区块密钥加密待上传数据,得到加密数据;依据预设目标对象的公钥对区块密钥进行加密,得到对应预设目标对象的区块加密密钥;依据加密数据和区块加密密钥生成上传数据,并将上传数据上传至区块链。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据区块密钥通过对称密码算法对待上传数据进行加密,得到加密数据,其中,对称密码算法,用于加密终端和解密终端通过同一密钥进行加密和解密。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过预先获取的数字证书提取预设目标对象的公钥;依据公钥通过非对称密码算法对区块密钥加密,得到区块加密密钥,其中,非对称密码算法,用于在加密终端以解密终端的公钥对待加密数据进行加密,在解密终端通过解密终端的私钥对加密后的待加密数据进行解密。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在预设目标对象的个数为多个目标对象的情况下,获取多个目标对象各自的公钥;依据多个目标对象各自的公钥通过非对称密码算法对区块密钥进行加密,得到多个区块加密密钥。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据预先获取的加密终端的私钥,对加密数据和区块加密密钥进行签名,得到数据签名;依据加密数据、区块加密密钥和数据签名生成上传数据,其中,数据签名,用于在解密终端验证上传数据是否为加密终端上传的数据。

实施例8

本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例3所提供的数据解密的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取加密终端上传至区块链的上传数据;通过预先存储的解密终端的私钥对上传数据中的区块加密密钥进行解密,得到加密终端生成的区块密钥;通过区块密钥解密上传数据中的加密数据,得到加密终端加密的待上传数据。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取上传数据中的数据签名;判断数据签名是否为加密终端上传的上传数据的签名;在判断结果为是的情况下,对上传数据中的区块加密密钥进行解密;在判断结果为否的情况下,对上传数据暂停处理。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据私钥通过非对称密码算法对区块加密密钥进行解密,得到加密终端生成的区块密钥。

可选地,在本实施例中,非对称密码算法,用于在加密终端以解密终端的公钥对待加密数据进行加密,在解密终端侧通过解密终端的私钥对加密后的待加密数据进行解密。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据区块密钥通过对称密码算法对加密数据解密,得到加密终端加密的待上传数据。

可选地,在本实施例中,对称密码算法,用于加密终端和解密终端通过同一密钥进行加密和解密。

实施例9

根据本发明实施例的另一个方面,还提供了一种数据加密的方法,包括:获取加密数据,其中,生成加密数据使用的密钥包括区块密钥;获取加密后的区块密钥,其中,加密区块密钥的密钥包括第一公钥;获取签名数据,其中,签名使用的密钥包括第二私钥;和发送加密数据、加密后的区块密钥、签名数据到服务器。

实施例10

根据本发明实施例的另一个方面,还提供了一种数据解密的方法,包括:获取来自客户端的加密数据、加密后的区块密钥、签名数据;通过第二公钥验证签名数据;通过第一私钥对加密后的区块密钥进行解密,得到区块密钥;和通过区块密钥解密加密数据,得到上传数据。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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