CN117938406A - 一种基于区块链的数据处理方法、设备以及可读存储介质 - Google Patents
一种基于区块链的数据处理方法、设备以及可读存储介质 Download PDFInfo
- Publication number
- CN117938406A CN117938406A CN202211259133.1A CN202211259133A CN117938406A CN 117938406 A CN117938406 A CN 117938406A CN 202211259133 A CN202211259133 A CN 202211259133A CN 117938406 A CN117938406 A CN 117938406A
- Authority
- CN
- China
- Prior art keywords
- data
- bit array
- service
- blockchain node
- topic
- 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
- 238000003672 processing method Methods 0.000 title abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 152
- 238000000034 method Methods 0.000 claims abstract description 102
- 238000012795 verification Methods 0.000 claims description 190
- 238000004891 communication Methods 0.000 claims description 60
- 230000006870 function Effects 0.000 claims description 32
- 238000011161 development Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 22
- 238000013507 mapping Methods 0.000 claims description 15
- 238000005259 measurement Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000010200 validation analysis Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 32
- 238000005516 engineering process Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000012550 audit Methods 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- 208000033748 Device issues Diseases 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000008719 thickening Effects 0.000 description 1
Classifications
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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]
-
- 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/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请实施例公开了一种基于区块链的数据处理方法、设备以及可读存储介质,该方法包括:第一设备生成第一业务数据对应的第一位数组;通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理,得到密文位数组;数据交集应用运行于可信执行环境a中;将密文位数组传输至区块链节点,以使区块链节点转发密文位数组至第二设备;第二设备在数据交集应用中,通过数据密钥对密文位数组进行解密处理,得到第一位数组;第二设备生成第二业务数据对应的第二位数组;第二设备确定第一业务数据以及第二业务数据之间的业务交集数据,并进行与业务交集数据相关联的业务处理。采用本申请,可以提高数据的安全性以及准确地追溯数据获取状态。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于区块链的数据处理方法、设备以及可读存储介质。
背景技术
随着移动互联网技术以及各种新兴技术的快速发展,平台应用好像雨后春笋。随着大量平台应用的出现,用户有了更广泛的选择。为了提升活跃留存,平台应用需要不断地推广自己的平台。
在现有技术中,平台应用为了推广自己,会与具有强大的平台推广能力的广告商合作。具体为,平台应用提供自己的第一业务数据至广告商,广告商确定自己拥有的第二业务数据与第一业务数据之间共同的业务数据,即业务交集数据,然后进行与业务交集数据相关联的推广处理。明显地,现有技术存在如下缺陷:1、平台应用将自己的原始数据(即第一业务数据)传输至广告商,故降低了数据的安全性;2,平台应用与广告商之间直接的数据流转,致使无法准确地追溯数据获取状态。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、设备以及可读存储介质,可以提高数据的安全性以及准确地追溯数据获取状态。
本申请实施例一方面提供了一种基于区块链的数据处理方法,该方法由第一设备执行,该方法包括:
若第一业务数据满足数据上传条件,则生成第一业务数据对应的第一位数组;
通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理,得到密文位数组;数据交集应用运行于第二设备的可信执行环境a中;
将密文位数组传输至区块链中的区块链节点,以使区块链节点存储密文位数组;存储在区块链节点的密文位数组用于由区块链节点转发至第二设备;第二设备用于在数据交集应用中,通过数据密钥对从区块链节点中所获取的密文位数组进行解密处理,得到第一位数组;第一位数组用于指示第二设备在数据交集应用中,生成第二业务数据对应的第二位数组;第二位数组以及第一位数组用于指示第二设备在数据交集应用中,确定第一业务数据以及第二业务数据之间的业务交集数据;业务交集数据用于指示第二设备进行与业务交集数据相关联的业务处理。
本申请实施例一方面提供了一种基于区块链的数据处理方法,该方法由第二设备执行,该方法包括:
获取由区块链中的区块链节点转发的密文位数组;密文位数组是第一设备传输至区块链节点的,且密文位数组是第一设备通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理所得到的;数据交集应用运行于第二设备的可信执行环境a中;第一位数组是第一设备在第一业务数据满足数据上传条件时,针对第一业务数据所生成的;
在数据交集应用中,通过数据密钥对从区块链节点中所获取的密文位数组进行解密处理,得到第一位数组;
在数据交集应用中,生成第二业务数据对应的第二位数组,根据第二位数组以及第一位数组,确定第一业务数据以及第二业务数据之间的业务交集数据;
对业务交集数据进行业务处理。
本申请实施例一方面提供了一种基于区块链的数据处理装置,该装置运行于第一设备,该装置包括:
第一生成模块,用于若第一业务数据满足数据上传条件,则生成第一业务数据对应的第一位数组;
第一处理模块,用于通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理,得到密文位数组;数据交集应用运行于第二设备的可信执行环境a中;
密文传输模块,用于将密文位数组传输至区块链中的区块链节点,以使区块链节点存储密文位数组;存储在区块链节点的密文位数组用于由区块链节点转发至第二设备;第二设备用于在数据交集应用中,通过数据密钥对从区块链节点中所获取的密文位数组进行解密处理,得到第一位数组;第一位数组用于指示第二设备在数据交集应用中,生成第二业务数据对应的第二位数组;第二位数组以及第一位数组用于指示第二设备在数据交集应用中,确定第一业务数据以及第二业务数据之间的业务交集数据;业务交集数据用于指示第二设备进行与业务交集数据相关联的业务处理。
其中,基于区块链的数据处理装置,还包括:
第二生成模块,用于生成针对第一业务数据的主题,生成包括主题以及主题发布对象信息的主题发布请求;
第二处理模块,用于通过第一设备对应的设备私钥,对主题发布请求进行签名处理,得到签名消息z,基于主题发布请求,调用区块链节点的发布主题合约;
请求发送模块,用于通过发布主题合约,将携带签名消息z的主题发布请求发送至区块链节点,以使区块链节点在通过主题发布请求的合法性验证时,调用发布主题合约;发布主题合约用于指示区块链节点在验证主题发布对象信息属于注册对象信息,且确定主题具有待发布属性时,存储主题;存储在区块链节点的主题,用于指示第二设备向区块链节点节点发送主题订阅请求;签名消息z用于指示区块链节点对主题发布请求进行合法性验证;
请求获取模块,用于获取区块链节点在确定主题订阅请求具有请求有效属性时,所转发的主题订阅请求;
关系确定模块,用于根据区块链节点所转发的主题订阅请求,确定第一业务数据与数据上传条件之间的关系;第一业务数据与数据上传条件之间的关系包括第一业务数据满足数据上传条件,或第一业务数据不满足数据上传条件。
其中,关系确定模块,包括:
第一生成单元,用于根据区块链节点所转发的主题订阅请求,生成远程认证请求;
请求发送单元,用于将远程认证请求发送至第二设备,以使第二设备根据远程认证请求生成包括中间公钥f的中间密钥对g;中间公钥f用于指示第二设备调用可信执行环境a,生成针对数据交集应用的远程认证报告;
第一获取单元,用于获取第二设备返回的远程认证报告,根据远程认证报告,确定第一业务数据与数据上传条件之间的关系。
其中,第一获取单元,包括:
报告验证子单元,用于调用认证服务,通过认证服务对远程认证报告进行验证处理,得到第一验证结果;
第一确定子单元,用于若第一验证结果指示远程认证报告验证失败,则确定第一业务数据不满足数据上传条件;
第二确定子单元,用于若第一验证结果指示远程认证报告验证通过,则获取数据交集应用的源码,根据源码,确定第一业务数据与数据上传条件之间的关系;
则第一获取单元,还包括:
第三确定子单元,用于若第一验证结果指示远程认证报告验证失败,则确定可信执行环境a不具有环境安全属性;
状态发送子单元,用于生成用于指示可信执行环境a不具有环境安全属性的第一更新订阅状态,将第一更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第一更新订阅状态。
其中,第二确定子单元,包括:
第一处理子单元,用于对源码进行验证处理,得到第二验证结果;
第二处理子单元,用于若第二验证结果指示源码验证通过,则获取远程认证报告中针对数据交集应用的主题订阅对象信息,对主题订阅对象信息进行验证处理,得到第三验证结果;
第三处理子单元,用于获取远程认证报告中针对源码的远程度量值,对远程度量值进行验证处理,得到第四验证结果;
关系确定子单元,用于根据第三验证结果以及第四验证结果,确定第一业务数据与数据上传条件之间的关系;
第二处理子单元,还用于若第二验证结果指示源码验证失败,则确定第一业务数据不满足数据上传条件;
则第二确定子单元,还包括:
第二处理子单元,还用于若第二验证结果指示源码验证失败,则确定源码不具有代码安全属性;
状态生成子单元,用于生成用于指示源码不具有代码安全属性的第二更新订阅状态,将第二更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第二更新订阅状态。
其中,第二处理子单元,具体用于获取针对数据交集应用的应用开发对象证书,从应用开发对象证书中获取应用开发对象信息,将主题订阅对象信息与应用开发对象信息进行对比;
第二处理子单元,还具体用于若主题订阅对象信息与应用开发对象信息不同,则生成用于指示主题订阅对象信息验证失败的第三验证结果;
第二处理子单元,还具体用于若主题订阅对象信息与应用开发对象信息相同,则生成用于指示主题订阅对象信息验证通过的第三验证结果;
则第二处理子单元,还具体用于若第三验证结果指示主题订阅对象信息验证失败,则生成用于指示主题订阅对象信息为未授权对象信息的第三更新订阅状态;
第二处理子单元,还具体用于将第三更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第三更新订阅状态。
其中,第三处理子单元,具体用于在第一设备的可信执行环境b中对源码进行编译处理,得到可信度量值;
第三处理子单元,还具体用于将远程度量值与可信度量值进行对比,若远程度量值与可信度量值不同,则生成用于指示远程度量值验证失败的第四验证结果;
第三处理子单元,还具体用于若远程度量值与可信度量值相同,则生成用于指示远程度量值验证通过的第四验证结果;
则第三处理子单元,还具体用于若第四验证结果指示远程度量值验证失败,则生成用于指示源码与运行代码不匹配的第四更新订阅状态;
第三处理子单元,还具体用于将第四更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第四更新订阅状态。
其中,关系确定子单元,具体用于若第三验证结果指示主题订阅对象信息验证通过,且第四验证结果指示远程度量值验证通过,则确定第一业务数据满足数据上传条件;
则关系确定子单元,还具体用于若第一业务数据满足数据上传条件,则生成用于指示主题订阅请求通过验证的第五更新订阅状态;
关系确定子单元,还具体用于将第五更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第五更新订阅状态。
其中,第一生成单元,包括:
第一生成子单元,用于根据区块链节点所转发的主题订阅请求,生成认证挑战随机数,以及包括中间私钥h以及中间公钥i的中间密钥对j;
第二生成子单元,用于根据中间公钥i以及认证挑战随机数,生成远程认证请求;中间公钥i用于指示第二设备根据中间公钥i、认证挑战随机数以及中间密钥对g中的中间私钥k,生成通信密钥;通信密钥用于对数据密钥进行加密处理,得到加密数据密钥;
则第一生成单元,还包括:
第一获取子单元,用于获取远程认证报告中的中间公钥f,根据中间公钥f、认证挑战随机数以及中间私钥h,生成通信密钥;
第二获取子单元,用于获取第二设备返回的加密数据密钥,通过通信密钥,对加密数据密钥进行解密处理,得到数据密钥。
其中,第一生成模块,包括:
第二获取单元,用于获取映射有第一随机数的初始位数组以及随机映射函数,将第一业务数据输入至随机映射函数;
第二生成单元,用于通过随机映射函数,生成第一业务数据对应的第二随机数;第一随机数包括第二随机数;
第一确定单元,用于在初始位数组中确定待更新位数组;待更新位数组映射有第二随机数;
第二确定单元,用于将初始位数组中的待更新位数组进行更新处理,将更新处理之后的初始位数组确定为第一位数组。
本申请实施例一方面提供了一种基于区块链的数据处理装置,该装置运行于第二设备,该装置包括:
密文获取模块,用于获取由区块链中的区块链节点转发的密文位数组;密文位数组是第一设备传输至区块链节点的,且密文位数组是第一设备通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理所得到的;数据交集应用运行于第二设备的可信执行环境a中;第一位数组是第一设备在第一业务数据满足数据上传条件时,针对第一业务数据所生成的;
第一处理模块,用于在数据交集应用中,通过数据密钥对从区块链节点中所获取的密文位数组进行解密处理,得到第一位数组;
第一生成模块,用于在数据交集应用中,生成第二业务数据对应的第二位数组,根据第二位数组以及第一位数组,确定第一业务数据以及第二业务数据之间的业务交集数据;
第二处理模块,用于对业务交集数据进行业务处理。
其中,密文获取模块,包括:
请求生成单元,用于根据主题订阅对象信息,生成用于获取密文位数组的数据下载请求;
请求发送单元,用于将数据下载请求发送至区块链节点,以使区块链节点根据数据下载请求查询主题订阅对象信息对应的当前订阅状态;
密文获取单元,用于获取区块链节点在确定当前订阅状态为第五更新订阅状态时,所返回的密文位数组;第五更新订阅状态用于指示第一设备对主题订阅请求通过验证;主题订阅请求是在区块链节点存储针对第一业务数据的主题时所发送的。
其中,第二业务数据包括第二业务数据Cd,d为正整数,且d小于或等于第二业务数据的总数量;第二位数组包括第二业务数据Cd对应的第二位数组Ed;
第一生成模块,具体用于若第一位数组包括第二位数组Ed,则确定第二业务数据Cd为第一业务数据以及第二业务数据之间的业务交集数据;
则第二处理模块,具体用于获取第一设备提供的具有应用推荐功能的媒体数据,将媒体数据推送至第二业务数据Cd。
其中,基于区块链的数据处理装置,还包括:
第二生成模块,用于根据主题订阅对象信息,生成用于订阅主题的主题订阅请求;主题是第一设备针对第一业务数据所生成的;
合约调用模块,用于基于主题订阅请求,调用区块链节点的订阅主题合约;
请求发送模块,用于通过订阅主题合约,将主题订阅请求发送至区块链节点,以使区块链节点在通过订阅主题合约验证主题具有待订阅属性,且主题订阅对象信息属于注册对象信息时,储存主题订阅请求,且为主题订阅请求设置请求待验证状态;请求待验证状态用于指示区块链节点将主题订阅请求转发至第一设备。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信功能,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以使得计算机设备执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,上述计算机程序适于由处理器加载并执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请实施例中的方法。
在本申请实施例中,通过生成第一业务数据对应的第一位数组,可以确保第一业务数据可用不可见,故可以提高第一业务数据的安全性;进一步地,由于数据密钥是通过可信执行环境a中的数据交集应用所生成的,故其生成环境安全、应用环境安全以及存储环境安全,故通过数据密钥对第一位数组进行加密处理,可以提高第一位数组的安全性;进一步地,通过将密文位数组传输至区块链,可以准确地追溯第二设备针对密文位数组的获取状态;此外,本申请实施例是通过第一位数组以及第二业务数据对应的第二位数组,确定第一业务数据以及第二业务数据之间的业务交集数据,故不仅可以进行与业务交集数据相关联的业务处理,还进一步提高了第一业务数据的安全性。上述可知,采用本申请实施例,可以提高数据(包括第一业务数据以及第一位数组)的安全性,以及准确地追溯数据获取状态。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种系统架构示意图;
图2a是本申请实施例提供的一种基于区块链的数据处理的场景示意图一;
图2b是本申请实施例提供的一种基于区块链的对象注册方法的流程示意图;
图2c是本申请实施例提供的一种基于区块链的数据处理的场景示意图二;
图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图一;
图4a是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图一;
图4b是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图二;
图4c是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图三;
图4d是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图四;
图4e是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图五;
图5是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图二;
图6a是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图六;
图6b是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图七;
图6c是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图八;
图7是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图三;
图8是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图九;
图9是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图十;
图10是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图一;
图11是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图二;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,首先对部分名词进行以下简单解释:
1、区块链:狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前获取的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求;广义上,区块链还指代区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。区块链的目标是实现一个分布的数据记录账本,此账本只允许添加,不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前继区块的哈希(Hash)值,每个区块(以及区块中的交易)是否合法,可通过计算哈希值的方式进行快速检验。若网络中的节点提议添加一个新的区块,必须经过共识机制对区块达成共识确认。
2、哈希值(hash):也称作信息特征值或特征值,哈希值是通过哈希算法将任意长度的输入数据转换为密码并进行固定输出而生成的,不能通过解密哈希值来检索原始输入数据,它是一个单向的加密函数。在区块链中,每个区块(除了初始区块)都包含前继区块的哈希值,哈希值是区块链技术中的潜力核心基础和最重要的方面,它保留了记录和查看数据的真实性,以及区块链作为一个整体的完整性。
3、区块链节点:区块链网络将节点区分为共识节点(也可以称作核心节点)以及同步节点(可以包括数据节点以及轻节点)。其中,共识节点负责区块链全网的共识业务;同步节点负责同步共识节点的账本信息,即同步最新的区块数据。无论是共识节点还是同步节点,其内部构造都包括网络通信组件,因为区块链网络本质是一个点对点(Peer to Peer,P2P)网络,需通过P2P组件与区块链网络中的其他节点进行通信。区块链网络中的资源和服务都分散在各个节点上,信息的传输和服务的实现都直接在节点之间进行,无需中间环节或中心化的服务器(第三方)介入。
4、公钥(public key)与私钥(private key):公钥与私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密数据、验证数字签名等。通过这种算法能够确保得到的密钥对是唯一的,使用这种密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密,例如,用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
5、非对称签名:签名算法包括两个密钥,公开密钥(简称公钥,public key)和私有密钥(简称私钥,private key)。公钥与私钥是一对,如果用私钥对数据进行签名,只有用对应的公钥才能验签。因为签名过程和验签过程分别使用两个不同的密钥,所以这种算法称作非对称签名。非对称签名实现机密信息交换的基本过程可以是:甲方生成一对密钥并将公钥公开,甲方需要向其他角色(乙方)发送消息时,使用自己的私钥对机密消息进行签名后再发送给乙方;乙方再用甲方的公钥对签名后的消息进行验签。
6、智能合约(Smart Contract):是一种旨在以信息化方式传播、验证或执行合同的计算机协议。在区块链系统当中,智能合约(简称合约)是一种区块链各节点可以理解并执行的代码,可以执行任意逻辑并得到结果。在实际应用中,智能合约通过区块链上的交易来管理与试用。每条交易相当于对区块链系统的一个远程过程调用(Remote ProcedureCall,RPC)请求。如果说智能合约相当于可执行程序,区块链就相当于提供运行环境的操作系统。区块链可以包含多个合约(如本申请中的资源融合函数、资源发行函数等),以合约账号(Identity,ID)、标识号或名称来区分。在本申请实施例中,发布主题合约以及订阅主题合约均属于智能合约。
7、可信执行环境(Trusted Execution Environment,TEE):可信执行环境是计算平台上由软硬件方法构建的一个安全区域,可以保证在安全区域内加载的代码和数据在机密性和完整性方面得到保护。可信执行环境的目标是确保一个任务按照预期执行,保证初始状态的机密性、完整性,以及运行时状态的机密性、完整性。
请参见图1,图1是本申请实施例提供的一种系统架构示意图。如图1所示,该系统架构可以包括第一设备集群、第二设备集群、证书设备集群以及区块链网络。
可以理解的是,上述系统可以包括一个或多个第一设备,本申请实施例不对第一设备的数量进行限制。如图1所示,第一设备集群包括第一设备100a。第一设备100a是指安装有平台应用的设备。其中,平台应用可以为视频应用、直播应用、社交应用、即时通信应用、游戏应用、音乐应用、购物应用、小说应用、浏览器等具有提供平台功能的应用。其中,平台应用对应的应用客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客户端、教育客户端以及多媒体客户端等)中的嵌入式子客户端,在此不做限定。本申请实施例中的第一设备100a可以提供上述平台应用的第一业务数据,基于隐私保护需求,可以使用相关技术手段(例如布隆过滤器),隐匿原始数据(即第一业务数据),生成第一位数组,确保第一业务数据的可用性。
可以理解的是,上述系统可以包括一个或多个第二设备,本申请实施例不对第二设备的数量进行限制。如图1所示,第二设备集群包括第二设备100b,第二设备100b可以提供可信执行环境,例如指令集扩展(Software Guard Extensions,简称SGX)。基于其硬件技术,第二设备100b可以在可信执行环境中运行数据交集应用,在数据交集应用中生成数据密钥,并将数据密钥存储于安全飞地,故可以确保数据密钥的安全。此外,第二设备100b可以在区块链网络中下载第一设备100a所提供的第一位数组,在可信执行环境中运行数据交集应用,以进行数据求交运算,即通过第一位数组以及自己的第二业务数据,确定第一业务数据以及第二业务数据之间的共同业务数据,本申请实施例称为业务交集数据。此外,第二设备100b可以进行与业务交集数据相关联的业务处理,例如业务交集数据用于表征交集用户,则可以对交集用户投放针对上述平台应用的广告,吸引交集用户回归平台应用。其中,数据交集应用可以为短视频应用、直播应用、社交应用、即时通信应用、游戏应用、音乐应用、购物应用、小说应用、浏览器等具有提供业务交集数据确定功能的应用。其中,数据交集应用对应的应用客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客户端、教育客户端以及多媒体客户端等)中的嵌入式子客户端,在此不做限定。
可以理解的是,上述系统可以包括一个或多个证书设备,本申请实施例不对证书设备的数量进行限制。如图1所示,证书设备集群包括证书设备100c。本申请实施例中的证书设备100c是指具有提供对象信息背书功能的设备,例如证书颁发机构(CertificateAuthority,CA)对应的设备。证书设备集群可以为第一设备集群对应的第一对象以及第二设备集群对应的第二对象分别提供对象认证,且为第一对象以及第二对象分别提供对象信息背书,并将对象公钥与其对象信息绑定起来,用于验签,确保对象信息的完整性及不可伪造,并确保信息发送方的不可抵赖性。
其中,图1中的任意设备(包括第一设备100a、第二设备100b以及证书设备100c)包括但不限于终端设备或业务服务器。其中,业务服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云数据库、云服务、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。
区块链网络可以包括区块链节点集群10,区块链节点集群10可以包括区块链节点10A、区块链节点10B、区块链节点10C以及区块链节点10N。同理,本申请实施例不对区块链节点集群10中的区块链节点的数量进行限制。可以理解的是,图1中的区块链节点包括但不限于移动终端或服务器。上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,简称CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。上述移动终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。其中,移动终端和服务器可以通过有线或无线方式进行直接或间接地连接,本申请实施例对此不做限制。
其中,第一设备集群之间可以存在通信连接。同时,第一设备集群中的第一设备可以与第二设备集群中的第二设备存在通信连接,例如第一设备100a与第二设备100b之间存在通信连接。同时,第一设备集群中的第一设备可以与证书设备集群中的证书设备存在通信连接,例如第一设备100a与证书设备100c之间存在通信连接。同时,第一设备集群中的第一设备可以与区块链节点集群10中的区块链节点存在通信连接,例如第一设备100a可以与区块链节点10A之间存在通信连接。
其中,第二设备集群之间可以存在通信连接。同时,第二设备集群中的第二设备可以与证书设备集群中的证书设备存在通信连接,例如第二设备100b与证书设备100c之间存在通信连接。同时,第二设备集群中的第二设备可以与区块链节点集群10中的区块链节点存在通信连接,例如第二设备100b可以与区块链节点10A之间存在通信连接。
其中,证书设备集群之间可以存在通信连接。同时,证书设备集群中的证书设备可以与区块链节点集群10中的区块链节点存在通信连接,例如证书设备100c可以与区块链节点10A之间存在通信连接。
其中,区块链节点集群10之间可以存在通信连接,例如区块链节点10A与区块链节点10C之间存在通信连接,区块链节点10A与区块链节点10N之间存在通信连接。
上述的通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他方式,本申请在此不做限制。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息(例如主题发布对象信息以及主题订阅对象信息)等相关的数据,当本申请中的实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本申请实施例提供的基于区块链的数据处理方法的流程可以概述如下:步骤1、第一对象(例如平台方)对应的第一设备100a生成用于业务消息签名的第一非对称密钥对;第二对象(例如广告商,不同于第一对象的另一个平台方)对应的第二设备100b生成用于业务消息签名的第二非对称密钥对,以及生成用于数据交集应用签名的第三非对称密钥对,其可以用于确定应用开发者为第二对象的开发人员。请一并参见图2a,图2a是本申请实施例提供的一种基于区块链的数据处理的场景示意图一。其中,第一非对称密钥对包括图2a中的第一私钥以及第一私钥对应的第一公钥;第二非对称密钥对包括图2a中的第二私钥以及第二私钥对应的第二公钥;第三非对称密钥对包括图2a中的第三私钥以及第三私钥对应的第三公钥。
步骤2、如图2a所示,第一设备100a将第一公钥以及用于表征第一对象的第一对象信息作为参数,生成第一证书申请请求;进一步,第一设备100a通过第一私钥,对第一证书申请请求进行签名处理,得到第一签名消息,将携带第一签名消息的第一证书申请请求发送至证书设备100c。第二设备100b将第二公钥以及用于表征第二对象的第二对象信息作为参数,生成第二证书申请请求;进一步,第二设备100b通过第二私钥,对第二证书申请请求进行签名处理,得到第二签名消息,将携带第二签名消息的第二证书申请请求发送至证书设备100c。此外,第二设备100b将第三公钥以及用于表征第二对象的第二对象信息作为参数,生成第三证书申请请求;进一步,第二设备100b通过第三私钥,对第三证书申请请求进行签名处理,得到第三签名消息,将携带第三签名消息的第三证书申请请求发送至证书设备100c。明显地,第二设备100b向证书设备100c申请两方证书。
步骤3、如图2a所示,证书设备100c收到第一证书申请请求时,先通过第一公钥对第一签名消息进行验签处理,若验签成功,则审核第一对象信息,若证书设备100c确认第一对象信息无误后,则向第一设备100a颁发第一业务证书,该第一业务证书包括第一公钥。同样地,收到第二证书申请请求时,先通过第二公钥对第二签名消息进行验签处理,若验签成功,则审核第二对象信息,若证书设备100c确认第二对象信息无误后,则向第二设备100b颁发第二业务证书,该第二业务证书包括第二公钥。同样地,收到第三证书申请请求时,先通过第三公钥对第三签名消息进行验签处理,若验签成功,则审核第二对象信息,若证书设备100c确认第二对象信息无误后,则向第二设备100b颁发应用开发者证书,该应用开发者证书包括第三公钥。
步骤4、如图2a所示,第一设备100a将第一业务证书作为参数,向区块链网络发起第一对象注册请求;可以理解的是,该第一对象注册请求也携带一个签名消息,其生成过程可以参见第一签名消息的生成过程,此处不再进行赘述,为了区别上述提及的签名消息,将第一对象注册请求所携带的签名消息称为第四签名消息,同理,下文提及的第二对象注册请求携带第五签名消息,第三对象注册请求携带第六签名消息。
区块链网络中的区块链节点收到第一对象注册请求时,先通过第一公钥对第四签名消息进行验签处理,若验签成功,则审核第一业务证书,若区块链节点审核通过第一业务证书,则调用智能合约中的对象合约,对象合约基于第一业务证书中的第一公钥,生成第一对象信息对应的第一地址,并将该第一地址作为第一对象标识,然后将第一对象标识、第一业务证书以及第一对象信息进行关联存储,对象合约的结构体参数以及合约方法,如图2b中的对象合约。
同样地,区块链网络中的区块链节点收到第二对象注册请求时,先通过第二公钥对第五签名消息进行验签处理,若验签成功,则审核第二业务证书,若区块链节点审核通过第二业务证书,则调用智能合约中的对象合约,对象合约基于第二业务证书中的第二公钥,生成第二对象信息对应的第二地址,并将该第二地址作为第二对象标识,然后将第二对象标识、第二业务证书以及第二对象信息进行关联存储。同样地,区块链节点收到第三对象注册请求时,先通过第三公钥对第六签名消息进行验签处理,若验签成功,则审核应用开发者证书,若区块链节点审核通过应用开发者证书,则调用智能合约中的对象合约,对象合约基于应用开发者证书中的第三公钥,生成第二对象信息对应的第三地址,并将该第三地址作为第三对象标识,然后将第三对象标识、应用开发者证书以及第二对象信息进行关联存储。
上述步骤1-步骤4过程请一并参见图2b,图2b是本申请实施例提供的一种基于区块链的对象注册方法的流程示意图。如图2b所示,步骤1a,第一设备生成第一非对称密钥对;步骤1b,第二设备生成第二非对称密钥对以及第三非对称密钥对;步骤2a,第一设备向证书设备申请证书;步骤2b,第二设备向证书设备申请证书;步骤3a,证书设备向第一设备颁发证书;步骤3b,证书设备向第二设备颁发证书;步骤4a,第一设备向区块链节点进行对象注册;步骤4b,第二设备向区块链节点进行对象注册。上述可知,本申请实施例的参与方(包括第一对象以及第二对象)信息由CA认证,并将密钥与对象信息挂钩,协作过程均由私钥签名,确保每个流程均能关联到发起方,故可以防止篡改与抵赖,便于溯源,利于监管,减少作恶。
步骤5、第一设备需要确定第一业务数据满足数据上传条件,确定过程可以概述如下:请一并参见图2c,图2c是本申请实施例提供的一种基于区块链的数据处理的场景示意图二。如图2c所示,第一设备100a通过远程认证,对第二设备100b进行对象信息、执行环境以及应用的安全性检测,该过程的具体实现,此处暂不展开描述,请参见下文图3所对应的实施例中步骤S101的描述,以及下文图5所对应的实施例中的描述。通过上述的安全性检测,若第一设备100a确定第一业务数据满足数据上传条件,则获取第一业务数据对应的第一位数组20a。可以理解的是,第一位数组20a可以使原始数据,即第一业务数据,可用不可见,故可以提高第一业务数据的安全性。其中,第一位数组20a的具体实现过程,请参见下文图3所对应的实施例中步骤S101的描述,此处暂不展开描述。
步骤6、如图2c所示,第一设备100a使用数据密钥20b对第一位数组20a进行加密处理,得到密文位数组20c。其中,数据密钥20b是第二设备100b在可信执行环境20e中的数据交集应用中所生成的。由于数据密钥20b在TEE中生成,其生成环境安全,因此数据密钥20b不会泄露,用它来加密第一位数组20a安全性高,仅生成它的飞地(即数据交集应用)可以通过数据密钥20b解密密文位数组20c,故可以确保第一位数组20a的安全。
步骤7、第一设备100a通过上述的第一私钥,对密文位数组20c进行签名处理,得到第七签名消息,如图2c所示,第一设备100a将携带第七签名消息的密文位数组20c传输至区块链网络。区块链网络中的区块链节点接收密文位数组20c后,首先通过第一非对称密钥对中的第一公钥,对第七签名消息进行验签处理,若验签通过,则区块链节点确保密文位数组20c完整未经篡改,故对密文位数组20c进行上链处理,即进行存储。
步骤8、第二设备100b向区块链网络发送用于获取密文位数组20c的数据下载请求,区块链节点获取到数据下载请求后,根据第二对象信息(等同于本申请的主题订阅对象信息)对应的当前订阅状态,决定返回密文位数组20c或拒绝处理数据下载请求,并将此过程上链留痕,便于追溯。若针对第二对象信息的当前订阅状态表征第二设备100b具有获取该密文位数组20c的权限,则将密文位数组20c返回至第二设备100b。可以理解的是,由区块链网络见证第二设备100b获取密文位数组100c的过程,确保数据可溯源,防止第二设备100b不提供业务服务。
步骤9、如图2c所示,第二设备100b具有普通执行环境20d以及可信执行环境20e,普通执行环境20d可以运行第二对象对应的第二对象平台(其不同于第一设备100a对应的平台),例如广告商平台;数据交集应用运行于可信执行环境中20e。在运行于普通执行环境20d的第二对象平台中,第二设备100b将密文位数组20c以及第二业务数据作为参数,生成交集数据查找请求;将交集数据查找请求发送至运行于可信执行环境20e中的数据交集应用。
步骤10、如图2c所示,在数据交集应用中,第二设备100b通过数据密钥20b,对密文位数组20c进行解密处理,得到第一位数组20a。进一步,第二设备100b生成第二业务数据对应的第二位数组20f,通过第一位数组20a以及第二位数组20f,第二设备100b可以确定第一业务数据以及第二业务数据之间的共有的业务数据,本申请实施例称为业务交集数据。
步骤11、如图2c所示,第二设备100b将在可信执行环境20e中所确定的业务交集数据传输至第二对象平台,进一步,第二设备100b进行与业务交集数据相关联的业务处理。
本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。本申请实施例可适用于平台之间业务交集数据确定场景,平台推荐场景,平台测评场景等,这里将不对具体的业务场景进行一一列举。
进一步地,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图一。该基于区块链的数据处理方法可以由第一设备执行,也可以由第二设备执行,也可以由区块链节点执行,还可以由第一设备、第二设备以及区块链节点中的至少两个主体交互执行,此处不做限制。为了便于叙述以及理解,本申请实施例以在第一设备中进行为例进行叙述,其中,第一设备可以为上述图1所对应实施例的第一设备100a。如图3所示,该基于区块链的数据处理方法至少可以包括以下步骤S101-步骤S103。
步骤S101,若第一业务数据满足数据上传条件,则生成第一业务数据对应的第一位数组。
具体的,生成针对第一业务数据的主题,生成包括主题以及主题发布对象信息的主题发布请求;通过第一设备对应的设备私钥,对主题发布请求进行签名处理,得到签名消息z,基于主题发布请求,调用区块链节点的发布主题合约;通过发布主题合约,将携带签名消息z的主题发布请求发送至区块链节点,以使区块链节点在通过主题发布请求的合法性验证时,调用发布主题合约;发布主题合约用于指示区块链节点在验证主题发布对象信息属于注册对象信息,且确定主题具有待发布属性时,存储主题;存储在区块链节点的主题,用于指示第二设备向区块链节点节点发送主题订阅请求;签名消息z用于指示区块链节点对主题发布请求进行合法性验证;获取区块链节点在确定主题订阅请求具有请求有效属性时,所转发的主题订阅请求;根据区块链节点所转发的主题订阅请求,确定第一业务数据与数据上传条件之间的关系;第一业务数据与数据上传条件之间的关系包括第一业务数据满足数据上传条件,或第一业务数据不满足数据上传条件。
其中,根据区块链节点所转发的主题订阅请求,确定第一业务数据与数据上传条件之间的关系的具体过程可以包括:根据区块链节点所转发的主题订阅请求,生成远程认证请求;将远程认证请求发送至第二设备,以使第二设备根据远程认证请求生成包括中间公钥f的中间密钥对g;中间公钥f用于指示第二设备调用可信执行环境a,生成针对数据交集应用的远程认证报告;获取第二设备返回的远程认证报告,根据远程认证报告,确定第一业务数据与数据上传条件之间的关系。
其中,根据区块链节点所转发的主题订阅请求,生成远程认证请求的具体过程可以包括:根据区块链节点所转发的主题订阅请求,生成认证挑战随机数,以及包括中间私钥h以及中间公钥i的中间密钥对j;根据中间公钥i以及认证挑战随机数,生成远程认证请求;中间公钥i用于指示第二设备根据中间公钥i、认证挑战随机数以及中间密钥对g中的中间私钥k,生成通信密钥;通信密钥用于对数据密钥进行加密处理,得到加密数据密钥;则还可以包括:获取远程认证报告中的中间公钥f,根据中间公钥f、认证挑战随机数以及中间私钥h,生成通信密钥;获取第二设备返回的加密数据密钥,通过通信密钥,对加密数据密钥进行解密处理,得到数据密钥。
具体的,获取映射有第一随机数的初始位数组以及随机映射函数,将第一业务数据输入至随机映射函数;通过随机映射函数,生成第一业务数据对应的第二随机数;第一随机数包括第二随机数;在初始位数组中确定待更新位数组;待更新位数组映射有第二随机数;将初始位数组中的待更新位数组进行更新处理,将更新处理之后的初始位数组确定为第一位数组。
在本申请实施例中,第一设备在发布密文位数组之前,先发布第一业务数据对应的主题,以使数据接收方(包括第二设备)订阅该主题,故第一设备可以审核第二设备对应的主题订阅请求,并将审核结果返回至区块链网络;若审核结果为审核通过结果,则确定第一业务数据满足数据上传条件。请一并参见图4a,图4a是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图一。如图4a所示,步骤4a1,第一设备生成主题;可以理解的是,本申请实施例不对第一设备对应的平台进行限制,故不对第一业务数据的类型进行限制。步骤4a2,第一设备生成主题发布请求;其中,该主题发布请求包括主题以及主题发布对象信息(等同于上文提及的第一对象信息);步骤4a3,第一设备生成签名消息z;第一设备通过第一设备对应的设备私钥(等同于上文提及的第一私钥),对主题发布请求进行签名处理,得到签名消息z;步骤4a4,第一设备发送携带签名消息z的主题发布请求至区块链节点;具体地,第一设备调用区块链上的主题合约的发布主题方法(即发布主题合约),向区块链网络发布主题;主题合约的结构体参数以及合约方法(包括发布主题方法),如图4a中的主题合约。步骤4a5,区块链节点验证主题;具体地,区块链节点接收到主题发布请求后,通过第一设备对应的设备公钥(等同于上述的第一公钥),对签名消息z进行验签处理,若验证通过,则确保主题发布请求未被篡改,进一步,调用发布主题方法,通过发布主题方法,区块链节点可以核对发布者(即主题发布对象信息)属于链上注册对象信息,等同于图4a中加粗表示的有效对象,其次可以确保主题尚未被注册,即链上是否已存在主题;以上验证通过后执行步骤4a6。步骤4a6,区块链节点存储主题。步骤4a7,区块链节点返回结果至第一设备;结果可以为用于表征区块链节点存储主题的信息。本申请实施例暂不展开描述第二设备发送主题订阅请求至区块链节点的过程,请参见下文图7所对应的实施例中的描述。
在确定主题订阅请求具有请求有效属性时,区块链节点转发主题订阅请求至第一设备,或第一设备向区块链节点查询待处理的主题订阅请求,如图4b所示,图4b是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图二。步骤4b1,第一设备向区块链节点查询待处理的主题订阅请求;步骤4b2,区块链节点返回最新有效的主题订阅请求至第一设备;区块链节点可以将主题(等同于主题名)作为参数,调用主题合约中的方法,如图4b中加粗表示的“获取最新有效的订阅请求”,获取待处理的主题订阅请求。
第一设备根据区块链节点所转发的主题订阅请求,可以确定第一业务数据与数据上传条件之间的关系,请一并参见图4c,图4c是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图三。如图4c所示,步骤4c1,第一设备生成认证挑战随机数,以及中间密钥对j(h,i),其中,h表示中间密钥对j中的中间公钥,i表示中间密钥对j中的中间私钥,其为一对非对称密钥对。步骤4c2,第一设备生成远程认证请求;具体地,第一设备将中间公钥h以及认证挑战随机数作为参数,生成远程认证请求。步骤4c3,第一设备发送远程认证请求。步骤4c4,第二设备生成中间密钥对g(f,k),其中,f表示中间密钥对g中的中间公钥,k表示中间密钥对g中的中间私钥,其也是一对非对称密钥对。步骤4c5,第二设备生成远程认证报告;具体地,第二设备将中间公钥f作为参数,调用可信执行环境a,生成远程认证报告。步骤4c6,第二设备生成通信密钥;具体地,第二设备根据远程认证请求中的中间公钥i、认证挑战随机数以及中间私钥k,生成通信密钥,将其保存下来,一种可行方式为通过密钥交换算法,生成通信密钥。其中,中间密钥对j的中间私钥h以及中间公钥i,可以通过如下公式(1)表示。
i=(G∧h)modp (1)
其中,公式(1)中的G为底数,p为素数,G以及P均属于认证挑战随机数。
中间密钥对g的中间私钥k以及中间公钥f,可以通过如下公式(2)表示。
f=(G∧k)modp (2)
第一设备以及第二设备分别生成的通信密钥,可以通过如下公式(3)表示。
S=(i∧k)modp=(f∧h)modp (3)
步骤4c7,第二设备返回远程认证报告至第一设备。步骤4c8,第一设备验证远程认证报告;第一设备调用认证服务(Provisioning Certification Service,PCS),对远程认证报告进行验证,若验证通过,即第一业务数据满足数据上传条件,则执行步骤4c9。步骤4c9,第一设备生成通信密钥。具体的,第一设备根据远程认证报告中的中间公钥f、认证挑战随机数以及中间私钥h,生成通信密钥,可以参见上述公式(3),保存通信密钥。
在本申请实施例中,为了保障第一位数组的安全性,第一设备会对第一位数组进行加密,且对第一位数组进行加密的数据密钥,是第二设备在可信执行环境中所生成的。请一并参见图4d,图4d是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图四。如图4d所示,步骤4d1,第二设备生成数据密钥;第二设备可以在获取到远程认证请求时,在可信执行环境中生成数据密钥,并将其运行以及存储于可信执行环境。步骤4d2,第二设备生成加密数据密钥;具体地,第二设备通过通信密钥,对数据密钥进行加密处理,得到加密数据密钥。步骤4d3,第二设备发送加密数据密钥至第一设备。步骤4d4,第一设备通过通信密钥,解密加密数据密钥,得到数据密钥。可以理解的是,除了第一设备以及第二设备之外的其他设备,无法生成通信密钥,因为不具有中间私钥k或中间私钥h。
若第一业务数据满足数据上传条件,则第一设备生成第一业务数据对应的第一位数组,一种可行地生成第一位数组的方法为采用布隆过滤器(Bloom Filter),布隆过滤器是由一个很长的二进制向量(可以等同于初始位数组,原始的二进制向量的每个点均为0),和一系列随机映射函数构成。布隆过滤器可以用于检索一个元素(例如本申请实施例的第二业务数据),是否在一个集合(例如本申请实施例中的第一业务数据)中,其原理是,当一个元素被加入集合时,通过L个随机映射函数(通常L大于1),将这个元素映射成初始位数组中的L个点,将L个点置为1。检索时,确认第一位数组中这L个点是否为1,如果第一位数组中这L个点不均为1或均不为1,这可以确定该元素不属于集合,如果第一位数组中这L个点均为1,则这个元素可能在该集合中,在本申请实施例中,将该元素确定为业务交集数据。
请一并参见图4e,图4e是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图五。如图4e所示,步骤4e1,第一设备获取第一业务数据。步骤4e2,第一设备生成第一位数组;可行地,第一设备生成布隆过滤器,将第一业务数据存入布隆过滤器,此时第一位数组为存入有第一业务数据的布隆过滤器。在本申请实施例中,第一设备不提供明文数据,即第一业务数据,而是将第一业务数据从数据库中读取出来,并存入布隆过滤器,在不泄漏数据的情况下,又能保证第二设备可以从中过滤出业务交集数据,达到数据可用不可见的目的。
步骤S102,通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理,得到密文位数组;数据交集应用运行于第二设备的可信执行环境a中。
具体的,请再参见图4e,步骤4e3,第一设备生成加密位数组;第一设备通过数据密钥,对第一位数组进行加密处理,得到加密位数组。
步骤S103,将密文位数组传输至区块链中的区块链节点,以使区块链节点存储密文位数组;存储在区块链节点的密文位数组用于由区块链节点转发至第二设备;第二设备用于在数据交集应用中,通过数据密钥对从区块链节点中所获取的密文位数组进行解密处理,得到第一位数组;第一位数组用于指示第二设备在数据交集应用中,生成第二业务数据对应的第二位数组;第二位数组以及第一位数组用于指示第二设备在数据交集应用中,确定第一业务数据以及第二业务数据之间的业务交集数据;业务交集数据用于指示第二设备进行与业务交集数据相关联的业务处理。
具体的,步骤4e4,第一设备发送加密位数组至区块链节点。步骤4e5,区块链节点存储加密位数组。
本申请实施例暂不对第二设备获取加密位数组的过程,以及确定业务交集数据的过程展开描述,请参见下文图7所对应的实施例中的描述。
在本申请实施例中,通过生成第一业务数据对应的第一位数组,可以确保第一业务数据可用不可见,故可以提高第一业务数据的安全性;进一步地,由于数据密钥是通过可信执行环境a中的数据交集应用所生成的,故其生成环境安全、应用环境安全以及存储环境安全,故通过数据密钥对第一位数组进行加密处理,可以提高第一位数组的安全性;进一步地,通过将密文位数组传输至区块链,可以准确地追溯第二设备针对密文位数组的获取状态;此外,本申请实施例是通过第一位数组以及第二业务数据对应的第二位数组,确定第一业务数据以及第二业务数据之间的业务交集数据,故不仅可以进行与业务交集数据相关联的业务处理,还进一步提高了第一业务数据的安全性。上述可知,采用本申请实施例,可以提高数据(包括第一业务数据以及第一位数组)的安全性,以及准确地追溯数据获取状态。
进一步地,请参见图5,图5是本申请实施例提供的一种数据处理方法的流程示意图二。如图5所示,该数据处理方法的过程包括如下步骤S1011-步骤S1013,且步骤S1011-步骤S1013为图3所对应实施例中步骤S101的一个具体实施例。
步骤S1011,调用认证服务,通过认证服务对远程认证报告进行验证处理,得到第一验证结果,
具体的,远程认证发生在第一设备将密文位数组发送至区块链网络之前,主要验证第二设备的数据运行环境、应用程序安全性,以及开发者信息(即订阅方)的正确性,从而保证密文位数组提供给了正确的使用者,并且密文位数组使用过程安全。
需要强调的是,本申请实施例不对数据运行环境的验证、应用程序的验证,以及开发者信息的验证顺序进行限定,可以并行验证,也可以串行验证,若串行验证,可以最先进行数据运行环境的验证,也可以最后进行数据运行环境的验证。
步骤S1012,若第一验证结果指示远程认证报告验证失败,则确定第一业务数据不满足数据上传条件。
具体的,若第一验证结果指示远程认证报告验证失败,则确定可信执行环境a不具有环境安全属性;生成用于指示可信执行环境a不具有环境安全属性的第一更新订阅状态,将第一更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第一更新订阅状态。
第一设备调用认证服务(PCS),通过认证服务,验证远程认证报告的有效性,如验证失败,说明第二设备的可信执行环境不可靠,需忽略订阅请求,此时,第一设备更新订阅状态为"环境不安全",即第一更新订阅状态,并终止后续流程。
步骤S1013,若第一验证结果指示远程认证报告验证通过,则获取数据交集应用的源码,根据源码,确定第一业务数据与数据上传条件之间的关系。
具体的,对源码进行验证处理,得到第二验证结果;若第二验证结果指示源码验证通过,则获取远程认证报告中针对数据交集应用的主题订阅对象信息,对主题订阅对象信息进行验证处理,得到第三验证结果;获取远程认证报告中针对源码的远程度量值,对远程度量值进行验证处理,得到第四验证结果;根据第三验证结果以及第四验证结果,确定第一业务数据与数据上传条件之间的关系;若第二验证结果指示源码验证失败,则确定第一业务数据不满足数据上传条件;则还可以包括:若第二验证结果指示源码验证失败,则确定源码不具有代码安全属性;生成用于指示源码不具有代码安全属性的第二更新订阅状态,将第二更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第二更新订阅状态。
其中,对主题订阅对象信息进行验证处理,得到第三验证结果的具体过程可以包括:获取针对数据交集应用的应用开发对象证书,从应用开发对象证书中获取应用开发对象信息,将主题订阅对象信息与应用开发对象信息进行对比;若主题订阅对象信息与应用开发对象信息不同,则生成用于指示主题订阅对象信息验证失败的第三验证结果;若主题订阅对象信息与应用开发对象信息相同,则生成用于指示主题订阅对象信息验证通过的第三验证结果;则还可以包括:若第三验证结果指示主题订阅对象信息验证失败,则生成用于指示主题订阅对象信息为未授权对象信息的第三更新订阅状态;将第三更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第三更新订阅状态。
其中,对远程度量值进行验证处理,得到第四验证结果的具体过程可以包括:在第一设备的可信执行环境b中对源码进行编译处理,得到可信度量值;将远程度量值与可信度量值进行对比,若远程度量值与可信度量值不同,则生成用于指示远程度量值验证失败的第四验证结果;若远程度量值与可信度量值相同,则生成用于指示远程度量值验证通过的第四验证结果;则还可以包括:若第四验证结果指示远程度量值验证失败,则生成用于指示源码与运行代码不匹配的第四更新订阅状态;将第四更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第四更新订阅状态。
其中,根据第三验证结果以及第四验证结果,确定第一业务数据与数据上传条件之间的关系的具体过程可以包括:若第三验证结果指示主题订阅对象信息验证通过,且第四验证结果指示远程度量值验证通过,则确定第一业务数据满足数据上传条件;则还可以包括:若第一业务数据满足数据上传条件,则生成用于指示主题订阅请求通过验证的第五更新订阅状态;将第五更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第五更新订阅状态。
若存在未处理的远程认证报告,则第一设备会验证该远程认证报告对应的订阅者的身份,确保它为合作方,请一并参见图6a,图6a是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图六。如图6a所示,步骤6a1,第一设备向区块链节点请求获取应用开发者证书;若第一设备还未缓存订阅方的应用开发者证书,则从链上下载,并将其缓存;若本地已缓存订阅方的应用开发者证书,则跳过步骤6a1,执行步骤6a2。步骤6a2,区块链节点返回应用开发者证书至第一设备;区块链节点可以根据第一设备发送的对象标识,调用对象合约中的获取对象信息方法,进而获取第一设备请求获取的应用开发者证书。步骤6a3,第一设备对主题订阅对象信息进行验证,得到第三验证结果;具体地,第一设备将应用开发者证书中的应用开发对象信息,与远程认证报告中的主题订阅对象信息进行对比,得到第三验证结果。步骤6a4,若验证失败,则第一设备返回第三更新订阅状态至区块链节点。可以理解的是,若验证通过,则第一设备不执行该步骤,此时要么执行其他验证步骤,或返回第五更新订阅状态至区块链节点。
第二设备提供数据交集应用的源码(代码)给第一设备,由第一设备进行人工审核,若源码存在不安全因素,例如漏洞或恶意使用数据,则更新订阅状态为"程序不符预期",即第二更新订阅状态,并终止后续流程。
此外,请一并参见图6b,图6b是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图七。如图6b所示,步骤6b1,第一设备可信执行环境中编译源码生成可信度量值;步骤6b2,第一设备将可信度量值以及远程度量值进行对比;若两者相同,则返回第五更新订阅状态,或进行后续过程。步骤6b3,若不同,则第一设备返回第四更新订阅状态;若两者不一致,则说明第二设备提供的审核代码与在第二设备在TEE环境中正在运行的代码不一致,有潜在的风险,因此更新订阅状态为"审核代码与运行代码不一致",并终止后续流程。
上述可知,针对源码的验证包括两方面,一是对源码进行验证,二是对源码进行编译,请一并参见图6c,图6c是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图八。如图6c所示,步骤6c1,第二设备生成数据交集应用的源码;步骤6c2,第二设备在可信执行环境中编译源码,得到数据交集应用;步骤6c3,第二设备在可信执行环境中运行数据交集应用;步骤6c4,第二设备向第一设备传输源码;本申请实施例不对源码传输方式进行限定,可以第二设备与第一设备之间点对点传输,也可以第二设备将源码传输至区块链网络,然后第一设备从区块链网络中获取;此外,在第二设备对源码进行更新的场景下,第二设备会再次传输更新后的源码至第一设备。本申请实施例不对步骤6c4与步骤6c2的执行顺序进行限定,可以同时执行。步骤6c5,第二设备审核源码;若审核没通过,则将第二更新订阅状态发送至区块链节点;若审核通过,则执行步骤6c6,第一设备在可信执行环境中编译源码,得到数据交集应用。步骤6c7,第一设备生成数据交集应用的可信度量值;后续过程与上文一致,故不再进行赘述。
若以上认证(即订阅方认证、数据运行环境认证以及应用安全认证)均通过,则第一设备更新主题合约中的订阅者,并更新合约订阅请求的状态为"已完成",即第五更新订阅状态。同时,第一设备保存远程认证结果。
结合本申请实施例以及上文图3所对应的实施例中的步骤S101,可知在获取到待处理的主题订阅请求后,第一设备会根据主题订阅请求,向订阅方(即第二设备)发送远程认证请求,远程认证请求不仅提示第二设备返回远程认证报告,还可以提示第二设备生成通信密钥,以及返回加密数据密钥。
本申请实施例融合区块链、可信执行环境以及布隆过滤器技术,提供加密数据求交集的软硬件结合解决方案。通过区块链提供对象信息认证,确保流程透明,过程可信;通过TEE远程认证,确保执行环境安全及应用程序安全;通过布隆过滤器,实现数据可用不可见功能。本方案大幅降低了程序的时间复杂度及空间复杂度,确保了数据在存储、传输、运行过程的全生命周期的安全,在不泄漏业务数据的情况下,可以快速找出多方公共样本,故可以达成联合业务处理。
请参见图7,图7是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图三。该基于区块链的数据处理方法可以由第一设备执行,也可以由第二设备执行,也可以由区块链节点执行,还可以由第一设备、第二设备以及区块链节点中的至少两个主体交互执行,此处不做限制。为了便于叙述以及理解,本申请实施例以在第二设备中进行为例进行叙述,其中,第二设备可以为上述图1所对应实施例的第二设备100b。如图7所示,该方法至少可以包括以下步骤。
步骤S201,获取由区块链中的区块链节点转发的密文位数组;密文位数组是第一设备传输至区块链节点的,且密文位数组是第一设备通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理所得到的;数据交集应用运行于第二设备的可信执行环境a中;第一位数组是第一设备在第一业务数据满足数据上传条件时,针对第一业务数据所生成的。
具体的,根据主题订阅对象信息,生成用于订阅主题的主题订阅请求;主题是第一设备针对第一业务数据所生成的;基于主题订阅请求,调用区块链节点的订阅主题合约;通过订阅主题合约,将主题订阅请求发送至区块链节点,以使区块链节点在通过订阅主题合约验证主题具有待订阅属性,且主题订阅对象信息属于注册对象信息时,储存主题订阅请求,且为主题订阅请求设置请求待验证状态;请求待验证状态用于指示区块链节点将主题订阅请求转发至第一设备。
具体的,根据主题订阅对象信息,生成用于获取密文位数组的数据下载请求;将数据下载请求发送至区块链节点,以使区块链节点根据数据下载请求查询主题订阅对象信息对应的当前订阅状态;获取区块链节点在确定当前订阅状态为第五更新订阅状态时,所返回的密文位数组;第五更新订阅状态用于指示第一设备对主题订阅请求通过验证;主题订阅请求是在区块链节点存储针对第一业务数据的主题时所发送的。
请一并参见图8,图8是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图九。如图8所示,步骤81、第二设备发送主题订阅请求至区块链节点;其中,主题订阅请求包括主题订阅对象信息。步骤82、区块链节点核对主题订阅请求;具体地,区块链节点会调用订阅主题方法(等同于订阅主题合约),通过订阅主题方法,确保主题还没有被其它方订阅(此类主题仅供一方订阅,因为主题的消息是加密的,通信密钥以及数据密钥不能在多方间共享,防止数据泄密),同时确保订阅者是链上已注册的对象。步骤83、区块链节点保存主题订阅请求;区块链节点基于主题名,订阅者(即主题订阅对象信息),区块高度及交易索引(index)生成订阅请求标识,保存主题订阅请求,并根据上述验证情况,标记主题订阅请求的请求处理状态为"对象未注册/已被其它对象订阅/待授权"。若主题订阅请求有效,则更新主题的最新有效订阅请求的请求标识为最新订阅请求标识。步骤84、区块链节点返回结果至第二设备;结果可以用于表征区块链网络针对主题订阅请求的处理结果。
步骤S202,在数据交集应用中,通过数据密钥对从区块链节点中所获取的密文位数组进行解密处理,得到第一位数组。
请一并参见图9,图9是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图十。如图9所示,步骤91、第二设备从区块链节点下载密文位数组。步骤92、第二设备通过数据密钥对密文位数组进行解密处理,得到第一位数组。
步骤S203,在数据交集应用中,生成第二业务数据对应的第二位数组,根据第二位数组以及第一位数组,确定第一业务数据以及第二业务数据之间的业务交集数据。
具体的,第二业务数据包括第二业务数据Cd,d为正整数,且d小于或等于第二业务数据的总数量;第二位数组包括第二业务数据Cd对应的第二位数组Ed;若第一位数组包括第二位数组Ed,则确定第二业务数据Cd为第一业务数据以及第二业务数据之间的业务交集数据。
请再参见图9,步骤93、第二设备生成第二业务数据的第二位数组。具体地,第一设备生成第一位数组的过程,与第二设备生成第二位数组的过程是相同的,故此处不再赘述。步骤94、第二设备对比第二位数组以及第一位数组,确定业务交集数据。其中,图9中的步骤92-步骤94均在可信执行环境中执行。本申请实施例不对第二业务数据的数量进行限制,可以为一个或多个。若存在多个第二业务数据,则第二设备是遍历每个第二业务数据,以确定一个第二业务数据对应的一个第二位数组在第一位数组中的存在性,若存在,则确定该第二业务数据为业务交集数据。步骤95、第二设备进行与业务交集数据相关联的业务处理。
为了便于理解,此处示例第一业务数据为第一设备对应的平台应用所持有的手机号,该手机号可以是平台应用的静默对象的联系方式,平台应用想对静默对象进行推广,以吸引静默对象回顾平台。故与具有强大推广能力的推广商合作,但为了保障静默对象的手机号的安全性,第一设备不能将手机号对外,此时第一设备可以采用本申请提供的方法,即先生成手机号(即第一业务数据)对应的第一位数组,具体可以为将手机号存入布隆过滤器;然后通过第二设备在可信执行环境中所生成的数据密钥,对存入有手机号的布隆过滤器进行加密处理,得到加密布隆过滤器;然后将加密布隆过滤器传输至区块链。
区块链先对加密布隆过滤器进行相关审核,审核通过时,存储加密布隆过滤器;在获取到第二设备发送的数据下载请求时,先对第二设备相近相关审核,审核通过时,将加密布隆过滤器转发至第二设备。
在运行于可信执行环境的数据交集应用中,第二设备先通过数据密钥对加密布隆过滤器进行解密处理,得到存入有手机号的布隆过滤器(为了区分,称为第一布隆过滤器)。然后将自己持有的手机号传输至可信执行环境,将每个手机号单独存入布隆过滤器(为了区分,称为第二布隆过滤器),若第二布隆过滤器与第一布隆过滤器匹配,则确定第二布隆过滤器中的手机号属于推广商以及平台应用共同持有的手机号,即业务交集数据。后续,第二设备将第一设备提供的具有推广效果的广告,推送给业务交集数据,其属于平台应用的静默对象的联系方式。
本申请实施例为了保护明文数据,即第一业务数据,结合了隐私集合求交,隐私集合求交,全称隐私保护集合交集(Private Set Intersection,PSI),是指持有数据的两方能够计算得到双方数据集合的交集部分,而不暴露交集以外的任何数据集合信息。PSI通常具有以下三个特点:
(1)半可信场景:数据双方不愿意暴露所有数据,仅希望求得数据集合交集;
(2)数据最小化:除了数据集合交集以外的数据不能泄露给任意一方;
(3)安全双方计算:参与计算的双方需要共同实现一套安全的计算协议,以保证数据的安全性。
步骤S204,对业务交集数据进行业务处理。
具体的,获取第一设备提供的具有应用推荐功能的媒体数据,将媒体数据推送至第二业务数据Cd。
通过布隆过滤器存储第一业务数据,本申请实施例不仅能保护对象隐私,还能减少数据量,降低通信次数,降低系统的时间及空间复杂度。
通过在TEE中生成、管理数据密钥,本申请实施例能确保数据密钥在存储,传递及使用过程中的安全性,从而保证数据的安全。
通过使用区块链,本申请实施例将代码上链,提高了应用程序的可信度,当数据使用方(即第二设备)未经数据提供方(即第一设备)同意,更新代码时,数据提供方可停止提供第一业务数据,并将这个过程上链,为服务状态变更存证。此外,参与方(包括数据使用方以及数据提供方)可以为每次提供的服务/数据上链,为后继服务提供依据。另外,将对象身份信息上链,可以验证数据完整性;工作流程上链,可以确保流程透明,便于监管。
在本申请实施例中,通过生成第一业务数据对应的第一位数组,可以确保第一业务数据可用不可见,故可以提高第一业务数据的安全性;进一步地,由于数据密钥是通过可信执行环境a中的数据交集应用所生成的,故其生成环境安全、应用环境安全以及存储环境安全,故通过数据密钥对第一位数组进行加密处理,可以提高第一位数组的安全性;进一步地,通过将密文位数组传输至区块链,可以准确地追溯第二设备针对密文位数组的获取状态;此外,本申请实施例是通过第一位数组以及第二业务数据对应的第二位数组,确定第一业务数据以及第二业务数据之间的业务交集数据,故不仅可以进行与业务交集数据相关联的业务处理,还进一步提高了第一业务数据的安全性。上述可知,采用本申请实施例,可以提高数据(包括第一业务数据以及第一位数组)的安全性,以及准确地追溯数据获取状态。
进一步地,请参见图10,图10是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图一。该基于区块链的数据处理装置1可以运行于第一设备,上述基于区块链的数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图10所示,该基于区块链的数据处理装置1可以包括:第一生成模块11、第一处理模块12以及密文传输模块13。
第一生成模块11,用于若第一业务数据满足数据上传条件,则生成第一业务数据对应的第一位数组;
第一处理模块12,用于通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理,得到密文位数组;数据交集应用运行于第二设备的可信执行环境a中;
密文传输模块13,用于将密文位数组传输至区块链中的区块链节点,以使区块链节点存储密文位数组;存储在区块链节点的密文位数组用于由区块链节点转发至第二设备;第二设备用于在数据交集应用中,通过数据密钥对从区块链节点中所获取的密文位数组进行解密处理,得到第一位数组;第一位数组用于指示第二设备在数据交集应用中,生成第二业务数据对应的第二位数组;第二位数组以及第一位数组用于指示第二设备在数据交集应用中,确定第一业务数据以及第二业务数据之间的业务交集数据;业务交集数据用于指示第二设备进行与业务交集数据相关联的业务处理。
其中,第一生成模块11、第一处理模块12以及密文传输模块13的具体功能实现方式,可以参见上述图3对应实施例中的步骤S101-步骤S103,这里不再进行赘述。
再请参见图10,基于区块链的数据处理装置1还可以包括:第二处理模块15、请求发送模块16、请求获取模块17以及关系确定模块18。
第二生成模块14,用于生成针对第一业务数据的主题,生成包括主题以及主题发布对象信息的主题发布请求;
第二处理模块15,用于通过第一设备对应的设备私钥,对主题发布请求进行签名处理,得到签名消息z,基于主题发布请求,调用区块链节点的发布主题合约;
请求发送模块16,用于通过发布主题合约,将携带签名消息z的主题发布请求发送至区块链节点,以使区块链节点在通过主题发布请求的合法性验证时,调用发布主题合约;发布主题合约用于指示区块链节点在验证主题发布对象信息属于注册对象信息,且确定主题具有待发布属性时,存储主题;存储在区块链节点的主题,用于指示第二设备向区块链节点节点发送主题订阅请求;签名消息z用于指示区块链节点对主题发布请求进行合法性验证;
请求获取模块17,用于获取区块链节点在确定主题订阅请求具有请求有效属性时,所转发的主题订阅请求;
关系确定模块18,用于根据区块链节点所转发的主题订阅请求,确定第一业务数据与数据上传条件之间的关系;第一业务数据与数据上传条件之间的关系包括第一业务数据满足数据上传条件,或第一业务数据不满足数据上传条件。
其中,第二处理模块15、请求发送模块16、请求获取模块17以及关系确定模块18的具体功能实现方式,可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
再请参见图10,关系确定模块18可以包括:第一生成单元181、请求发送单元182以及第一获取单元183。
第一生成单元181,用于根据区块链节点所转发的主题订阅请求,生成远程认证请求;
请求发送单元182,用于将远程认证请求发送至第二设备,以使第二设备根据远程认证请求生成包括中间公钥f的中间密钥对g;中间公钥f用于指示第二设备调用可信执行环境a,生成针对数据交集应用的远程认证报告;
第一获取单元183,用于获取第二设备返回的远程认证报告,根据远程认证报告,确定第一业务数据与数据上传条件之间的关系。
其中,第一生成单元181、请求发送单元182以及第一获取单元183的具体功能实现方式,可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
再请参见图10,第一获取单元183可以包括:报告验证子单元1831、第一确定子单元1832以及第二确定子单元1833。
报告验证子单元1831,用于调用认证服务,通过认证服务对远程认证报告进行验证处理,得到第一验证结果;
第一确定子单元1832,用于若第一验证结果指示远程认证报告验证失败,则确定第一业务数据不满足数据上传条件;
第二确定子单元1833,用于若第一验证结果指示远程认证报告验证通过,则获取数据交集应用的源码,根据源码,确定第一业务数据与数据上传条件之间的关系;
则第一获取单元183还可以包括:第三确定子单元1834以及状态发送子单元1835。
第三确定子单元1834,用于若第一验证结果指示远程认证报告验证失败,则确定可信执行环境a不具有环境安全属性;
状态发送子单元1835,用于生成用于指示可信执行环境a不具有环境安全属性的第一更新订阅状态,将第一更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第一更新订阅状态。
其中,报告验证子单元1831、第一确定子单元1832、第二确定子单元1833、第三确定子单元1834以及状态发送子单元1835的具体功能实现方式,可以参见上述图5对应实施例中的步骤S1013,这里不再进行赘述。
再请参见图10,第二确定子单元1833可以包括:第一处理子单元18331、第二处理子单元18332、第三处理子单元18333以及关系确定子单元18334。
第一处理子单元18331,用于对源码进行验证处理,得到第二验证结果;
第二处理子单元18332,用于若第二验证结果指示源码验证通过,则获取远程认证报告中针对数据交集应用的主题订阅对象信息,对主题订阅对象信息进行验证处理,得到第三验证结果;
第三处理子单元18333,用于获取远程认证报告中针对源码的远程度量值,对远程度量值进行验证处理,得到第四验证结果;
关系确定子单元18334,用于根据第三验证结果以及第四验证结果,确定第一业务数据与数据上传条件之间的关系;
第二处理子单元18332,还用于若第二验证结果指示源码验证失败,则确定第一业务数据不满足数据上传条件;
则第二确定子单元1833还可以包括:状态生成子单元18335。
第二处理子单元18332,还用于若第二验证结果指示源码验证失败,则确定源码不具有代码安全属性;
状态生成子单元18335,用于生成用于指示源码不具有代码安全属性的第二更新订阅状态,将第二更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第二更新订阅状态。
其中,第一处理子单元18331、第二处理子单元18332、第三处理子单元18333、关系确定子单元18334以及状态生成子单元18335的具体功能实现方式,可以参见上述图5对应实施例中的步骤S1013,这里不再进行赘述。
再请参见图10,第二处理子单元18332,具体用于获取针对数据交集应用的应用开发对象证书,从应用开发对象证书中获取应用开发对象信息,将主题订阅对象信息与应用开发对象信息进行对比;
第二处理子单元18332,还具体用于若主题订阅对象信息与应用开发对象信息不同,则生成用于指示主题订阅对象信息验证失败的第三验证结果;
第二处理子单元18332,还具体用于若主题订阅对象信息与应用开发对象信息相同,则生成用于指示主题订阅对象信息验证通过的第三验证结果;
则第二处理子单元18332,还具体用于若第三验证结果指示主题订阅对象信息验证失败,则生成用于指示主题订阅对象信息为未授权对象信息的第三更新订阅状态;
第二处理子单元18332,还具体用于将第三更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第三更新订阅状态。
其中,第二处理子单元18332的具体功能实现方式,可以参见上述图5对应实施例中的步骤S1013,这里不再进行赘述。
再请参见图10,第三处理子单元18333,具体用于在第一设备的可信执行环境b中对源码进行编译处理,得到可信度量值;
第三处理子单元18333,还具体用于将远程度量值与可信度量值进行对比,若远程度量值与可信度量值不同,则生成用于指示远程度量值验证失败的第四验证结果;
第三处理子单元18333,还具体用于若远程度量值与可信度量值相同,则生成用于指示远程度量值验证通过的第四验证结果;
则第三处理子单元18333,还具体用于若第四验证结果指示远程度量值验证失败,则生成用于指示源码与运行代码不匹配的第四更新订阅状态;
第三处理子单元18333,还具体用于将第四更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第四更新订阅状态。
其中,第三处理子单元18333的具体功能实现方式,可以参见上述图5对应实施例中的步骤S1013,这里不再进行赘述。
再请参见图10,关系确定子单元18334,具体用于若第三验证结果指示主题订阅对象信息验证通过,且第四验证结果指示远程度量值验证通过,则确定第一业务数据满足数据上传条件;
则关系确定子单元18334,还具体用于若第一业务数据满足数据上传条件,则生成用于指示主题订阅请求通过验证的第五更新订阅状态;
关系确定子单元18334,还具体用于将第五更新订阅状态发送至区块链节点,以使区块链节点为主题订阅请求设置第五更新订阅状态。
其中,关系确定子单元18334的具体功能实现方式,可以参见上述图5对应实施例中的步骤S1013,这里不再进行赘述。
再请参见图10,第一生成单元181可以包括:第一生成子单元1811以及第二生成子单元1812。
第一生成子单元1811,用于根据区块链节点所转发的主题订阅请求,生成认证挑战随机数,以及包括中间私钥h以及中间公钥i的中间密钥对j;
第二生成子单元1812,用于根据中间公钥i以及认证挑战随机数,生成远程认证请求;中间公钥i用于指示第二设备根据中间公钥i、认证挑战随机数以及中间密钥对g中的中间私钥k,生成通信密钥;通信密钥用于对数据密钥进行加密处理,得到加密数据密钥;
则第一生成单元181可以包括:第一获取子单元1813以及第二获取子单元1814。
第一获取子单元1813,用于获取远程认证报告中的中间公钥f,根据中间公钥f、认证挑战随机数以及中间私钥h,生成通信密钥;
第二获取子单元1814,用于获取第二设备返回的加密数据密钥,通过通信密钥,对加密数据密钥进行解密处理,得到数据密钥。
其中,第一生成子单元1811、第二生成子单元1812、第一获取子单元1813以及第二获取子单元1814的具体功能实现方式,可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
再请参见图10,第一生成模块11可以包括:第二获取单元111、第二生成单元112、第一确定单元113以及第二确定单元114。
第二获取单元111,用于获取映射有第一随机数的初始位数组以及随机映射函数,将第一业务数据输入至随机映射函数;
第二生成单元112,用于通过随机映射函数,生成第一业务数据对应的第二随机数;第一随机数包括第二随机数;
第一确定单元113,用于在初始位数组中确定待更新位数组;待更新位数组映射有第二随机数;
第二确定单元114,用于将初始位数组中的待更新位数组进行更新处理,将更新处理之后的初始位数组确定为第一位数组。
其中,第二获取单元111、第二生成单元112、第一确定单元113以及第二确定单元114的具体功能实现方式,可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
在本申请实施例中,通过生成第一业务数据对应的第一位数组,可以确保第一业务数据可用不可见,故可以提高第一业务数据的安全性;进一步地,由于数据密钥是通过可信执行环境a中的数据交集应用所生成的,故其生成环境安全、应用环境安全以及存储环境安全,故通过数据密钥对第一位数组进行加密处理,可以提高第一位数组的安全性;进一步地,通过将密文位数组传输至区块链,可以准确地追溯第二设备针对密文位数组的获取状态;此外,本申请实施例是通过第一位数组以及第二业务数据对应的第二位数组,确定第一业务数据以及第二业务数据之间的业务交集数据,故不仅可以进行与业务交集数据相关联的业务处理,还进一步提高了第一业务数据的安全性。上述可知,采用本申请实施例,可以提高数据(包括第一业务数据以及第一位数组)的安全性,以及准确地追溯数据获取状态。
进一步地,请参见图11,图11是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图二。上述基于区块链的数据处理装置2可以运行于第二设备,该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,该基于区块链的数据处理装置2可以包括:密文获取模块21、第一处理模块22、第一生成模块23以及第二处理模块24。
密文获取模块21,用于获取由区块链中的区块链节点转发的密文位数组;密文位数组是第一设备传输至区块链节点的,且密文位数组是第一设备通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理所得到的;数据交集应用运行于第二设备的可信执行环境a中;第一位数组是第一设备在第一业务数据满足数据上传条件时,针对第一业务数据所生成的;
第一处理模块22,用于在数据交集应用中,通过数据密钥对从区块链节点中所获取的密文位数组进行解密处理,得到第一位数组;
第一生成模块23,用于在数据交集应用中,生成第二业务数据对应的第二位数组,根据第二位数组以及第一位数组,确定第一业务数据以及第二业务数据之间的业务交集数据;
第二处理模块24,用于对业务交集数据进行业务处理。
其中,密文获取模块21、第一处理模块22、第一生成模块23以及第二处理模块24的具体功能实现方式,可以参见上述图7对应实施例中的步骤S201-步骤S204,这里不再进行赘述。
再请参见图11,密文获取模块21可以包括:请求生成单元211、请求发送单元212以及密文获取单元213。
请求生成单元211,用于根据主题订阅对象信息,生成用于获取密文位数组的数据下载请求;
请求发送单元212,用于将数据下载请求发送至区块链节点,以使区块链节点根据数据下载请求查询主题订阅对象信息对应的当前订阅状态;
密文获取单元213,用于获取区块链节点在确定当前订阅状态为第五更新订阅状态时,所返回的密文位数组;第五更新订阅状态用于指示第一设备对主题订阅请求通过验证;主题订阅请求是在区块链节点存储针对第一业务数据的主题时所发送的。
其中,请求生成单元211、请求发送单元212以及密文获取单元213的具体功能实现方式,可以参见上述图7对应实施例中的步骤S201,这里不再进行赘述。
再请参见图11,第二业务数据包括第二业务数据Cd,d为正整数,且d小于或等于第二业务数据的总数量;第二位数组包括第二业务数据Cd对应的第二位数组Ed;
第一生成模块23,具体用于若第一位数组包括第二位数组Ed,则确定第二业务数据Cd为第一业务数据以及第二业务数据之间的业务交集数据;
则第二处理模块24,具体用于获取第一设备提供的具有应用推荐功能的媒体数据,将媒体数据推送至第二业务数据Cd。
其中,第一生成模块23以及第二处理模块24的具体功能实现方式,可以参见上述图7对应实施例中的步骤S203-步骤S204,这里不再进行赘述。
再请参见图11,基于区块链的数据处理装置2还可以包括:第二生成模块25、合约调用模块26以及请求发送模块27。
第二生成模块25,用于根据主题订阅对象信息,生成用于订阅主题的主题订阅请求;主题是第一设备针对第一业务数据所生成的;
合约调用模块26,用于基于主题订阅请求,调用区块链节点的订阅主题合约;
请求发送模块27,用于通过订阅主题合约,将主题订阅请求发送至区块链节点,以使区块链节点在通过订阅主题合约验证主题具有待订阅属性,且主题订阅对象信息属于注册对象信息时,储存主题订阅请求,且为主题订阅请求设置请求待验证状态;请求待验证状态用于指示区块链节点将主题订阅请求转发至第一设备。
其中,第二生成模块25、合约调用模块26以及请求发送模块27的具体功能实现方式,可以参见上述图7对应实施例中的步骤S201,这里不再进行赘述。
在本申请实施例中,通过生成第一业务数据对应的第一位数组,可以确保第一业务数据可用不可见,故可以提高第一业务数据的安全性;进一步地,由于数据密钥是通过可信执行环境a中的数据交集应用所生成的,故其生成环境安全、应用环境安全以及存储环境安全,故通过数据密钥对第一位数组进行加密处理,可以提高第一位数组的安全性;进一步地,通过将密文位数组传输至区块链,可以准确地追溯第二设备针对密文位数组的获取状态;此外,本申请实施例是通过第一位数组以及第二业务数据对应的第二位数组,确定第一业务数据以及第二业务数据之间的业务交集数据,故不仅可以进行与业务交集数据相关联的业务处理,还进一步提高了第一业务数据的安全性。上述可知,采用本申请实施例,可以提高数据(包括第一业务数据以及第一位数组)的安全性,以及准确地追溯数据获取状态。
进一步地,请参见图12,图12是本申请实施例提供的一种计算机设备的结构示意图。如图12所示,该计算机设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,在一些实施例中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机存储介质的存储器1005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图12所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
若第一业务数据满足数据上传条件,则生成第一业务数据对应的第一位数组;
通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理,得到密文位数组;数据交集应用运行于第二设备的可信执行环境a中;
将密文位数组传输至区块链中的区块链节点,以使区块链节点存储密文位数组;存储在区块链节点的密文位数组用于由区块链节点转发至第二设备;第二设备用于在数据交集应用中,通过数据密钥对从区块链节点中所获取的密文位数组进行解密处理,得到第一位数组;第一位数组用于指示第二设备在数据交集应用中,生成第二业务数据对应的第二位数组;第二位数组以及第一位数组用于指示第二设备在数据交集应用中,确定第一业务数据以及第二业务数据之间的业务交集数据;业务交集数据用于指示第二设备进行与业务交集数据相关联的业务处理。
或者,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取由区块链中的区块链节点转发的密文位数组;密文位数组是第一设备传输至区块链节点的,且密文位数组是第一设备通过第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理所得到的;数据交集应用运行于第二设备的可信执行环境a中;第一位数组是第一设备在第一业务数据满足数据上传条件时,针对第一业务数据所生成的;
在数据交集应用中,通过数据密钥对从区块链节点中所获取的密文位数组进行解密处理,得到第一位数组;
在数据交集应用中,生成第二业务数据对应的第二位数组,根据第二位数组以及第一位数组,确定第一业务数据以及第二业务数据之间的业务交集数据;
对业务交集数据进行业务处理。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文各实施例中对基于区块链的数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现前文各实施例中对基于区块链的数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
上述计算机可读存储介质可以是前述任一实施例提供的基于区块链的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备可执行前文各实施例中对基于区块链的数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (19)
1.一种基于区块链的数据处理方法,其特征在于,所述方法由第一设备执行,所述方法包括:
若第一业务数据满足数据上传条件,则生成所述第一业务数据对应的第一位数组;
通过第二设备在数据交集应用中所生成的数据密钥,对所述第一位数组进行加密处理,得到密文位数组;所述数据交集应用运行于所述第二设备的可信执行环境a中;
将所述密文位数组传输至所述区块链中的区块链节点,以使所述区块链节点存储所述密文位数组;存储在所述区块链节点的所述密文位数组用于由所述区块链节点转发至所述第二设备;所述第二设备用于在所述数据交集应用中,通过所述数据密钥对从所述区块链节点中所获取的所述密文位数组进行解密处理,得到所述第一位数组;所述第一位数组用于指示所述第二设备在所述数据交集应用中,生成第二业务数据对应的第二位数组;所述第二位数组以及所述第一位数组用于指示所述第二设备在所述数据交集应用中,确定所述第一业务数据以及所述第二业务数据之间的业务交集数据;所述业务交集数据用于指示所述第二设备进行与所述业务交集数据相关联的业务处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成针对所述第一业务数据的主题,生成包括所述主题以及主题发布对象信息的主题发布请求;
通过第一设备对应的设备私钥,对所述主题发布请求进行签名处理,得到签名消息z,基于所述主题发布请求,调用所述区块链节点的发布主题合约;
通过所述发布主题合约,将携带所述签名消息z的所述主题发布请求发送至所述区块链节点,以使所述区块链节点在通过所述主题发布请求的合法性验证时,调用所述发布主题合约;所述发布主题合约用于指示所述区块链节点在验证所述主题发布对象信息属于注册对象信息,且确定所述主题具有待发布属性时,存储所述主题;存储在所述区块链节点的所述主题,用于指示所述第二设备向所述区块链节点节点发送主题订阅请求;所述签名消息z用于指示所述区块链节点对所述主题发布请求进行合法性验证;
获取所述区块链节点在确定所述主题订阅请求具有请求有效属性时,所转发的所述主题订阅请求;
根据所述区块链节点所转发的所述主题订阅请求,确定所述第一业务数据与所述数据上传条件之间的关系;所述第一业务数据与所述数据上传条件之间的关系包括所述第一业务数据满足所述数据上传条件,或所述第一业务数据不满足所述数据上传条件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述区块链节点所转发的所述主题订阅请求,确定所述第一业务数据与所述数据上传条件之间的关系,包括:
根据所述区块链节点所转发的所述主题订阅请求,生成远程认证请求;
将所述远程认证请求发送至所述第二设备,以使所述第二设备根据所述远程认证请求生成包括中间公钥f的中间密钥对g;所述中间公钥f用于指示所述第二设备调用所述可信执行环境a,生成针对所述数据交集应用的远程认证报告;
获取所述第二设备返回的所述远程认证报告,根据所述远程认证报告,确定所述第一业务数据与所述数据上传条件之间的关系。
4.根据权利要求3所述的方法,其特征在于,所述根据所述远程认证报告,确定所述第一业务数据与所述数据上传条件之间的关系,包括:
调用认证服务,通过所述认证服务对所述远程认证报告进行验证处理,得到第一验证结果;
若所述第一验证结果指示所述远程认证报告验证失败,则确定所述第一业务数据不满足所述数据上传条件;
若所述第一验证结果指示所述远程认证报告验证通过,则获取所述数据交集应用的源码,根据所述源码,确定所述第一业务数据与所述数据上传条件之间的关系;
则所述方法还包括:
若所述第一验证结果指示所述远程认证报告验证失败,则确定所述可信执行环境a不具有环境安全属性;
生成用于指示所述可信执行环境a不具有所述环境安全属性的第一更新订阅状态,将所述第一更新订阅状态发送至所述区块链节点,以使所述区块链节点为所述主题订阅请求设置所述第一更新订阅状态。
5.根据权利要求4所述的方法,其特征在于,所述根据所述源码,确定所述第一业务数据与所述数据上传条件之间的关系,包括:
对所述源码进行验证处理,得到第二验证结果;
若所述第二验证结果指示所述源码验证通过,则获取所述远程认证报告中针对所述数据交集应用的主题订阅对象信息,对所述主题订阅对象信息进行验证处理,得到第三验证结果;
获取所述远程认证报告中针对所述源码的远程度量值,对所述远程度量值进行验证处理,得到第四验证结果;
根据所述第三验证结果以及所述第四验证结果,确定所述第一业务数据与所述数据上传条件之间的关系;
若所述第二验证结果指示所述源码验证失败,则确定所述第一业务数据不满足所述数据上传条件;
则所述方法还包括:
若所述第二验证结果指示所述源码验证失败,则确定所述源码不具有代码安全属性;
生成用于指示所述源码不具有所述代码安全属性的第二更新订阅状态,将所述第二更新订阅状态发送至所述区块链节点,以使所述区块链节点为所述主题订阅请求设置所述第二更新订阅状态。
6.根据权利要求5所述的方法,其特征在于,所述对所述主题订阅对象信息进行验证处理,得到第三验证结果,包括:
获取针对所述数据交集应用的应用开发对象证书,从所述应用开发对象证书中获取应用开发对象信息,将所述主题订阅对象信息与所述应用开发对象信息进行对比;
若所述主题订阅对象信息与所述应用开发对象信息不同,则生成用于指示所述主题订阅对象信息验证失败的第三验证结果;
若所述主题订阅对象信息与所述应用开发对象信息相同,则生成用于指示所述主题订阅对象信息验证通过的第三验证结果;
则所述方法还包括:
若所述第三验证结果指示所述主题订阅对象信息验证失败,则生成用于指示所述主题订阅对象信息为未授权对象信息的第三更新订阅状态;
将所述第三更新订阅状态发送至所述区块链节点,以使所述区块链节点为所述主题订阅请求设置所述第三更新订阅状态。
7.根据权利要求5所述的方法,其特征在于,所述对所述远程度量值进行验证处理,得到第四验证结果,包括:
在所述第一设备的可信执行环境b中对所述源码进行编译处理,得到可信度量值;
将所述远程度量值与所述可信度量值进行对比,若所述远程度量值与所述可信度量值不同,则生成用于指示所述远程度量值验证失败的第四验证结果;
若所述远程度量值与所述可信度量值相同,则生成用于指示所述远程度量值验证通过的第四验证结果;
则所述方法还包括:
若所述第四验证结果指示所述远程度量值验证失败,则生成用于指示所述源码与运行代码不匹配的第四更新订阅状态;
将所述第四更新订阅状态发送至所述区块链节点,以使所述区块链节点为所述主题订阅请求设置所述第四更新订阅状态。
8.根据权利要求5所述的方法,其特征在于,所述根据所述第三验证结果以及所述第四验证结果,确定所述第一业务数据与所述数据上传条件之间的关系,包括:
若所述第三验证结果指示所述主题订阅对象信息验证通过,且所述第四验证结果指示所述远程度量值验证通过,则确定所述第一业务数据满足所述数据上传条件;
则所述方法还包括:
若所述第一业务数据满足所述数据上传条件,则生成用于指示所述主题订阅请求通过验证的第五更新订阅状态;
将所述第五更新订阅状态发送至所述区块链节点,以使所述区块链节点为所述主题订阅请求设置所述第五更新订阅状态。
9.根据权利要求3所述的方法,其特征在于,所述根据所述区块链节点所转发的所述主题订阅请求,生成远程认证请求,包括:
根据所述区块链节点所转发的所述主题订阅请求,生成认证挑战随机数,以及包括中间私钥h以及中间公钥i的中间密钥对j;
根据所述中间公钥i以及所述认证挑战随机数,生成远程认证请求;所述中间公钥i用于指示所述第二设备根据所述中间公钥i、所述认证挑战随机数以及所述中间密钥对g中的中间私钥k,生成通信密钥;所述通信密钥用于对所述数据密钥进行加密处理,得到加密数据密钥;
则所述方法还包括:
获取所述远程认证报告中的所述中间公钥f,根据所述中间公钥f、所述认证挑战随机数以及所述中间私钥h,生成所述通信密钥;
获取所述第二设备返回的加密数据密钥,通过所述通信密钥,对所述加密数据密钥进行解密处理,得到所述数据密钥。
10.根据权利要求1所述的方法,其特征在于,所述生成所述第一业务数据对应的第一位数组,包括:
获取映射有第一随机数的初始位数组以及随机映射函数,将所述第一业务数据输入至所述随机映射函数;
通过所述随机映射函数,生成所述第一业务数据对应的第二随机数;所述第一随机数包括所述第二随机数;
在所述初始位数组中确定待更新位数组;所述待更新位数组映射有所述第二随机数;
将所述初始位数组中的所述待更新位数组进行更新处理,将更新处理之后的初始位数组确定为第一位数组。
11.一种基于区块链的数据处理方法,其特征在于,所述方法由第二设备执行,所述方法包括:
获取由所述区块链中的区块链节点转发的密文位数组;所述密文位数组是第一设备传输至所述区块链节点的,且所述密文位数组是所述第一设备通过所述第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理所得到的;所述数据交集应用运行于所述第二设备的可信执行环境a中;所述第一位数组是所述第一设备在第一业务数据满足数据上传条件时,针对所述第一业务数据所生成的;
在所述数据交集应用中,通过所述数据密钥对从所述区块链节点中所获取的所述密文位数组进行解密处理,得到所述第一位数组;
在所述数据交集应用中,生成第二业务数据对应的第二位数组,根据所述第二位数组以及所述第一位数组,确定所述第一业务数据以及所述第二业务数据之间的业务交集数据;
对所述业务交集数据进行业务处理。
12.根据权利要求11所述的方法,其特征在于,所述获取由所述区块链节点转发的密文位数组,包括:
根据主题订阅对象信息,生成用于获取所述密文位数组的数据下载请求;
将所述数据下载请求发送至所述区块链节点,以使所述区块链节点根据所述数据下载请求查询所述主题订阅对象信息对应的当前订阅状态;
获取所述区块链节点在确定所述当前订阅状态为第五更新订阅状态时,所返回的密文位数组;所述第五更新订阅状态用于指示所述第一设备对主题订阅请求通过验证;所述主题订阅请求是在所述区块链节点存储针对所述第一业务数据的主题时所发送的。
13.根据权利要求11所述的方法,其特征在于,所述第二业务数据包括第二业务数据Cd,d为正整数,且d小于或等于所述第二业务数据的总数量;所述第二位数组包括所述第二业务数据Cd对应的第二位数组Ed;
所述根据所述第二位数组以及所述第一位数组,确定所述第一业务数据以及所述第二业务数据之间的业务交集数据,包括:
若所述第一位数组包括所述第二位数组Ed,则确定所述第二业务数据Cd为所述第一业务数据以及所述第二业务数据之间的业务交集数据;
则所述对所述业务交集数据进行业务处理,包括:
获取所述第一设备提供的具有应用推荐功能的媒体数据,将所述媒体数据推送至所述第二业务数据Cd。
14.根据权利要求11所述的方法,其特征在于,所述方法还包括:
根据主题订阅对象信息,生成用于订阅主题的主题订阅请求;所述主题是所述第一设备针对所述第一业务数据所生成的;
基于所述主题订阅请求,调用所述区块链节点的订阅主题合约;
通过所述订阅主题合约,将所述主题订阅请求发送至所述区块链节点,以使所述区块链节点在通过所述订阅主题合约验证所述主题具有待订阅属性,且所述主题订阅对象信息属于注册对象信息时,储存所述主题订阅请求,且为所述主题订阅请求设置请求待验证状态;所述请求待验证状态用于指示所述区块链节点将所述主题订阅请求转发至所述第一设备。
15.一种基于区块链的数据处理装置,其特征在于,所述装置运行于第一设备,所述装置包括:
第一生成模块,用于若第一业务数据满足数据上传条件,则生成所述第一业务数据对应的第一位数组;
第一处理模块,用于通过第二设备在数据交集应用中所生成的数据密钥,对所述第一位数组进行加密处理,得到密文位数组;所述数据交集应用运行于所述第二设备的可信执行环境a中;
密文传输模块,用于将所述密文位数组传输至所述区块链中的区块链节点,以使所述区块链节点存储所述密文位数组;存储在所述区块链节点的所述密文位数组用于由所述区块链节点转发至所述第二设备;所述第二设备用于在所述数据交集应用中,通过所述数据密钥对从所述区块链节点中所获取的所述密文位数组进行解密处理,得到所述第一位数组;所述第一位数组用于指示所述第二设备在所述数据交集应用中,生成第二业务数据对应的第二位数组;所述第二位数组以及所述第一位数组用于指示所述第二设备在所述数据交集应用中,确定所述第一业务数据以及所述第二业务数据之间的业务交集数据;所述业务交集数据用于指示所述第二设备进行与所述业务交集数据相关联的业务处理。
16.一种基于区块链的数据处理装置,其特征在于,所述装置运行于第二设备,所述装置包括:
密文获取模块,用于获取由所述区块链中的区块链节点转发的密文位数组;所述密文位数组是第一设备传输至所述区块链节点的,且所述密文位数组是所述第一设备通过所述第二设备在数据交集应用中所生成的数据密钥,对第一位数组进行加密处理所得到的;所述数据交集应用运行于所述第二设备的可信执行环境a中;所述第一位数组是所述第一设备在第一业务数据满足数据上传条件时,针对所述第一业务数据所生成的;
第一处理模块,用于在所述数据交集应用中,通过所述数据密钥对从所述区块链节点中所获取的所述密文位数组进行解密处理,得到所述第一位数组;
第一生成模块,用于在所述数据交集应用中,生成第二业务数据对应的第二位数组,根据所述第二位数组以及所述第一位数组,确定所述第一业务数据以及所述第二业务数据之间的业务交集数据;
第二处理模块,用于对所述业务交集数据进行业务处理。
17.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至14任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-14任一项所述的方法。
19.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,所述计算机程序适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-14任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211259133.1A CN117938406A (zh) | 2022-10-14 | 2022-10-14 | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
PCT/CN2023/111968 WO2024078108A1 (zh) | 2022-10-14 | 2023-08-09 | 一种基于区块链的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
US18/528,133 US20240129108A1 (en) | 2022-10-14 | 2023-12-04 | Data processing methods and apparatuses based on blockchain, electronic device, computer-readable storage medium, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211259133.1A CN117938406A (zh) | 2022-10-14 | 2022-10-14 | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117938406A true CN117938406A (zh) | 2024-04-26 |
Family
ID=90668702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211259133.1A Pending CN117938406A (zh) | 2022-10-14 | 2022-10-14 | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117938406A (zh) |
WO (1) | WO2024078108A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109104413B (zh) * | 2018-07-17 | 2020-07-31 | 中国科学院计算技术研究所 | 用于安全多方计算的私有数据求交集的方法及验证方法 |
US10878108B1 (en) * | 2020-02-03 | 2020-12-29 | Qed-It Systems Ltd. | Delegated private set intersection, and applications thereof |
CN112217639B (zh) * | 2020-09-30 | 2022-12-20 | 招商局金融科技有限公司 | 数据的加密共享方法、装置、电子设备及计算机存储介质 |
CN113395159B (zh) * | 2021-01-08 | 2024-03-12 | 腾讯科技(深圳)有限公司 | 一种基于可信执行环境的数据处理方法以及相关装置 |
CN113343305B (zh) * | 2021-06-29 | 2024-02-13 | 招商局金融科技有限公司 | 隐私数据的交集计算方法、装置、设备及存储介质 |
CN114444124A (zh) * | 2022-01-28 | 2022-05-06 | 杭州复杂美科技有限公司 | 基于布隆过滤器的隐私集合交集方法、设备及存储介质 |
-
2022
- 2022-10-14 CN CN202211259133.1A patent/CN117938406A/zh active Pending
-
2023
- 2023-08-09 WO PCT/CN2023/111968 patent/WO2024078108A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024078108A1 (zh) | 2024-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111970129B (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
US20220318907A1 (en) | Systems and methods for generating secure, encrypted communications across distributed computer networks for authorizing use of cryptography-based digital repositories in order to perform blockchain operations in decentralized applications | |
CN112446785A (zh) | 跨链交易方法、系统、装置、设备和存储介质 | |
CN111355726B (zh) | 一种身份授权登录方法、装置及电子设备和存储介质 | |
CN110096894B (zh) | 一种基于区块链的数据匿名共享系统及方法 | |
US20090193520A1 (en) | System and method for providing reputation reciprocity with anonymous identities | |
CN112311779B (zh) | 应用于区块链系统的数据访问控制方法及装置 | |
CN112311769B (zh) | 安全认证的方法、系统、电子设备及介质 | |
CN112307116A (zh) | 基于区块链的数据访问控制方法、装置及设备 | |
WO2020058577A1 (en) | Media content control | |
KR102367052B1 (ko) | 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드 | |
CN110034922B (zh) | 请求处理方法、处理装置以及请求验证方法、验证装置 | |
CN115412568A (zh) | 分布式数据传输方法、装置及系统 | |
WO2024078108A1 (zh) | 一种基于区块链的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
US20240129108A1 (en) | Data processing methods and apparatuses based on blockchain, electronic device, computer-readable storage medium, and computer program product | |
US20240163118A1 (en) | Blockchain-based data processing method, device, and readable storage medium | |
CN116561820B (zh) | 可信数据处理方法及相关装置 | |
US20230421540A1 (en) | Systems and methods for generating secure, encrypted communications using multi-party computations in order to perform blockchain operations in decentralized applications | |
US20230421396A1 (en) | Systems and methods for performing two-tiered multi-party computation signing procedures to perform blockchain operations | |
US20230421397A1 (en) | Systems and methods for performing blockchain operations using multi-party computation cohort management groupings | |
CN117997520A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
US20230246850A1 (en) | Systems and methods for generating secure, encrypted communications across distributed computer networks for authorizing use of cryptography-based digital repositories in order to perform blockchain operations in decentralized applications | |
CN108234136B (zh) | 一种安全访问方法、终端设备及系统 | |
CN117294753A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN116707813A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
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 |