一种数据共享方法、装置、设备及存储介质与流程

文档序号:28389183发布日期:2022-01-08 00:10阅读:72来源:国知局
一种数据共享方法、装置、设备及存储介质与流程

1.本技术涉及分布式账本技术领域,特别是涉及一种数据共享方法、装置、设备及存储介质。


背景技术:

2.数字经济的时代,数据作为新型生产要素的价值日益凸显。由于无法对数据的使用方式进行监管,数据使用者可以任意地将数据以极低廉的成本进行复制或用在数据不被允许使用的应用场景,所以尽管数据被称作数字经济时代的“石油”,但数据作为一种新型资产,表现出了与传统资产截然不同的属性,这为数据的责权利界定和管理带来了巨大的挑战。
3.在大数据应用的物联网时代,人们倾向于从不同的平台获取多种数据,对多种数据进行计算,获得需求的信息。例如,自动驾驶技术需要获得激光雷达等传感器采集的周边环境数据,也需要高精度地图数据,但持有激光雷达数据的平台、持有高精度地图数据的平台以及提供融合计算的平台不同,任意平台将数据告知其他平台有数据机密泄漏的隐患。
4.因此,如何在保证数据机密性的情况下,对数据的使用过程进行监管,成为相关领域亟待解决的问题。


技术实现要素:

