CN114422263B - 一种基于区块链网络的数据获取方法、装置、***、计算机设备及机器可读存储介质 - Google Patents
一种基于区块链网络的数据获取方法、装置、***、计算机设备及机器可读存储介质 Download PDFInfo
- Publication number
- CN114422263B CN114422263B CN202210167451.9A CN202210167451A CN114422263B CN 114422263 B CN114422263 B CN 114422263B CN 202210167451 A CN202210167451 A CN 202210167451A CN 114422263 B CN114422263 B CN 114422263B
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- plaintext
- data
- decryption
- packet
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000013475 authorization Methods 0.000 claims abstract description 80
- 238000012546 transfer Methods 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 10
- 210000001503 joint Anatomy 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 75
- 238000004891 communication Methods 0.000 description 17
- 238000013500 data storage Methods 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000009795 derivation Methods 0.000 description 12
- 230000008520 organization Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 206010061619 Deformity Diseases 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/104—Grouping of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书公开了一种基于区块链网络的数据获取方法、装置及***。所述方法包括:需求方设备从区块链网络中获取密文集合;所述生成方设备接收解密请求,并根据所述解密请求中所述需求方设备的设备信息,将所述需求方设备有权限获取的明文分组确定为授权分组;所述生成方设备将所述授权分组对应的解密存储密钥发送到所述需求方设备;所述需求方设备利用所接收的解密存储密钥解密所述授权分组的密文,得到所述授权分组。
Description
技术领域
本说明书实施例涉及区块链领域,尤其涉及一种基于区块链网络的数据获取方法、装置及***。
背景技术
目前,在开展较为复杂的业务时,通常需要不同的机构之间共享部分数据。例如,在开展线上支付业务时,通常需要多家银行、支付业务开发方、以及多家商户之间共享部分业务数据。银行与开发方之间需要共享账户信息、商户与开发方之间需要共享交易信息、商户与银行之间需要共享转账信息。
在具体实现时,为了避免多个机构之间互联造成的连接资源浪费的情况,通常可以设置中心化的共享数据存储设备。该设备上可以存储各个机构发送的、允许共享的数据。当单个机构需要获取共享的数据时,可以仅连接该共享数据存储设备获取数据,从而节省连接资源。
但上述技术方案中,存在中心化的共享数据存储设备随意篡改所存储数据的风险,导致各个机构可能获取到错误数据。
发明内容
为了解决上述技术问题,本说明书提供了一种基于区块链网络的数据获取方法。技术方案如下所示。
一种基于区块链网络的数据获取方法,区块链网络中存储有密文集合,所述密文集合由数据生成方设备按照以下方式生成:将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合;
所述方法包括:
需求方设备从所述区块链网络中获取所述密文集合;
所述生成方设备接收解密请求,并根据所述解密请求中所述需求方设备的设备信息,将所述需求方设备有权限获取的明文分组确定为授权分组;
所述生成方设备将所述授权分组对应的解密存储密钥发送到所述需求方设备;
所述需求方设备利用所接收的解密存储密钥解密所述授权分组的密文,得到所述授权分组。
一种基于区块链网络的数据获取方法,应用于中转设备;中转设备对接于若干数据生成方设备和若干数据需求方设备;区块链网络中存储有密文集合,任一密文集合由生成方设备按照以下方式生成:将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合;
所述方法包括:
接收目标需求方设备发送的用于获取目标密文集合的数据获取请求,响应于所述数据获取请求,从所述区块链网络中获取所述目标密文集合;
确定生成所述目标密文集合的目标生成方设备,并向所述目标生成方设备发送解密请求,以使所述目标生成方设备根据所述解密请求中所述目标需求方设备的设备信息,将所述目标需求方设备有权限获取的明文分组确定为授权分组;
获取所述目标生成方发送的所述授权分组对应的解密存储密钥;
将所述解密存储密钥和所述目标密文集合发送到所述目标需求方设备,以使所述目标需求方设备利用所接收的解密存储密钥解密所述授权分组的密文,得到所述授权分组。
一种基于区块链网络的数据获取***,区块链网络中存储有密文集合,所述密文集合由数据生成方设备按照以下方式生成:将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合;
所述***包括所述生成方设备和需求方设备;
所述需求方设备用于:从所述区块链网络中获取所述密文集合;
所述生成方设备用于:接收解密请求,并根据所述解密请求中所述需求方设备的设备信息,将所述需求方设备有权限获取的明文分组确定为授权分组;并将所述授权分组对应的解密存储密钥发送到所述需求方设备;
所述需求方设备用于:利用所接收的解密存储密钥解密所述授权分组的密文,得到所述授权分组。
一种基于区块链网络的数据获取装置,应用于中转设备,对接于若干数据生成方设备和若干数据需求方设备;区块链网络中存储有密文集合,任一密文集合由生成方设备按照以下方式生成:将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合;
所述装置包括:
密文获取模块,用于接收目标需求方设备发送的用于获取目标密文集合的数据获取请求,响应于所述数据获取请求,从所述区块链网络中获取所述目标密文集合;
密钥获取模块,用于确定生成所述目标密文集合的目标生成方设备,并向所述目标生成方设备发送解密请求,以使所述目标生成方设备根据所述解密请求中所述目标需求方设备的设备信息,将所述目标需求方设备有权限获取的明文分组确定为授权分组;获取所述目标生成方发送的所述授权分组对应的解密存储密钥;
响应模块,用于将所述解密存储密钥和所述目标密文集合发送到所述目标需求方设备,以使所述目标需求方设备利用所接收的解密存储密钥解密所述授权分组的密文,得到所述授权分组。
基于上述技术方案,通过将数据密文存储到区块链网络中,借助区块链网络不可篡改的特性,使得数据密文无法被篡改,基于数据密文也无法泄露数据明文,提高了数据的安全性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种基于区块链网络的数据获取***的结构示意图;
图2是本说明书实施例提供的一种基于区块链网络的数据获取方法的流程示意图;
图3是本说明书实施例提供的一种密钥派生的原理示意图;
图4是本说明书实施例提供的另一种基于区块链网络的数据获取***的结构示意图;
图5是本说明书实施例提供的一种基于区块链网络的数据存储与数据获取方法的原理示意图;
图6是本说明书实施例提供的一种基于区块链网络的数据获取***的结构示意图;
图7是本说明书实施例提供的一种基于区块链网络的数据获取装置的结构示意图;
图8是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于公开的范围。
目前,在开展较为复杂的业务时,通常需要不同的机构之间共享部分数据。
例如,在开展线上支付业务时,通常需要多家银行、支付业务开发方、以及多家商户之间共享部分业务数据。银行与开发方之间需要共享账户信息、商户与开发方之间需要共享交易信息、商户与银行之间需要共享转账信息。
在具体实现时,由于存在多个机构之间单独建立连接的情况,例如,多家银行分别与多家商户之间单独建立连接,则很容易出现连接资源浪费的情况。并且,对于机构之间的数据交互也难以进行管理,难以确保数据的安全性。
为了避免出现这一情况,通常可以设置中心化的共享数据存储设备。该设备上可以存储各个机构发送的、允许共享的数据。当单个机构需要获取其他多个机构共享的数据时,可以仅连接该共享数据存储设备获取数据,从而可以只建立单个连接就获取多个机构的共享数据,无需针对每个其他机构单独建立连接,节省连接资源。
并且,可以针对共享数据存储设备进行管理,例如通过安全数据交互连接交互数据、管理数据访问权限等,可以提高存储数据的安全性。
但上述技术方案中,中心化的共享数据存储设备存在较多的风险。例如,存在中心化的共享数据存储设备随意篡改共享数据的风险,导致各个机构可能获取到错误数据;或者,存在中心化的共享数据存储设备随意泄露共享数据的风险。
为了解决上述问题,本说明书提供了一种基于区块链网络的数据获取方法。
该方法中,可以将各个机构共享的数据存储到区块链网络中,借助区块链网络中存储数据无法被篡改的性质,使得共享的数据无法被任一设备篡改。
为了防止数据明文直接存储在区块链网络中导致隐私泄露等问题,本方法中还可以针对共享数据加密,将共享数据的密文上传到区块链网络中进行存储,在确保共享数据无法被篡改的前提下,使得共享数据明文难以泄露。相应地,当其他机构需要获取共享的数据明文时,可以先获取到区块链网络中的共享数据密文,再获取到相应的密钥进行解密,得到共享数据明文。
需要说明的是,本方法中利用区块链网络替换掉中心化的设备,避免了中心化设备存在的风险,也确保了各个机构只需要建立单个与区块链网络的连接,就可以获取到区块链网络中存储的共享数据密文,节省了连接资源。
而如果任一机构希望获取共享数据明文,则需要获取到相应的密钥进行解密,也进一步提高了共享数据明文的安全性。
此外,针对单个机构共享的数据明文,该机构可以确定其他机构所能够获取的数据明文,可以是部分数据明文,也可以是全部数据明文。
具体地,可以针对单个机构共享的数据明文,确定其他机构具有获取权限的数据明文。不同的其他机构可以具有不同数据明文的获取权限。也可以存在其他机构具有获取共享的全部数据明文的权限,也可以存在其他机构具有获取共享的部分数据明文的权限,也可以存在其他机构不具有获取共享的任一数据明文的权限。
例如,出于数据安全和机构之间信任程度等因素的考虑,针对单个银行共享的数据,不受该银行信任的商户可能无法获取到任意一条数据,而存在信任风险的商户可能只能获取到很小一部分、安全性需求较低的数据。
例如,由于执行业务的不同,针对单个商户共享的数据(包括账单明细和客户信息),为商户提供贷款的银行有权限获取其中的部分信息(账单明细),而为商户开发相关业务程序的开发方有权限获取其中的不同部分信息(客户信息)。
而如果针对同一机构存储到区块链网络的全部数据,使用同一密钥进行加解密,对于只有部分数据明文获取权限的其他机构,可以获取到用于解密全部数据密文的密钥,从而可以获取到全部数据明文。
为了方便限制其他机构所能解密获取的数据明文,本方法中,可以采用粒度加密的方法。具体是在将共享数据密文存储到区块链网络之前,可以将需要存储到区块链网络中的若干明文数据划分为若干个明文分组,具体并不限定明文分组的划分依据,只要所得到的全部明文分组的并集是待存储的全部明文数据即可,其中不同明文分组之间可以存在相同的明文数据。
之后,可以针对不同的明文分组分别利用不同密钥进行加密,得到对应的密文分组。相对应的,不同密文分组需要分别采用不同的密钥进行解密。
当其他不同机构需要获取共享数据中的不同明文分组时,可以发送相对应的密钥进行解密,而利用所接收的密钥只能解密对应的密文分组,无法解密其他密文分组,从而避免其他机构通过所接收的密钥获取到权限以外的共享数据明文。
例如,区块链网络中包括共享数据中的3个密文分组,分别为密文分组1、密文分组2和密文分组3,分别对应于明文分组1、明文分组2和明文分组3。在确定其他机构具有明文分组1和明文分组2的获取权限时,可以将密文分组1和密文分组2对应的解密密钥发送给该其他机构。显然该其他机构根据接收到的密钥只能解密密文分组1和密文分组2,得到明文分组1和明文分组2,无法解密密文分组3。换言之,可以避免该其他机构获取到权限以外的数据明文。
因此,可以通过解密密钥限制其他机构所能获取到的数据明文,使得其他机构只能获取到该其他机构具有获取权限的数据明文。
并且,由于使用不同的密钥对不同数据分组进行加解密,即使部分数据分组的加解密密钥泄露,对于其他未泄露密钥的数据分组而言也不受影响。
而发送给其他机构的密钥可以进一步利用其他机构的公钥加密,再由其他机构利用自身私钥解密得到密钥,确保密钥在传输过程中的安全性。
具体在划分明文分组时,本说明书实施例并不限定明文分组的划分方法,只要所得到的全部明文分组的并集是全部共享数据即可。不同明文分组之间可以存在相同的明文数据。下面给出几种划分方法的示例性说明。
可选地,可以根据共享数据中不同数据的不同安全需求划分明文分组。例如,安全需求较高的数据可以作为一个明文分组、安全需求较低的数据可以作为另一明文分组。当然,也可以划分出不同安全等级的多个明文分组。
可选地,也可以根据共享数据中不同数据的不同业务含义划分明文分组。例如,业务数据中客户信息可以作为一个明文分组、交易信息可以作为另一个明文分组。
可选地,也可以将共享数据中包含的每个明文数据作为一个单独的明文分组。例如,共享数据中如果包含50条明文数据,则可以将每条明文数据作为一个单独的明文分组,从而得到50个明文分组,不同明文分组利用不同密钥进行加解密。
可选地,也可以将共享数据中包括的每个明文数据的每个字段值作为一个单独的明文分组。例如,共享数据中每个明文数据中包含4个字段值,可以将每个明文数据中的每个字段值作为一个单独的明文分组。
上述几种划分方法从不同划分依据进行划分,可以方便进行明文分组之间的组合,灵活地确定其他机构所能够获取的明文数据。
值得注意的是,同一机构针对相同的明文数据,可以通过不同的划分方法得到不同的明文分组,进而得到不同的密文分组,之后可以将所得到的不同密文分组都存储到区块链网络中,以便于针对不同划分方法的明文分组进行组合,灵活确定其他机构所能够获取的明文数据。
例如,可以针对同一其他机构,确定可以获取安全等级为1的明文分组,并且可以获取表征客户信息的明文分组。
而针对上述采用不同密钥对不同数据分组进行加解密的操作,可能存在用于加解密的密钥数量较多的情况。例如,对于10000条明文数据,如果以每条明文数据为一个单独的明文分组,则就需要10000组不同的加解密密钥对,分别对10000个明文分组进行加密。
在密钥数量较多的基础上,本方法可以进一步考虑密钥管理的问题。
其中,本方法可以采用密钥实时生成的方法,在需要密钥时实时生成密钥,而使用完密钥后实时删除密钥,在节约存储空间的同时,可以节约保护密钥的成本,并提高密钥的安全性,从而进一步提高了数据明文的安全性。
基于上述本说明书实施例提供的方法,通过将数据密文存储到区块链网络中,借助区块链网络不可篡改的特性,使得数据密文无法被篡改,基于数据密文也无法泄露数据明文,提高了数据的安全性。区块链网络本身也可以起到中转作用,使得其他机构只需要与区块链网络建立单条连接,就可以获取到区块链网络中存储的数据密文,节约连接资源,之后获取解密密钥进行解密,得到数据明文即可,从而可以在节约连接资源的情况下,降低数据被篡改的可能性,提高数据的安全性。
此外,由于数据密文中可以包括若干密文分组,需要不同的密钥进行解密,因此,可以通过解密密钥限制其他机构所能获取到的数据明文,使得其他机构无法解密得到权限外的数据明文,在贴合不同其他机构获取数据的需求同时,也不会额外泄露需求以外的数据明文。并且,在部分明文分组的密钥泄露的情况下,其他未泄露密钥的明文分组不受影响,提高了数据明文的安全性。
并且,在本方法的数据传输过程中,无论是传输数据或密钥,可以都是经过加密的,可以提高数据或密钥在传输过程中的安全性。
下面结合附图,针对本说明书实施例提供的一种基于区块链网络的数据获取方法进行详细的解释。
在解释具体的实施例之前,为了便于理解,先解释本方法流程涉及的各个概念。
需求方设备:数据需求方可以是需要获取数据的机构,也可以简称为需求方。相应的需求方设备可以是属于数据需求方的任一设备。换言之,需求方设备可以具有获取数据的需求。
生成方设备:数据生成方可以是需要存储数据到区块链网络中的机构,由于需要存储数据密文到区块链网络中,因此,该机构需要能够生成数据密文,所以称为数据生成方,也可以简称为生成方。当然,数据生成方将数据存储到区块链网络中,可以方便其他机构获取数据密文,无需与数据生成方建立多个连接,也提高了存储数据的安全性。相应的生成方设备可以是属于数据生成方的任一设备。生成方设备可以具有生成数据密文的能力。
需要说明的是,从业务层面,需求方设备可以具有获取生成方设备中存储的数据的需求,具体可以是从区块链网络中获取生成方设备存储的数据。
此外,对于机构而言,生成方或需求方只是在一次数据交互中的角色,同一机构可以在不同数据交互中扮演不同的角色,具体可以是在作为需求方需要获取数据的同时,也可以作为生成方需要将部分数据存储到区块链网络中进行共享。
当然,生成方设备还可以管理数据密文的解密密钥,并通过发送解密密钥的方式,使得需求方设备解密数据密文,得到所能够获取的数据明文。
区块链网络:区块链网络中可以包括多个节点设备,每个节点设备上都可以存储有区块链。而区块链中可以存储至少1个密文集合,提高区块链中密文集合的安全性。密文集合可以是生成该密文集合的生成方设备存储到区块链网络中的,也可以是其他设备上传的。
区块链具体可以是公有链或联盟链。在区块链为联盟链的情况下,生成方设备和需求方设备都可以具有与联盟链通信的权限,从而可以与联盟链进行数据交互。
密文集合:可以是生成方设备所生成的数据密文的集合。其中,生成方设备可以将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合。
其中,为了便于区分密钥的功能和作用,将用于加密明文分组得到密文分组的密钥称为加密存储密钥,将用于解密密文分组得到明文分组的密钥称为解密存储密钥。
为了便于进一步的理解,如图1所示,为本说明书实施例提供的一种基于区块链网络的数据获取***的结构示意图。其中包括5个设备和区块链网络,5个设备分别与区块链网络存在连接。
其中的每个设备都可以作为需求方设备获取数据,也可以作为生成方设备存储密文集合到区块链网络。
区块链网络中包括多个节点设备,图中的5个设备需要获取数据或者存储密文集合时,可以连接区块链网络中的任一节点设备进行通信。
更进一步地,这5个设备可以保持与任一节点设备的长连接,方便获取数据或上传密文集合。由于区块链网络中通常每个节点设备中都包括相同的区块链数据,并且可以打包区块添加到区块链中,因此,无论连接哪一个节点设备,都可以获取区块链中的数据或者将密文集合打包到区块中,进一步添加到区块链中。
可见,通过区块链网络作为中转,任一设备在获取其他不同设备的数据时,无需与其他不同设备分别建立连接,只需要通过与区块链网络的连接获取其他不同设备存储到区块链网络中的数据即可,节约连接资源。
如图2所示,为本说明书提供的一种基于区块链网络的数据获取方法的流程示意图。
在本方法流程中,可以设置一个生成方设备和一个需求方设备,该需求方设备需要获取该生成方设备存储到区块链网络中的数据。具体地,该需求方设备需要获取区块链网络中该生成方设备所生成的密文集合,并且该需求方设备需要从该生成方设备获取解密密钥。
本方法流程是针对一个需求方设备和一个生成方设备之间的数据交互进行解释。因此,需要说明的是,本方法流程中涉及的需求方设备是特指的一个需求方设备,在具体解释中可以看作是第一需求方设备,相对应地,本方法流程所涉及的生成方设备是特指的一个生成方设备,在具体解释中可以看作是第一生成方设备。
本方法流程是针对第一需求方设备从区块链网络中获取第一生成方设备所生成的密文集合,并从第一生成方设备获取解密密钥的流程进行解释。
可以理解的是,对于多个需求方设备获取一个生成方设备存储到区块链网络的数据、一个需求方设备分别获取多个生成方设备存储到区块链网络的数据、多个需求方设备分别获取多个生成方设备存储到区块链网络的数据等情况,都包含若干组一个需求方设备和一个生成方设备之间的数据交互。因此,针对每组数据交互,都可以通过本方法流程实现。
可选地,区块链网络中可以存储有密文集合,该密文集合由数据生成方设备按照以下方式生成:将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合。
需要说明的是,本方法流程中的密文集合是特指的生成方设备所生成的密文集合。在具体的解释中,可以看作是第一生成方设备所生成的第一密文集合。
该方法流程可以至少包括以下步骤。
S101:需求方设备从区块链网络中获取密文集合。
其中,所获取的密文集合可以是生成方设备所生成的。
需求方设备可以根据自身的需求,从区块链网络中获取所需要的数据,在本方法流程中,需求方设备需要获取生成方设备存储到区块链网络中的数据,因此,需求方设备可以从区块链网络中获取生成方设备所生成的密文集合。
可选地,在具体解释中,第一需求方设备可以从区块链网络中,获取第一生成方设备所生成的第一密文集合。
本方法流程并不限定获取密文集合的方式。在一种可选的实施例中,需求方设备可以向区块链网络发送用于获取密文集合的请求。该请求中可以包括密文集合的标识,使得区块链网络可以根据请求中的密文集合标识确定需要发送的密文集合;该请求中也可以包括生成方设备的标识,区块链网络中可以存储生成方设备标识与密文集合之间的对应关系,使得区块链网络可以根据请求中的设备标识,确定对应的密文集合需要发送。响应于该请求,区块链网络可以将密文集合发送到需求方设备。
由于S101用于获取密文集合,之后的步骤S102-S103用于获取解密密文集合的密钥,因此,可以不限定S101和S102-S103之间的时序关系。可选地,可以先执行S102-S103获取密钥,再执行S101获取密文集合;也可以先执行S101获取密文集合,再执行S102-S103获取密钥;也可以S101和S102-S103并行执行。
S102:生成方设备接收解密请求,并根据解密请求中需求方设备的设备信息,将需求方设备有权限获取的明文分组确定为授权分组。
可选地,解密请求可以是需求方设备发送的。需求方设备可以与生成方设备通信,发送解密请求。
可选地,解密请求可以是区块链网络发送的。区块链网络可以根据需求方设备获取密文集合的操作,生成解密请求并发送到生成密文集合的生成方设备。在本实施例中,需求方设备可以无需确定生成方设备、也无需与生成方设备直接通信,而由区块链网络确定目标设备进行通信,发送解密请求,从而节约连接资源。当然,具体生成解密请求可以与区块链本身无关,而是通过区块链网络中的设备实现;生成解密请求也可以由区块链中的智能合约实现,通过智能合约,在确定需求方设备所需要获取的密文集合后触发运行该智能合约,生成解密请求,并通过链外消息机制发送到生成方设备。
可选地,解密请求可以是需求方设备生成的,并通过区块链网络进行转发,发送到生成方设备。
而具体确定生成方设备的方法,可以是需求方设备预先根据业务需求,确定所需要获取数据的机构为生成方,从而可以确定出生成方设备。区块链网络中也可以存储密文集合和生成该密文集合的生成方设备之间的对应关系,从而可以根据该对应关系确定生成方设备。
为了便于生成方设备确定需求方可以获取到的数据,解密请求中可以包括需求方设备信息,从而使得生成方设备可以跟需求方设备信息,确定需求方设备所能够获取的数据明文。
进一步地,生成方设备可能生成多个不同的密文集合,因此,解密请求中还可以包括密文集合标识,从而使得生成方设备确定密文集合标识所表征的密文集合对应的若干明文数据,在所确定的若干明文数据中确定需求方设备所能够获取的明文数据。密文集合对应的若干明文数据,具体可以是密文集合解密后的明文数据,也可以是密文集合中若干密文分组对应的明文分组。
在一种可选的实施例中,生成方设备可以根据解密请求中需求方设备的设备信息,确定出需求方设备有权限获取的明文分组。其中,可以将需求方设备有权限获取的明文分组确定为授权分组。
本方法流程并不具体限定生成方设备确定需求方设备所能够获取的明文分组的方式。而设备信息可以根据确定明文分组的方式而确定,因此也不具体限定设备信息的内容和形式。可选地,设备信息可以包括设备标识、设备安全等级、需求方信任等级等。
可选地,可以是根据预设的设备和获取权限之间的对应关系进行确定,也可以是根据预设规则对设备信息进行判断,确定相应的获取权限。
可选地,可以是生成方设备存储有需求方设备与该需求方设备能够获取的明文分组之间的对应关系。生成方设备可以基于需求方设备信息,查询对应的明文分组,将所查询的明文分组确定为授权分组。
具体可以是生成方设备存储有授权记录。授权记录中可以包括需求方设备与生成方设备授权给该需求方设备能够获取的明文分组之间的对应关系。生成方设备可以基于授权记录查询需求方设备对应的明文分组,将所查询的明文分组确定为授权分组。
可选地,可以是基于预设规则,针对设备信息确定需求方设备的获取权限。
具体可以是密文集合对应的若干明文分组中,存在不同等级的明文分组。而基于预设规则和设备信息可以确定需求方设备的所能够获取明文分组的等级,进而可以将所确定等级的明文分组都确定为授权分组。
例如,生成方设备的若干明文分组可以分别对应有安全等级,安全等级与对应明文分组的安全性需求正相关。而预设规则可以是针对设备的信用记录进行判断,信用良好的需求方设备可以获取安全等级较高的明文分组,而信用较差的需求方设备只能获取安全等级较低的明文分组,甚至无法获取明文分组。
在一种可选的实施例中,生成方设备可以根据设备信息,确定需求方设备无法获取任一明文分组,也就是授权分组不存在。因此,在无法确定出授权分组的情况下,可以直接停止执行本方法流程,也可以通知需求方设备无法进行解密,向需求方设备返回用于表征没有可获取数据明文的内容。
可选地,在具体解释中,可以是第一生成方设备接收解密请求,并根据解密请求中第一需求方设备的设备信息,将第一需求方设备有权限获取的明文分组确定为授权分组。
S103:生成方设备将授权分组对应的解密存储密钥发送到需求方设备。
在一种可选的实施例中,在可以确定出授权分组的情况下,生成方设备可以获取授权分组对应的解密存储密钥,解密存储密钥可以用于解密密文集合中授权分组的密文,得到授权分组这一明文数据。
生成方设备可以响应于解密请求,将授权分组对应的解密存储密钥发送到需求方设备,可选地,在需求方设备直接发送解密请求到生成方设备的情况下,生成方设备可以直接将解密存储密钥发送回需求方设备;在区块链网络发送解密请求到生成方设备的情况下,生成方设备可以将解密存储密钥通过区块链网络转发到需求方设备。
在一种可选的实施例中,为了提高解密存储密钥的安全性,可选地,可以通过与需求方设备约定的加密方式,对解密存储密钥进行加密并将加密结果发送给需求方设备,而需求方设备可以根据所约定的加密方式,确定对应的解密方式对加密结果进行解密,得到解密存储密钥。具体地,可以利用需求方设备的公钥对解密存储密钥进行加密,使得需求方设备可以利用自身私钥进行解密,得到解密存储密钥。
可选地,在具体解释中,第一生成方设备可以将授权分组对应的解密存储密钥发送到第一需求方设备。
S104:需求方设备利用所接收的解密存储密钥解密授权分组的密文,得到授权分组。
由于需求方设备接收到的解密存储密钥只能解密授权分组的密文,因此,需求方设备可以从密文集合中确定出授权分组的密文,具体可以是一个或多个密文分组,从而利用相对应的解密存储密钥对密文分组进行解密,得到明文分组。
可选地,具体获取密文集合,可以在生成方设备确定授权分组之后,需求方设备从区块链网络中获取密文集合中授权分组的密文,而无需获取密文集合中的全部密文分组,从而可以节约传输资源。
在一种可选的实施例中,由于解密存储密钥是对应于密文分组的,需求方设备可以利用接收到的解密存储密钥,解密对应的密文分组,从而得到授权分组这一明文数据。
可选地,在具体解释中,第一需求方设备可以利用所接收的解密存储密钥解密第一密文集合中授权分组的密文,得到授权分组。
基于上述方法流程,通过将数据密文存储到区块链网络中,借助区块链网络不可篡改的特性,使得数据密文无法被篡改,基于数据密文也无法泄露数据明文,提高了数据的安全性。区块链网络本身也可以起到中转作用,使得需求方设备只需要与区块链网络建立单条连接,就可以获取到区块链网络中存储的数据密文,节约连接资源,之后获取解密存储密钥进行解密,得到数据明文即可,从而可以在节约连接资源的情况下,降低数据被篡改的可能性,提高数据的安全性。
此外,由于数据密文中可以包括若干密文分组,需要不同的密钥进行解密,因此,可以通过解密存储密钥限制需求方设备所能获取到的授权分组,使得需求方设备无法解密得到授权分组外的明文分组,在贴合需求方设备获取数据的需求同时,也不会额外泄露需求以外的明文数据。并且,在部分明文分组的密钥泄露的情况下,其他未泄露密钥的明文分组不受影响,提高了数据明文的安全性。
并且,在本方法的数据传输过程中,无论是传输数据或密钥,可以都是经过加密的,可以提高数据或密钥在传输过程中的安全性。
下面进一步针对上述方法流程中的密钥进行解释。
首先,上述方法流程并不限定具体对明文分组加密的方法。具体可以是对称加密、非对称加密等。加密密钥和解密密钥可以相同,也可以不同。
相对应地,上述方法流程也不限定加解密密钥的生成方式和获取方式。只要不同明文分组可以分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组可以分别采用不同的解密存储密钥解密即可。
在一种可选的实施例中,可以由生成方设备从其他设备获取加密存储密钥和解密存储密钥,也可以由生成方设备自身生成加密存储密钥和解密存储密钥。
而在生成方设备自身生成加密存储密钥和解密存储密钥的情况下,可以不具体限定生成方法,只要确保不同数据分组使用不同的加解密密钥即可。
针对加密存储密钥,可选地,加密存储密钥的生成方法,可以包括:生成方设备针对任一明文分组,基于该明文分组对应的特征信息,生成用于加密该明文分组的加密存储密钥,不同明文分组可以分别对应不同的特征信息。
其中,明文分组对应的特征信息可以是唯一对应于该明文分组的。特征信息具体可以是明文分组的唯一标识。由于特征信息不同,所生成的加密存储密钥也不同。
当然,加密存储密钥的生成方法,也可以是随机生成若干不同的加密存储密钥用于加密不同的明文分组。
可选地,在将待存储的每个明文数据划分为一个明文分组的情况下,任一明文分组对应的特征信息可以包括明文数据标识。明文数据标识可以是唯一对应一条明文数据的标识。
可选地,待存储的每个明文数据包括若干字段的字段值,在将待存储的每个明文数据的每个字段值划分为一个明文分组的情况下,任一明文分组对应的特征信息可以包括明文数据标识和字段信息。明文数据标识可以是唯一对应一条明文数据的标识。字段信息可以是字段本身的业务含义。
例如,一条明文数据可以是(序号标识:001,名称:XX,性质:YY),该条明文数据的明文数据标识可以是001,字段信息可以包括‘名称’和‘性质’。在将其中的每个字段值划分为一个明文分组的情况下,对于明文分组XX,特征信息可以是“001+名称”,对于明文分组YY,特征信息可以是“001+性质”。
而关于具体利用明文分组的特征信息,生成加密存储密钥的方式,可选地,可以是通过密钥派生函数,基于一个明文分组的特征信息,生成唯一对应于该明文分组的加密存储密钥。密钥派生函数可以用于生成对称加密密钥,也可以用于生成非对称加密密钥。
需要说明的是,上述生成加密存储密钥的方式,也可以用于生成对应的解密存储密钥。
可选地,在生成方设备针对任一明文分组,基于该明文分组对应的特征信息,生成用于加密该明文分组的加密存储密钥的情况下,也可以基于该明文分组对应的特征信息,生成用于解密该明文分组的密文的解密存储密钥。不同明文分组可以分别对应不同的特征信息。
可选地,对于密钥派生函数,在密钥派生函数用于生成对称加密密钥的情况下,由于对称加密中加密密钥和解密密钥相同。因此,可以使用相同的密钥派生函数,针对相同明文分组对应的特征信息,生成对称密钥用于加密或解密。
在密钥派生函数用于生成非对称加密密钥的情况下,通常是同时生成一对公私钥对,也就是同时生成加密密钥和解密密钥。因此,可以使用相同的密钥派生函数,针对相同明文分组对应的特征信息,生成相同的非对称密钥对,获取其中的一个密钥用于加密,则可以存储另一个密钥用于解密,也可以在之后相同的密钥生成过程中获取另一个密钥用于解密。
因此,在一种可选的实施例中,对于解密存储密钥,由于上述方法流程中S103生成方设备需要获取授权分组对应的解密存储密钥,因此,可选地,可以在生成方设备预先生成加密存储密钥时,也生成对应的解密存储密钥并存储下来,方便S103中生成方设备直接从本地获取。
例如,在加密存储密钥和解密存储密钥相同的情况下,可以在生成方设备预先生成加密存储密钥,加密明文分组后,将加密存储密钥作为解密存储密钥存储下来,方便S103中生成方设备直接从本地获取授权分组对应的解密存储密钥。
可选地,也可以在S103中由生成方设备直接实时生成对应的解密存储密钥。具体可以是使用生成加密存储密钥的方式,实时利用授权分组的特征信息生成对应的解密存储密钥。
例如,在加密存储密钥和解密存储密钥相同的情况下,可以利用授权分组的特征信息,使用生成加密存储密钥的方式生成解密存储密钥。在加密存储密钥和解密存储密钥不同的情况下,可以利用授权分组的特征信息,使用生成加密存储密钥的方式生成加解密存储密钥对,获取其中加密存储密钥以外的另一个密钥,作为解密存储密钥。
综上,可选地,在确定授权分组之后,发送解密存储密钥之前,上述方法流程还可以包括:生成方设备针对任一授权分组,基于该授权分组对应的特征信息,生成用于解密该授权分组的密文的解密存储密钥。
在一种可选的实施例中,为了节约存储空间,生成方设备在使用加解密密钥之后,可以直接删除已使用的加解密密钥,在之后需要使用的时候重新生成,还可以提高密钥的安全性。
可选地,由于加密存储密钥通常用于加密明文分组,之后并不需要使用加密存储密钥,因此,可选地,生成方设备在生成密文集合之后,为了节约存储空间,通常可以将加密存储密钥删除。
并且,删除后的加密存储密钥也无法被其他设备获取,也就难以推测加密存储密钥的生成规律,从而提高加密存储密钥的安全性。
可选地,生成加密存储密钥的相关程序需要保留,并且需要尽可能保护生成加密存储密钥的方式***露。具体地,可以在生成方设备中设置可信执行环境,使得在可信执行环境中生成加密存储密钥。由于可信执行环境不会泄露其中运行的程序和存储的数据,因此,可以保护生成加密存储密钥的方式***露。
相对应地,可选地,为了节约存储空间,对于解密存储密钥可以只在确定授权分组之后生成,在发送到需求方设备之后可以直接删除所生成的解密存储密钥。
而在加密存储密钥与解密存储密钥相同的情况下,删除加密存储密钥可以避免其他设备直接从生成方设备内部获取到解密存储密钥。
因此,可选地,针对任一明文分组所生成的加密存储密钥为对称密钥;在对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组之后,生成方设备可以删除所生成的加密存储密钥。在生成方设备将授权分组对应的解密存储密钥发送到需求方设备之后,生成方设备可以删除所生成的解密存储密钥。
为了便于进一步理解上述密钥相关的实施例,如图3所示,为本说明书提供的一种密钥派生的原理示意图。其中,针对密钥派生函数,可以利用密钥派生的方法生成密钥。
图中以一个包含3个字段的数据为例。数据本身的标识为001,3个字段的名称分别是a、b和c,对应的字段值分别为5、6和8。则明文分组可以包括{5}、{6}和{8}。
在针对明文分组生成加密存储密钥时,可以将固定数据“000”作为根,用于派生不同的密钥。具体可以基于密钥派生函数KF()、分别利用根和明文分组特征信息“000+001+a”、“000+001+b”和“000+001+c”生成3个不同的密钥m1、m2和m3。这些密钥可以用于对称加密,分别对{5}、{6}和{8}进行加密。
在一种可选的实施例中,可以设置一个新的设备作为中转,协调需求方设备、生成方设备和区块链网络。为了便于描述,将该设备称为中转设备。
中转设备可以对接于区块链网络,能够获取区块链网络中的数据,也可以将数据存储到区块链网络中。
中转设备可以作为区块链网络与其他设备之间通信的接口,也可以作为需求方设备和生成方设备之间通信的桥梁,使得设备之间无需感知到对方,也无需建立连接,从而可以进一步节省连接资源,降低开发成本,提升用户体验。
换言之,生成方设备在上传密文集合到区块链网络中、或者需求方设备获取密文集合和解密存储密钥的过程中,可以只与中转设备通信,无需与其他设备建立连接。
需要注意的是,中转设备作为区块链网络与其他设备之间通信的接口时,由于各个其他设备都可以随时直接访问区块链网络,其他设备可以随时验证中转设备从区块链网络上转发的数据(密文集合)是否正确,或者上传区块链网络的数据(密文集合)是否正确。因此,中转设备难以作恶修改数据。
此外,中转设备在作为需求方设备与生成方设备之间通信的桥梁时,由于设备之间通信的数据可以都是加密的,一旦中转设备作恶修改,则通信的数据无法解密。因此,中转设备也难以作恶修改数据。
例如,对于加密后的解密存储密钥,中转设备首先无法获取到解密存储密钥明文,并且,如果中转设备进行修改,只会使得需求方设备无法解密成功。
可选地,区块链网络对接于中转设备。中转设备可以作为一个中转方,在设备之间转发数据。
需求方设备从区块链网络中获取密文集合,可以包括:需求方设备向中转设备发送用于获取密文集合的数据获取请求,中转设备响应于数据获取请求,从区块链网络中获取密文集合返回到需求方设备。
生成方设备接收解密请求,可以包括:生成方设备接收中转设备发送的解密请求。该解密请求可以是中转设备响应于数据获取请求生成的。
生成方设备将授权分组对应的解密存储密钥发送到需求方设备,可以包括:生成方设备将授权分组对应的解密存储密钥,通过中转设备发送到需求方设备。
上述实施例,可以使得需求方设备只需要向中转设备发送数据获取请求,就可以从中转设备接收到密文集合,以及授权分组对应的解密存储密钥,无需与其他设备建立连接,可以对其他设备无感知。
此外,中转设备可以存储有对应关系集合,对应关系集合中可以包括生成方设备和密文集合的对应关系,还可以进一步包括其他生成方设备和其他密文集合的对应关系。
生成方设备和密文集合的对应关系可以用于表征生成方设备生成对应的密文集合。
中转设备可以根据数据获取请求和对应关系集合,确定密文集合对应的生成方设备,并向生成方设备发送解密请求。可选地,数据获取请求用于获取密文集合,请求中可以包括密文集合标识。
可选地,中转设备中的对应关系集合,可以是生成方设备通过中转设备,将密文集合存储到区块链网络中,因此,中转设备可以记录生成方设备和密文集合的对应关系,方便根据对应关系,确定生成密文集合的生成方设备。
为了便于理解,如图4所示,为本说明书提供的另一种基于区块链网络的数据获取***的结构示意图。
其中包括5个设备、1个区块链网络和1个中转设备。5个设备分别与中转设备存在连接,中转设备与区块链网络存在连接。5个设备中任一设备都可以是生成方设备或需求方设备。
下面分别针对上传密文集合、与获取密文集合和解密存储密钥的过程进行解释。
在一种可选的实施例中,中转设备能够基于区块链网络存储的任一密文集合确定生成该密文集合的生成方设备。
可选地,生成方设备在生成密文集合后,可以直接上传密文集合到区块链网络。具体可以是生成方设备将密文集合发送到中转设备,由中转设备将密文集合存储到区块链网络中。
可选地,生成方设备在生成密文集合后,可以由其他设备将密文集合上传到区块链网络中。具体可以是其他设备将密文集合发送到中转设备,由中转设备将密文集合存储到区块链网络中。
为了使得中转设备能够确定生成密文集合的生成方设备,其他设备可以将生成方设备的标识与密文集合一同发送到中转设备。可选地,中转设备可以将生成方设备的标识同密文集合一起存储到区块链网络中,便于从区块链网络中获取到生成方设备与密文集合的对应关系;中转设备也可以将生成方设备的标识与密文集合之间的对应关系存储到本地,便于在本地直接获取。
在一种可选的实施例中,需求方设备可以向中转设备发送数据获取请求,该请求可以用于获取目标密文集合。
中转设备根据该数据获取请求,明确需求方设备需要获取的是目标密文集合,因此,可以响应于该数据获取请求,一方面从区块链网络中获取目标密文集合返回到需求方设备,另一方面基于目标密文集合确定生成目标密文集合的目标生成方设备,并向目标生成方设备发送解密请求。该解密请求用于获取解密目标密文集合的解密存储密钥。
在本实施例中,需求方设备可以并不感知目标生成方设备,不需要与目标生成方设备通信,降低了开发成本,提高了用户体验。
可选地,目标生成方设备响应于解密请求获取到授权分组对应的解密存储密钥后,可以直接将加密后的解密存储密钥传输到需求方设备。
可选地,目标生成方设备也可以将加密后的解密存储密钥通过中转设备发送到需求方设备。从而无需与需求方设备建立额外的连接进行通信,降低了开发成本,提高了用户体验。
为了便于理解,如图5所示,为本说明书提供的一种基于区块链网络的数据存储与数据获取方法的原理示意图。
其中,包括生成方设备、需求方设备、中转设备、区块链。
具体的数据存储方法可以包括以下步骤。
S201:生成方设备将目标密文集合发送到中转设备。
S202:中转设备将目标密文集合存储到区块链网络。
具体的数据获取方法可以包括以下步骤。
S301:需求方设备向中转设备发送数据获取请求。
S302:中转设备向区块链网络发送密文集合获取请求,获取目标密文集合到本地。
S303:中转设备向生成方设备发送解密请求。
S304:生成方设备响应于解密请求,确定授权分组对应的解密存储密钥,并将解密存储密钥通过加密的方式返回到中转设备。
S305:响应于数据获取请求,中转设备将目标密文集合和加密后的解密存储密钥发送到需求方设备。
S306:需求方设备利用解密存储密钥解密目标密文集合,得到授权分组。
中转设备的使用也可以隔开生成方设备与需求方设备,使得两方彼此无法感知,只需要与中转设备通信即可完成数据存储或数据获取,从而降低了开发成本,也进一步节省了连接资源,提高了用户体验。
下面结合实际的应用场景,提供一种基于区块链网络的数据获取方法的应用实施例。
首先明确具体的场景中包括权威机构、保险公司和工程方。
工程方需要开展一项工程,而工程中需要各类工作人员。工程方可以向权威机构进行信息报备,将工程信息集合(包括各类工作人员的信息)提供给权威机构。
权威机构在核实之后,可以将加密后的工程信息上传到区块链网络中存储。权威机构也就可以为工程方的工程信息进行背书。同时,由于工程信息可以拆分为多个指定信息子集、利用不同密钥加密,所以权威机构可以提供部分工程信息,而不会泄露全部的工程信息。
如果工程方之后希望为各类工作人员上保险,于是向保险公司提交申请。保险公司为了确保各类工作人员信息没有谎报,可以从区块链中获取加密后的工程信息,并从权威机构获取解密密钥。通过解密仅能得到各类工作人员的信息。
需要注意的是,工程方作为数据持有方,可以向权威机构发送请求,调整保险公司所能获取到的数据。
例如,由于涉及人员隐私,保险公司原本无法获取到工程信息中的各类工作人员信息,经过工程方的调整,权威机构可以确定保险公司能够获取各类工作人员的信息。
基于上述应用实施例,在上述方法流程中,可以额外存在一个数据持有方。
生成方设备中的明文数据可以不是生成方设备本身产生的数据,而是数据持有方所产生的数据。
而生成方设备可以是具有核验能力的设备,或者具有权威的设备,在明文数据通过核验后,通过加密得到密文集合上传到区块链网络中,为数据持有方产生的数据背书。这里的核验能力可以包括生成方设备本身针对数据的核验,也可以包括现实中的数据核验,例如人工核验。
在需求方设备获取目标密文集合之前,可以是数据持有方基于业务需求,向需求方设备发送请求,该请求中可以包括目标密文集合的标识,使得需求方设备具有获取目标密文集合执行业务的需求。
相对应地,数据持有方可以基于业务需求,确定目标明文集合中希望需求方设备获取的授权分组。数据持有方可以向生成方设备发送调整请求,该请求可以将原本需求方设备能够获取的数据明文调整为、数据持有方确定的授权分组。
而生成方设备就可以根据最新的授权分组,确定需求方设备所能获取的数据明文。
基于本实施例,数据持有方可以预先存证自身的数据到区块链中,并且借助上述方法流程,使得自身数据可以被其他需求方信任,并且可以拆分成不同的子集,适应其他需求方的业务需求。
对应于上述方法流程,本说明书实施例还提供了一种单侧的方法实施例,应用于中转设备。具体地,中转设备对接于若干数据生成方设备和若干数据需求方设备;区块链网络中存储有密文集合,任一密文集合由生成方设备按照以下方式生成:将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合。
该方法可以包括以下步骤。
S401:接收目标需求方设备发送的用于获取目标密文集合的数据获取请求,响应于数据获取请求,从区块链网络中获取目标密文集合。
S402:确定生成目标密文集合的目标生成方设备,并向目标生成方设备发送解密请求,以使目标生成方设备根据解密请求中目标需求方设备的设备信息,将目标需求方设备有权限获取的明文分组确定为授权分组。
S403:获取目标生成方发送的授权分组对应的解密存储密钥。
S404:将解密存储密钥和目标密文集合发送到目标需求方设备,以使目标需求方设备利用所接收的解密存储密钥解密授权分组的密文,得到授权分组。
本方法实施例的具体解释,可以参见上述方法流程。
对应于上述的方法流程,本说明书还提供了一个***实施例,如图6所示,为本说明书提供的一种基于区块链网络的数据获取***的结构示意图。
区块链网络中存储有密文集合,密文集合由数据生成方设备按照以下方式生成:将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合。
该***可以包括生成方设备601和需求方设备602。
需求方设备601可以用于:从区块链网络中获取密文集合。
生成方设备602可以用于:接收解密请求,并根据解密请求中需求方设备的设备信息,将需求方设备有权限获取的明文分组确定为授权分组;并将授权分组对应的解密存储密钥发送到需求方设备。
需求方设备601可以用于:利用所接收的解密存储密钥解密授权分组的密文,得到授权分组。
该***实施例的具体解释,可以参见上述方法流程。
对应于上述的方法流程,本说明书还提供了一个装置实施例,如图7所示,为本说明书提供的一种基于区块链网络的数据获取装置的结构示意图。
该装置可以应用于中转设备,对接于若干数据生成方设备和若干数据需求方设备;区块链网络中存储有密文集合,任一密文集合由生成方设备按照以下方式生成:将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合。
该装置可以包括以下单元。
密文获取模块701,用于接收目标需求方设备发送的用于获取目标密文集合的数据获取请求,响应于数据获取请求,从区块链网络中获取目标密文集合。
密钥获取模块702,用于确定生成目标密文集合的目标生成方设备,并向目标生成方设备发送解密请求,以使目标生成方设备根据解密请求中目标需求方设备的设备信息,将目标需求方设备有权限获取的明文分组确定为授权分组;获取目标生成方发送的授权分组对应的解密存储密钥。
响应模块703,用于将解密存储密钥和目标密文集合发送到目标需求方设备,以使目标需求方设备利用所接收的解密存储密钥解密授权分组的密文,得到授权分组。
该装置实施例的具体解释,可以参见上述方法流程。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现一种基于区块链网络的数据获取方法中生成方设备或需求方设备或中转设备执行的步骤。
本说明书实施例还提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现一种基于区块链网络的数据获取方法中生成方设备或需求方设备或中转设备执行的步骤。
图8示出了本说明书实施例所提供的一种更为具体的计算机设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种基于区块链网络的数据获取方法中生成方设备或需求方设备或中转设备执行的步骤。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护。
Claims (10)
1.一种基于区块链网络的数据获取方法,所述方法包括:
数据生成方设备将待存储的若干明文数据划分为若干个明文分组,对所述若干个明文分组分别采用不同的加密存储密钥进行加密得到密文分组,在对所述若干明文分组分别采用不同的加密存储密钥进行加密之后,删除所述加密存储密钥;以及,基于得到的所述密文分组生成密文集合,并将所述密文集合发布至所述区块链网络进行存储;其中,不同的密文分组需要分别采用不同的解密存储密钥进行解密;
需求方设备从所述区块链网络中获取所述密文集合;
所述生成方设备接收解密请求,根据所述解密请求中所述需求方设备的设备信息,将所述需求方设备有权限获取的明文分组确定为授权分组,并基于该授权分组对应的特征信息,生成用于解密该授权分组的密文的解密存储密钥;
所述生成方设备将所述解密存储密钥发送到所述需求方设备,并在将所述授权分组对应的解密存储密钥发送到所述需求方设备之后,删除所生成的解密存储密钥;
所述需求方设备利用所接收的解密存储密钥解密所述授权分组的密文,得到所述授权分组。
2.根据权利要求1所述的方法,所述加密存储密钥的生成方法,包括:
所述生成方设备针对任一明文分组,基于该明文分组对应的特征信息,生成用于加密该明文分组的加密存储密钥,不同明文分组分别对应不同的特征信息。
3.根据权利要求2所述的方法,在将待存储的每个明文数据划分为一个明文分组的情况下,任一明文分组对应的特征信息包括明文数据标识;或者
待存储的每个明文数据包括若干字段的字段值,在将待存储的每个明文数据的每个字段值划分为一个明文分组的情况下,任一明文分组对应的特征信息包括明文数据标识和字段信息。
4.根据权利要求1所述的方法,所述区块链网络对接于中转设备;
所述需求方设备从所述区块链网络中获取所述密文集合,包括:
所述需求方设备向所述中转设备发送用于获取所述密文集合的数据获取请求,所述中转设备响应于所述数据获取请求,从所述区块链网络中获取所述密文集合返回到所述需求方设备;
所述生成方设备接收解密请求,包括:所述生成方设备接收所述中转设备发送的解密请求;
所述生成方设备将所述授权分组对应的解密存储密钥发送到所述需求方设备,包括:所述生成方设备将所述授权分组对应的解密存储密钥,通过所述中转设备发送到所述需求方设备。
5.根据权利要求4所述的方法,所述中转设备存储有对应关系集合,所述对应关系集合中包括所述生成方设备和所述密文集合的对应关系,以及其他生成方设备和其他密文集合的对应关系;
所述方法还包括:
所述中转设备根据所述数据获取请求和所述对应关系集合,确定所述密文集合对应的所述生成方设备,并向所述生成方设备发送解密请求。
6.一种基于区块链网络的数据获取方法,应用于中转设备;中转设备对接于若干数据生成方设备和若干数据需求方设备;区块链网络中存储有密文集合,任一密文集合由生成方设备按照以下方式生成:将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合;其中,所述生成方设备在对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组之后,删除所述不同的加密存储密钥;
所述方法包括:
接收目标需求方设备发送的用于获取目标密文集合的数据获取请求,响应于所述数据获取请求,从所述区块链网络中获取所述目标密文集合;
确定生成所述目标密文集合的目标生成方设备,并向所述目标生成方设备发送解密请求,以使所述目标生成方设备根据所述解密请求中所述目标需求方设备的设备信息,将所述目标需求方设备有权限获取的明文分组确定为授权分组,并基于该授权分组对应的特征信息,生成用于解密该授权分组的密文的解密存储密钥;
获取所述目标生成方发送的所述授权分组对应的解密存储密钥;其中,所述目标生成方在将所述授权分组对应的解密存储密钥发送到所述需求方设备之后,删除所生成的解密存储密钥;
将所述解密存储密钥和所述目标密文集合发送到所述目标需求方设备,以使所述目标需求方设备利用所接收的解密存储密钥解密所述授权分组的密文,得到所述授权分组。
7.一种基于区块链网络的数据获取***,所述***包括生成方设备和需求方设备;
所述生成方设备用于:将待存储的若干明文数据划分为若干个明文分组,对所述若干个明文分组分别采用不同的加密存储密钥进行加密得到密文分组,在对所述若干明文分组分别采用不同的加密存储密钥进行加密之后,删除所述加密存储密钥;以及,基于得到的所述密文分组生成密文集合,并将所述密文集合发布至所述区块链网络进行存储;其中,不同的密文分组需要分别采用不同的解密存储密钥进行解密;
所述需求方设备用于:从所述区块链网络中获取所述密文集合;
所述生成方设备用于:接收解密请求,根据所述解密请求中所述需求方设备的设备信息,将所述需求方设备有权限获取的明文分组确定为授权分组,并基于该授权分组对应的特征信息,生成用于解密该授权分组的密文的解密存储密钥;将所述授权分组对应的解密存储密钥发送到所述需求方设备,并在将所述授权分组对应的解密存储密钥发送到所述需求方设备之后,删除所生成的解密存储密钥;
所述需求方设备用于:利用所接收的解密存储密钥解密所述授权分组的密文,得到所述授权分组。
8.一种基于区块链网络的数据获取装置,应用于中转设备,对接于若干数据生成方设备和若干数据需求方设备;区块链网络中存储有密文集合,任一密文集合由生成方设备按照以下方式生成:将待存储的若干明文数据划分为若干个明文分组,对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组,不同密文分组需要分别采用不同的解密存储密钥解密,利用所得到的多个密文分组构成密文集合;其中,所述生成方设备在对不同明文分组分别采用不同的加密存储密钥加密得到不同密文分组之后,删除所述不同的加密存储密钥;
所述装置包括:
密文获取模块,用于接收目标需求方设备发送的用于获取目标密文集合的数据获取请求,响应于所述数据获取请求,从所述区块链网络中获取所述目标密文集合;
密钥获取模块,用于确定生成所述目标密文集合的目标生成方设备,并向所述目标生成方设备发送解密请求,以使所述目标生成方设备根据所述解密请求中所述目标需求方设备的设备信息,将所述目标需求方设备有权限获取的明文分组确定为授权分组,并基于该授权分组对应的特征信息,生成用于解密该授权分组的密文的解密存储密钥;获取所述目标生成方发送的所述授权分组对应的解密存储密钥;其中,所述目标生成方在将所述授权分组对应的解密存储密钥发送到所述需求方设备之后,删除所生成的解密存储密钥;
响应模块,用于将所述解密存储密钥和所述目标密文集合发送到所述目标需求方设备,以使所述目标需求方设备利用所接收的解密存储密钥解密所述授权分组的密文,得到所述授权分组。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求6所述的方法。
10.一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如权利要求6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210167451.9A CN114422263B (zh) | 2022-02-23 | 2022-02-23 | 一种基于区块链网络的数据获取方法、装置、***、计算机设备及机器可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210167451.9A CN114422263B (zh) | 2022-02-23 | 2022-02-23 | 一种基于区块链网络的数据获取方法、装置、***、计算机设备及机器可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114422263A CN114422263A (zh) | 2022-04-29 |
CN114422263B true CN114422263B (zh) | 2024-03-26 |
Family
ID=81261761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210167451.9A Active CN114422263B (zh) | 2022-02-23 | 2022-02-23 | 一种基于区块链网络的数据获取方法、装置、***、计算机设备及机器可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114422263B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886040A (zh) * | 2019-01-24 | 2019-06-14 | 北京融链科技有限公司 | 数据处理方法、装置、存储介质及处理器 |
CN111310216A (zh) * | 2020-02-26 | 2020-06-19 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
CN112182646A (zh) * | 2020-09-16 | 2021-01-05 | 小米数字科技有限公司 | 数据读取方法及装置、数据授权方法及装置、存储介质 |
CN112182647A (zh) * | 2020-09-16 | 2021-01-05 | 小米数字科技有限公司 | 数据读取方法及装置、数据授权方法及装置、存储介质 |
-
2022
- 2022-02-23 CN CN202210167451.9A patent/CN114422263B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886040A (zh) * | 2019-01-24 | 2019-06-14 | 北京融链科技有限公司 | 数据处理方法、装置、存储介质及处理器 |
CN111310216A (zh) * | 2020-02-26 | 2020-06-19 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
CN112182646A (zh) * | 2020-09-16 | 2021-01-05 | 小米数字科技有限公司 | 数据读取方法及装置、数据授权方法及装置、存储介质 |
CN112182647A (zh) * | 2020-09-16 | 2021-01-05 | 小米数字科技有限公司 | 数据读取方法及装置、数据授权方法及装置、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114422263A (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457875B (zh) | 基于区块链的数据授权方法及装置 | |
CN111090888B (zh) | 验证合约的方法及装置 | |
CN110473094B (zh) | 基于区块链的数据授权方法及装置 | |
EP3816923B1 (en) | Blockchain-based private transactions and usage method and apparatus therefor | |
US11057189B2 (en) | Providing data authorization based on blockchain | |
CN111092726B (zh) | 生成共享合约密钥的方法及装置 | |
CN110033258B (zh) | 基于区块链的业务数据加密方法及装置 | |
WO2019214312A1 (zh) | 基于区块链的物流信息传输方法、***和装置 | |
US11483161B2 (en) | Method for information processing and non-transitory computer readable storage medium | |
CN110061845A (zh) | 区块链数据加密方法、装置、计算机设备及存储介质 | |
CN113255005B (zh) | 一种基于区块链的数据资产流转方法、装置及设备 | |
CN113742782B (zh) | 基于隐私保护的区块链访问权限控制方法和区块链*** | |
CN111090875A (zh) | 部署合约的方法及装置 | |
CN112131316B (zh) | 应用于区块链***的数据处理方法及装置 | |
US20130230168A1 (en) | Information processing device, information processing method, and computer readable medium | |
KR101982237B1 (ko) | 클라우드 컴퓨팅 환경에서의 속성 기반 암호화를 이용한 데이터 공유 방법 및 시스템 | |
CN110800250A (zh) | 受控加密私钥的发布 | |
CN111371790B (zh) | 基于联盟链的数据加密发送方法、相关方法、装置和*** | |
WO2020083822A1 (en) | Privacy-preserving mobility as a service supported by blockchain | |
WO2021239072A1 (zh) | 在联盟链网络中创建节点组、基于节点组的交易方法 | |
CN113837760B (zh) | 数据处理方法、装置、计算机设备以及存储介质 | |
CN113918982B (zh) | 一种基于标识信息的数据处理方法及*** | |
CN115953244A (zh) | 基于区块链的交易监管方法、装置、电子设备和存储介质 | |
CN112995109B (zh) | 数据加密***、方法、数据处理方法、装置及电子设备 | |
KR20110124088A (ko) | 클라우드 컴퓨팅 과금 공증장치, 과금 시스템 및 과금방법 |
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 |