5.本技术实施例提供一种数据共享方法、装置、设备及存储介质,能够在保证数据机密性的情况下,实现对数据使用过程的监管。
6.本技术实施例第一方面提供一种数据共享方法,应用于分布式账本系统中的任意节点,所述方法包括:
7.获得用于约束数据使用过程的数据使用合约,并将所述数据使用合约发送给数据提供节点,以使所述数据提供节点审核所述数据使用过程的合法性;
8.接收所述数据提供节点返回的经过审核的数据使用合约和加密数据;其中,所述加密数据是所述数据提供节点对所述经过审核的数据使用合约需求的目标数据进行加密得到的;
9.将所述经过审核的数据使用合约和所述加密数据运行在可信执行环境,生成数据计算结果;其中,所述可信执行环境位于计算节点,所述计算节点是所述分布式账本系统中支持可信执行环境生成技术的节点。
10.可选地,获得用于约束数据使用过程的数据使用合约,包括:
11.根据数据使用逻辑和数据应用场景,编写至少一个分析方法;
12.对所述至少一个分析方法中涉及机密计算的分析方法进行注解,得到携带注解的至少一个分析方法;
13.根据所述携带注解的至少一个分析方法,生成所述数据使用合约;
14.将所述经过审核的数据使用合约和所述加密数据运行在可信执行环境,生成数据
计算结果,包括:
15.根据所述经过审核的数据使用合约携带的注解,对所述经过审核的数据使用合约进行拆分,得到用于约束所述加密数据使用过程的机密合约;
16.将所述机密合约和所述加密数据运行在可信执行环境,获得计算结果。
17.可选地,接收所述数据提供节点返回的经过审核的数据使用合约和加密数据,包括:
18.接收所述经过审核的数据使用合约和数据获取合约;并利用所述可信执行环境中的合约引擎运行所述数据获取合约,通过运行的数据获取合约调用数据管理合约中的加密数据;其中,所述加密数据是所述数据提供节点对所述目标数据的调用方法进行加密后得到的。
19.可选地,所述方法还包括:
20.将所述经过审核的数据使用合约和所述加密数据发送给所述计算节点,以使所述计算节点将所述加密数据加载到所述经过审核的数据使用合约,完成所述经过审核的数据使用合约的初始化,得到数据应用合约;
21.将所述经过审核的数据使用合约和所述加密数据运行在可信执行环境,获得数据计算结果,包括:
22.将所述数据应用合约和所述加密数据运行在目标可信执行环境中,获得数据计算结果;其中所述目标可信执行环境是所述数据应用合约在所述计算节点启动的,并且所述目标可信执行环境独立运行在所述计算节点的单个进程中。
23.可选地,所述加密数据携带所述数据提供节点的节点标识;将所述数据使用合约和所述加密数据运行在目标可信执行环境中,生成数据计算结果,包括:
24.将所述数据应用合约、所述加密数据以及所述节点标识运行在所述目标可信执行环境,以使所述目标可信执行环境从数据提供节点的密钥地址获取解密密钥,并利用所述解密密钥对所述加密数据进行解密,得到明文数据;所述数据提供节点的密钥地址是所述数据使用合约根据所述节点标识从所述分布式账本系统的密钥注册表获得的;
25.利用所述目标可信执行环境对所述明文数据和所述数据应用合约进行计算,得到所述数据计算结果。
26.可选地,所述方法还包括:
27.响应所述可信执行环境对解密密钥的请求,将所述解密密钥提供给所述可信执行环境;
28.接收所述可信执行环境返回的密文文件;其中,所述密文文件是所述可信执行环境利用加密密钥对所述数据计算结果加密得到的;
29.利用本地的所述加密密钥对所述密文文件进行解密,得到明文文件。
30.本技术实施例第二方面提供一种数据共享装置,位于分布式账本系统中的任意节点,所述装置包括:
31.获得模块,用于获得用于约束数据使用过程的数据使用合约,并将所述数据使用合约发送给数据提供节点,以使所述数据提供节点审核所述数据使用过程的合法性;
32.接收模块,用于接收所述数据提供节点返回的经过审核的数据使用合约和加密数据;其中,所述加密数据是所述数据提供节点对所述经过审核的数据使用合约需求的目标
数据进行加密得到的;
33.运行模块,用于将所述经过审核的数据使用合约和所述加密数据运行在可信执行环境,生成数据计算结果;其中,所述可信执行环境位于计算节点,所述计算节点是所述分布式账本系统中支持可信执行环境技术的节点。
34.可选地,所述获得模块包括:
35.编写子模块,用于根据数据使用逻辑和数据应用场景,编写至少一个分析方法;
36.注解子模块,用于对所述至少一个分析方法中涉及机密计算的分析方法进行注解,得到携带注解的至少一个分析方法;
37.生成子模块,用于根据所述携带注解的至少一个分析方法,生成所述数据使用合约;
38.所述运行模块包括:
39.拆分子模块,用于根据所述经过审核的数据使用合约携带的注解,对所述经过审核的数据使用合约进行拆分,得到用于约束所述加密数据使用过程的机密合约;
40.第一运行子模块,用于将所述机密合约和所述加密数据运行在可信执行环境,获得计算结果。
41.可选地,所述接收模块包括:
42.接收子模块,用于接收所述经过审核的数据使用合约和数据获取合约,并利用所述可信执行环境中的合约引擎运行所述数据获取合约,通过运行的数据获取合约调用数据管理合约中的加密数据;其中,所述加密数据是所述数据提供节点对所述目标数据的调用方法进行加密后得到的。
43.可选地,所述装置还包括:
44.发送子模块,用于将所述经过审核的数据使用合约和所述加密数据发送给所述计算节点,以使所述计算节点将所述加密数据加载到所述经过审核的数据使用合约,完成所述经过审核的数据使用合约的初始化,得到数据应用合约;
45.所述运行模块包括:
46.第二运行子模块,用于将所述数据应用合约和所述加密数据运行在目标可信执行环境中,生成数据计算结果;其中所述目标可信执行环境是所述数据应用合约在所述计算节点启动的,并且所述目标可信执行环境独立运行在所述计算节点的单个进程中。
47.可选地,所述加密数据携带所述数据提供节点的节点标识;所述第二运行子模块包括:
48.运行子单元,用于将所述数据应用合约、所述加密数据以及所述节点标识运行在所述目标可信执行环境,以使所述目标可信执行环境从数据提供节点的密钥地址获取解密密钥,并利用所述解密密钥对所述加密数据进行解密,得到明文数据;所述数据提供节点的密钥地址是所述数据使用合约根据所述节点标识从所述分布式账本系统的密钥注册表获得的;
49.计算子单元,用于利用所述目标可信执行环境对所述明文数据和所述数据应用合约进行计算,得到所述数据计算结果。
50.可选地,所述装置还包括:
51.响应模块,用于响应所述可信执行环境对加密密钥的请求,将所述加密密钥提供
给所述可信执行环境;
52.返回模块,用于接收所述可信执行环境返回的密文文件;其中,所述密文文件是所述可信执行环境利用加密密钥对所述数据计算结果加密得到的;
53.解密模块,用于利用本地的所述加密密钥对所述密文文件进行解密,得到明文文件。
54.本技术实施例第三方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本技术第一方面所述的方法中的步骤。
55.本技术实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本技术第一方面所述的方法的步骤。
56.本技术实施例在分布式账本系统中的节点,编写能够约束数据使用过程的数据使用合约,利用分布式账本系统本身具有的可查证的性质,将数据使用合约发送到分布式账本系统中可以提供数据使用合约所需数据的数据提供节点,以使数据提供节点通过审核数据使用合约,审核数据使用场景、应用逻辑是否合法,实现了数据提供者对未使用在其本地的数据使用的监管。同时,数据提供节点在审核数据使用合约后,将数据使用合约所需数据进行加密,得到加密数据,最终将加密数据和数据使用合约共同运行在可信执行环境中,得到计算结果,既保证了机密数据的具体计算过程在可信执行环境发生,不会被外接获取,也不会记录到账本中,又保证了从数据提供节点获取数据,并将数据应用在数据使用合约的流程被记录,在保证数据机密性的情况下,对数据的使用过程进行监管。
附图说明
57.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
58.图1是本技术实施例提出的数据共享方法的步骤流程图;
59.图2是本技术一种实施例中数据共享方法的信息交互流程图;
60.图3是本技术实施例提出的种数据共享装置的功能模块图。
具体实施方式
61.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
62.大数据的应用面临严峻的挑战,现有的数据使用模式受到了广泛质疑和批评。例如,人工智能公司从外卖平台和第三方支付平台获取大量人脸数据,作为训练样本,完成相关模型训练。人脸数据属于用户的隐私数据,人工智能公司直接持有人脸数据,严重损害了数据的机密性。同时,外卖平台或第三方支付平台无法得知人工智能公司是否将持有的人脸数据用于其他应用,或进行复制,存在机密数据滥用的隐患。
63.一般情况下,如果对数据使用过程进行监管,涉及多方参与,必将损失数据的机密性,如果保证数据的机密性,又会导致持有不同数据的多个平台成为数据孤岛,阻碍大数据应用的发展。
64.鉴于上述问题,本技术利用智能合约约束数据的使用逻辑,使得数据的使用过程能被监管,同时将智能合约中对机密数据使用过程进行约束的部分拆分到可信执行环境中,在可信执行环境中执行机密数据使用过程进行约束的部分,保证了机密数据在使用细节不会被泄漏。
65.本技术实施例提出的数据共享方法应用在分布式账本系统中的任意节点。分布式账本系统是多个节点根据点对点通信协议(p2p,peer-to-peer),组成的分布式网络,在分布式账本系统中不存在中心服务器,每个节点的性质、功能、传输方式等特点相同。
66.节点可以是设置有区块链系统的计算机、移动终端或者其他智能设备。
67.用户拟从不同的数据持有方获取数据,并使用数据进行本地项目的运算时,可以将分布式账本系统中的任意节点作为数据使用节点,从分布式账本系统中的持有相关数据的节点获取数据,将获取的数据和数据使用合约共同加载到可信执行环境中,完成项目的运算。
68.图1是本技术实施例提出的数据共享方法的步骤流程图,如图1所示,数据共享步骤如下:
69.步骤s11:获得用于约束数据使用过程的数据使用合约,并将所述数据使用合约发送给数据提供节点,以使所述数据提供节点审核所述数据使用过程的合法性。
70.数据使用过程包括:数据应用逻辑、数据使用场景、数据使用条件等。在本技术实施例中,数据使用过程还包括机密数据涉及的数据应用逻辑。
71.数据使用合约是根据数据使用逻辑、应用场景等编写的智能合约,在满足触发条件的情况下,数据使用合约自动运行,对用户事先设置的数据应用进行计算。
72.数据使用方通过数据使用合约定义数据的使用细节,并且数据使用方式定义的数据使用细节需要得到涉及到的数据提供方的同意,以保证数据提供方提供的数据是安全使用的。
73.数据提供节点是数据使用节点根据其所需数据,在分布式账本系统查找到的节点。具体可以采用基于广播生成树的分布式快速查询等方式。
74.在本技术一种示例中,用户根据比较两个商家的销售数据的运算逻辑、数据使用逻辑、计算方法、数据应用场景等,编写了用于比较平台a和平台b销售额的数据使用合约,数据使用合约定义了平台a和平台b销售数据具体的计算公式,用户通过分布式账本系统中的任意节点将数据使用合约发送给持有平台a销售数据的节点a,和持有平台b销售数据的节点b,节点a对数据使用合约进行审核,确定数据使用合约确实只将本地的销售数据用于比较销售额的项目中,节点b以同样的方式审核数据使用合约。
75.步骤s12:接收所述数据提供节点返回的经过审核的数据使用合约和加密数据;其中,所述加密数据是所述数据提供节点对所述经过审核的数据使用合约需求的目标数据进行加密得到的。
76.数据提供节点审核数据使用合约定义的数据应用逻辑、数据应用场景不涉及数据的滥用后,将数据使用合约所需的数据进行加密,得到加密数据,并将加密数据和经过审核
的数据使用合约返回给数据使用节点,以保证数据在传输过程中不会被恶意盗取。
77.数据提供节点还会对通过审核的合约形成度量,以保证数据使用合约能在可信执行环境中保证其程序的完整性。
78.步骤s13:将所述经过审核的数据使用合约和所述加密数据运行在可信执行环境,获得数据计算结果;其中,所述可信执行环境位于计算节点,所述计算节点是所述分布式账本系统中支持可信执行环境技术的节点。
79.数据使用节点接收到数据提供节点返回的加密数据和经过审核的数据使用合约后,将加密数据和经过审核的数据使用合约运行在可信执行环境,可信执行环境通过硬件级别的隔离,使得包括操作系统在内的其他软件无法获取运行在其中的数据,同时可以执行环境对加密数据的运算过程不会记录在分布式账本系统的区块链中,保证了机密数据使用的安全性。
80.计算节点可以是除数据使用节点和数据提供节点以外的其他节点,也可以是数据使用节点本身。在计算节点是其他节点时,数据使用节点将接收的加密数据和经过审核的数据使用合约发送到计算节点,计算节点将加密数据和经过审核的数据使用合约运行在其本地的可信执行环境。
81.支持可信执行环境生成技术的节点是指支持(sgx,software guard extensions)技术的节点。本技术实施例利用库操作系统graphene将sgx运用于在计算节点上,为可信执行环境的生成提供基础。
82.在本技术比较平台a和平台b的销售额的示例中,用户可以选择分布式账本系统中的节点c作为数据使用节点,根据比较销售额需求的数据使用过程,编写生成智能合约(数据使用合约),从持有平台a销售数据的节点a获取加密的销售数据1,从持有平台b销售数据的节点b获取加密的销售数据2,将智能合约、销售数据1以及销售数据2运行在可信执行环境中,由于节点c从平台a和平台b获取加密的销售数据会被打包成区块,记录在账本中,但对销售数据的还原和计算的具体细节在可信执行环境中发生,外接无法获知可信执行环境的计算细节,所以,既保证了节点c从平台a和平台b获取销售数据,并将其用于比较销售额的过程进行监管,又保证了从平台a和平台b获取的销售数据的机密性被保护。
83.本技术实施例在分布式账本系统中的节点,编写能够约束数据使用过程的数据使用合约,利用分布式账本系统本身具有的可查证的性质,将数据使用合约发送到分布式账本系统中可以提供数据使用合约所需数据的数据提供节点,以使数据提供节点通过审核数据使用合约,审核数据使用场景、应用逻辑是否合法,实现了数据提供者对未使用在其本地的数据使用的监管。同时,数据提供节点在审核数据使用合约后,将数据使用合约所需数据进行加密,得到加密数据,最终将加密数据和数据使用合约共同运行在可信执行环境中,得到计算结果,既保证了机密数据的具体计算过程在可信执行环境发生,不会被外接获取,也不会记录到账本中,又保证了从数据提供节点获取数据,并将数据应用在数据使用合约的流程被记录,在保证数据机密性的情况下,对数据的使用过程进行监管。
84.在后续需要查证数据时,可以对加密数据和可行环境获得的结果进行解密,以供查证。
85.本技术另一种实施例提出将数据使用合约运行在可信执行环境的具体实现方法,将完整的数据使用合约运行在可信执行环境存在问题:1、扩大可信计算基。数据使用合约
包括机密计算部分和其他部分,在其他部分存在漏洞的情况下,将其他部分加载到可信执行环境,存在被攻击者利用的风险。2、完整数据使用合约占用内存大,影响可信执行环境性能。因此,本技术实施例通过智能合约引擎将数据使用合约进行拆分,得到机密计算部分,将机密计算部分加载到可信执行环境,解决了上述记载的问题。
86.具体步骤如下:
87.步骤s21:根据数据使用逻辑和数据应用场景,编写至少一个分析方法。示例地,比较平台a和平台b的销售额,编写四个分析方法:第一个分析方法、涉及根据比较的范围预先设置平台a销售额是城市1和城市2销售额的总和;第二个分析方法、根据计算平台a原始销售数据计算平台a销售额;第三个分析方法、根据计算平台b原始销售数据计算平台b销售额;第四个分析方法、比较平台a和平台b的销售额。
88.步骤s22:对所述至少一个分析方法中涉及机密计算的分析方法进行注解,得到携带注解的至少一个分析方法。
89.步骤s23:根据所述携带注解的至少一个分析方法,生成所述数据使用合约。
90.步骤s24:根据所述经过审核的数据使用合约携带的注解,对所述经过审核的数据使用合约进行拆分,得到用于约束所述加密数据使用过程的机密合约。
91.机密合约包括具有机密数据的分析方法。加密数据是数据提供节点对机密数据进行加密得到的。
92.在本技术一种示例中,特定计算任务包括四个分析方法,其中,第二个分析方法至第四个分析方法涉及机密数据的使用,需要数据使用节点对第二个分析方法至第四个分析方法标注注解:@confidential,再根据第一个分析方法至第四个分析方法,得到数据使用合约。计算节点的合约引擎运行携带注解的数据使用合约,将携带有注解@confidential的第二个分析方法至第四个分析方法交由可信执行环境中的执行引擎进行执行,完成对数据使用合约的拆分。计算节点的合约引擎交由执行引擎的多个分析方法,即携带注解的第二个分析方法至第四个分析方法是机密合约。计算节点的合约引擎是分布式账本系统中的所有节点预先设置好的智能合约引擎。
93.步骤s25:将所述机密合约和所述加密数据运行在可信执行环境,获得计算结果。
94.本技术实施例对数据使用合约中涉及机密数据的分析方法进行注解,再利用智能合约引擎执行携带注解的数据使用合约,对标注有注解的分析方法进行拦截,得到机密合约,将机密合约运行在可信执行环境,不需要重新对数据使用合约进行重新开发,简单快捷地实现了数据使用合约的拆分,并将拆分的部分运行在可信执行环境的目的。
95.本技术另一种实施例提出提供加密数据的具体方法。本技术通过智能合约实现加密数据的提供。
96.接收所述经过审核的数据使用合约和加密后的数据获取合约,并利用所述可信执行环境中的合约引擎运行所述数据获取合约,通过运行的数据获取合约调用数据管理合约中的加密数据;其中,所述加密数据是所述数据提供节点对所述目标数据的调用方法进行加密后得到的。
97.可信执行环境启动后,可以将适用可信执行环境的合约引擎加载到可信执行环境中,以使可信执行环境可以通过该合约引擎运行数据获取合约,通过数据获取合约调用数据提供节点的数据管理合约,从数据管理合约的分析方法读取机密数据、数据应用合约、解
密密钥和加密密钥等数据,将读取得到的机密数据进行加密,得到加密数据。
98.数据提供节点根据本地存储的数据,编写生成用于提供数据获取方法的数据管理合约。数据管理合约定义可以访问所有数据的读写接口,并定义多个数据获取方法,具有权限的其他节点可以通过数据获取方法调用读写接口。本技术实施例的数据提供节点对涉及机密数据的数据获取方法进行加密,得到明文的机密数据,再对机密数据加密得到加密数据。
99.目标数据的调用方法是指涉及机密数据的数据获取方法。
100.数据管理合约还包括元数据,元数据用于对加密数据进行解密,元数据包括:数据提供节点的节点标识、对数据获取方法进行加密的算法等。可信执行环境根据元数据,获取数据提供节点对数据获取方法进行加密的密钥,对数据管理方法进行解密,以获取数据。
101.数据使用节点能够对数据管理合约其中的数据获取方法进行调用,从而获取所需数据。
102.本技术实施例以提供数据管理合约中加密后的公开接口的方式,提供加密数据,避免了明文数据直接在节点间传输,在获取数据时,将数据获取合约运行在可信执行环境,执行数据获取合约对数据管理合约生成的加密数据进行调用,以通过合约引擎就能实现加密数据的获取。
103.在将机密数据发送到可信执行环境前,可以先将能够调用机密数据的数据获取合约中的调用方法加载到数据使用合约,以完成数据使用合约的初始化,在可信执行环境启动后,运行数据使用合约,调用加载到数据使用合约的调用方法,得到机密数据。
104.本技术另一种实施例提出了准备和启动可信执行环境的具体方法,具体方法是:将所述经过审核的数据使用合约和所述加密数据发送给所述计算节点,以使所述计算节点将所述加密数据加载到所述经过审核的数据使用合约,完成所述经过审核的数据使用合约的初始化,得到数据应用合约。将所述数据应用合约和所述加密数据运行在目标可信执行环境中,获得数据计算结果;其中所述目标可信执行环境是所述数据应用合约在所述计算节点启动的,并且所述目标可信执行环境独立运行在所述计算节点的单个进程中。
105.本技术实施例通过数据应用合约在计算节点的单个进程启动可信执行环境,具体利用计算节点的智能合约引擎运行数据使用合约,将加密数据初始化到数据使用合约,得到数据应用合约。数据应用合约是加载有加密数据的数据使用合约;使得计算节点可以同时启用多个可行执行环境,同时完成多个数据使用合约的计算。
106.计算节点在启动可信执行环境之前,预先设置可信执行环境的运行环境,具体设置的内容包括:将加密数据加载到数据使用合约、生成可信执行环境的配置文件、对数据使用合约和数据管理合约中的代码进行度量,并将度量值以报告记载到账本中。
107.配置文件包括:命令行参数、库操作系统的路径、环境变量、预加载的库、可信执行环境中enclave可使用的最大线程数以及密钥地址。
108.所述加密数据携带所述数据提供节点的节点标识;将所述数据使用合约和所述加密数据运行在目标可信执行环境中,生成数据计算结果,包括:将所述数据应用合约、所述加密数据以及所述节点标识运行在所述目标可信执行环境,以使所述目标可信执行环境从数据提供节点的密钥地址获取解密密钥,并利用所述解密密钥对所述加密数据进行解密,得到明文数据;所述数据提供节点的密钥地址是所述数据使用合约根据所述节点标识从所
述分布式账本系统的密钥注册表获得的;利用所述目标可信执行环境对所述明文数据和所述数据应用合约进行计算,得到所述数据计算结果。解密密钥是数据提供节点的密钥,用于在可信执行环境中对加密数据进行解密。
109.数据提供节点将节点标识记录在数据管理合约的全局变量中,计算节点中的合约引擎运行数据管理合约,提取出节点标识,从密钥注册表匹配得到数据提供节点的密钥地址,将密钥地址加载到可信执行环境的配置文件中。数据使用合约基于配置文件记载的数据,在计算节点的一个新的进程里启动可信执行环境,并将数据使用合约和所述加密数据加载到可信执行环境中,可信执行环境生成自证报告,并从配置文件中获得密钥地址,将自证报告发送给数据提供节点,以使数据提供节点在审核可信执行环境的安全性后,返回解密密钥。可信执行环境运行解密密钥、数据使用合约、加密数据,利用解密密钥对加密数据进行解密,得到明文数据,按照数据使用合约中定义的数据应用逻辑,对明文数据进行计算,得到数据计算结果。
110.数据计算结果是指使用数据进行项目开发,所获得的产品结果或答案。示例地,在项目是比较平台a和平台b的销售额的情况下,那么数据计算结果是平台a的销售额高于平台b的销售额;在项目是开发地图的情况下,数据计算结果就是最终获得的地图。本技术实施例中可信执行环境最终输出的是最终的产品或答案,所有涉及机密数据运行的步骤都是在可信执行环境中完成的。
111.本技术另一种实施例提出可信执行环境对计算结果进行加密的方法,数据使用节点响应所述可信执行环境对加密密钥的请求,将所述加密密钥提供给所述可信执行环境;加密密钥是数据使用节点的密钥,用于在可信执行环境中对计算结果进行加密。在数据使用节点将数据使用合约发送给计算节点时,可以将其节点标识发送给计算节点,计算节点同样根据节点标识,从密钥注册表获取加密密钥的密钥地址,及数据使用节点的密钥地址,并将数据使用节点的密钥地址和数据提供节点的密钥地址共同写入可信执行环境的配置文件。可信执行环境启动后同样将自证报告发送给数据使用节点的密钥地址,获得数据使用节点对自证报告审核后返回的加密密钥。
112.向可信执行环境提供加密密钥,以使可信执行环境在得到明文的数据计算结果后,能对明文的数据计算结果进行加密,进而可信执行环境能以密文文件的形式向数据使用节点返回数据计算结果,防止数据计算结果在返回数据使用节点的过程中被窃取。
113.接收所述可信执行环境返回的密文文件;其中,所述密文文件是所述可信执行环境利用加密密钥对所述数据计算结果加密得到的;
114.利用本地的所述加密密钥对所述密文文件进行解密,得到明文文件。
115.本技术实施例从密钥注册表获取数据使用节点的加密密钥,在可信执行环境中,使用数据使用节点的加密密钥对加密数据进行机密计算,并将计算结果进行加密返回给数据使用节点,使得数据使用节点直接获取的是计算结果,并且计算结果是以密文的方式在分布式账本系统中的各节点间传输,外界无法非法获取到计算结果,只有数据使用节点使用本地的加密密钥才能将计算结果密文文件解密,得到计算结果的明文文件。
116.图2是本技术一种实施例中数据共享方法的信息交互流程图,如图2所示,数据使用节点是分布式账本系统中的任意节点,数据提供节点是提供数据使用节点进行项目运算所需数据的节点。
117.第一步:数据提供节点和数据使用节点将各自的密钥地址在密钥注册表进行注册,以使后续可信执行环境从密钥注册表获取密钥地址,避免了密钥直接在节点间的传输。
118.第二步:数据使用节点根据数据应用逻辑和数据使用场景,编写生成数据使用合约,并将数据使用合约发送给数据提供节点进行审核。数据提供节点采用人工或自动的方式对数据使用合约审核,并对通过审核的数据使用合约形成度量,将经过审核的数据使用合约返回给数据使用节点。同时,数据提供节点采用本地的解密密钥对数据使用节点请求的数据进行对称加密,得到加密数据,并将加密数据返回给数据使用节点。
119.第三步:数据提供节点将经过审核的数据使用合约和加密数据发送到计算节点,以利用计算节点的合约引擎运行数据使用合约非机密部分,以将加密数据初始化到数据使用合约,使数据使用合约的对应位置填写了加密数据。
120.第四步:利用计算节点的合约引擎运行数据使用合约非机密部分,获取数据提供节点和数据使用节点的节点标识,以节点标识,从密钥注册表匹配到数据提供节点的密钥地址,和数据使用节点的密钥地址,并将数据提供节点的密钥地址和数据使用节点的密钥地址添加到可信执行环境的配置文件中。
121.第五步:利用计算节点的合约引擎运行数据使用合约,在计算节点的未启用的进程中选择一个进程启动可信执行环境,同时根据数据使用合约的注解,在利用计算节点的合约引擎运行数据使用合约的过程中,实现对数据使用合约的拆分,得到机密合约,将机密合约、合约引擎及其依赖的第三方库全部加载至可信执行环境中,得到可在可信执行环境运行机密合约的执行引擎。
122.第六步:可信执行环境启动后,生成自证报告,根据配置文件记载的密钥地址,将自证报告发送给数据提供节点的密钥服务器,用于请求解密密钥;将自证报告发送给数据使用节点的密钥服务器,用于请求加密密钥。数据提供节点收到自证报告后,进行相应的验证步骤,并在通过验证后将解密密钥返回给可信执行环境;数据使用节点收到自证报告后,进行相应的验证步骤,并在通过验证后将加密密钥返回给可信执行环境。
123.第七步:计算节点的可信执行环境收到解密密钥和加密密钥后,可信执行环境中利用解密密钥对加密数据进行解密,得到明文数据,再通过可信执行环境中的执行引擎node.js执行机密合约和明文数据,计算得到明文文件,利用加密密钥对明文文件进行加密,得到密文文件。
124.第八步、可信执行环境将密文文件返回给数据使用节点。可信执行环境在完成全部计算后会销毁包括密钥在内的全部数据,将结果以密文文件的方式进行保存。数据使用合约的非机密部分通过读取文件内容,返回结果。结果最终返回至数据使用方。
125.第九步、数据使用节点利用本地的加密密钥,对可信执行环境返回的密文文件进行解密,得到明文文件的计算结果。
126.基于同一发明构思,本技术实施例提供一种数据共享装置。图3是本技术实施例提出的种数据共享装置的功能模块图,如图3所示,该装置包括:
127.获得模块31,用于获得用于约束数据使用过程的数据使用合约,并将所述数据使用合约发送给数据提供节点,以使所述数据提供节点审核所述数据使用过程的合法性;
128.接收模块32,用于接收所述数据提供节点返回的经过审核的数据使用合约和加密数据;其中,所述加密数据是所述数据提供节点对所述经过审核的数据使用合约需求的目
标数据进行加密得到的;
129.运行模块33,用于将所述经过审核的数据使用合约和所述加密数据运行在可信执行环境,生成数据计算结果;其中,所述可信执行环境位于计算节点,所述计算节点是所述分布式账本系统中支持可信执行环境生成技术的节点。
130.可选地,所述获得模块包括:
131.编写子模块,用于根据数据使用逻辑和数据应用场景,编写至少一个分析方法;
132.注解子模块,用于对所述至少一个分析方法中涉及机密计算的分析方法进行注解,得到携带注解的至少一个分析方法;
133.生成子模块,用于根据所述携带注解的至少一个分析方法,生成所述数据使用合约;
134.所述运行模块包括:
135.拆分子模块,用于根据所述经过审核的数据使用合约携带的注解,对所述经过审核的数据使用合约进行拆分,得到用于约束所述加密数据使用过程的机密合约;
136.第一运行子模块,用于将所述机密合约和所述加密数据运行在可信执行环境,获得计算结果。
137.可选地,所述接收模块包括:
138.接收子模块,用于接收所述经过审核的数据使用合约和数据获取合约,并利用所述可信执行环境中的合约引擎运行所述数据获取合约,通过运行的数据获取合约调用数据管理合约中的加密数据;其中,所述加密数据是所述数据提供节点对所述目标数据的调用方法进行加密后得到的。
139.可选地,所述装置还包括:
140.发送子模块,用于将所述经过审核的数据使用合约和所述加密数据发送给所述计算节点,以使所述计算节点将所述加密数据加载到所述经过审核的数据使用合约,完成所述经过审核的数据使用合约的初始化,得到数据应用合约;
141.所述运行模块包括:
142.第二运行子模块,用于将所述数据应用合约和所述加密数据运行在目标可信执行环境中,获得数据计算结果;其中所述目标可信执行环境是所述数据应用合约在所述计算节点启动的,并且所述目标可信执行环境独立运行在所述计算节点的单个进程中。
143.可选地,所述加密数据携带所述数据提供节点的节点标识;所述第二运行子模块包括:
144.运行子单元,用于将所述数据应用合约、所述加密数据以及所述节点标识运行在所述目标可信执行环境,以使所述目标可信执行环境从数据提供节点的密钥地址获取解密密钥,并利用所述解密密钥对所述加密数据进行解密,得到明文数据;所述数据提供节点的密钥地址是所述数据使用合约根据所述节点标识从所述分布式账本系统的密钥注册表获得的;
145.计算子单元,用于利用所述目标可信执行环境对所述明文数据和所述数据应用合约进行计算,得到所述数据计算结果。
146.可选地,所述装置还包括:
147.响应模块,用于响应所述可信执行环境对加密密钥的请求,将所述加密密钥提供
给所述可信执行环境;
148.返回模块,用于接收所述可信执行环境返回的密文文件;其中,所述密文文件是所述可信执行环境利用加密密钥对所述数据计算结果加密得到的;
149.解密模块,用于利用本地的所述加密密钥对所述密文文件进行解密,得到明文文件。
150.基于同一发明构思,本技术另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术上述任一实施例所述的数据共享方法中的步骤。
151.基于同一发明构思,本技术另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本技术上述任一实施例所述的数据共享方法中的步骤。
152.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
153.本说明书中的各个实施例均采用递进或说明的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
154.本领域内的技术人员应明白,本技术实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本技术实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
155.本技术实施例是参照根据本技术实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
156.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
157.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
158.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
159.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将
一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
160.以上对本技术所提供的一种数据共享方法、装置、设备及存储介质,进行了详细介绍,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1