基于可信计算及隐私保护的医疗数据联合学习系统及方法与流程

文档序号:18601782发布日期:2019-09-03 22:44阅读:218来源:国知局
基于可信计算及隐私保护的医疗数据联合学习系统及方法与流程

本发明涉及医疗大数据的安全共享,可信挖掘以及隐私安全保护。具体是指一种基于可信计算以及隐私保护的医疗大数据联合学习系统及方法。



背景技术:

现有医疗大数据搜索、共享、数据挖掘服务尚处于不成熟阶段,缺乏对数据的深度可信挖掘,权限认证,尚未形成有体系的标准和保护措施。严格的法律,缺失的保护体系和标准,造成大量医院,医疗研究机构等医疗数据拥有者不愿或不敢分享其拥有的数据资源,从而严重影响了互联网大数据潮流下医疗学科的快速进步和发展,譬如,对于疾病的综合诊断和分析,遗传疾病基因的大数据统计分析等等。

中国专利医疗数据发布的差分隐私保护方法,申请号201510690500.7,针对医疗数据直接公布的隐私安全问题,通过差分,加噪音等方法在保证数据可用性前提下保护相对的数据隐私。该方法仍默认数据挖掘者对数据的直接接触(尽管数据经过隐私保护处理),且不涉及数据挖掘者的权限验证,计算分析平台的可信认证,多平台联合学习等等。

中国专利一种高效隐私保护的云医疗数据监护系统及监护方法,申请号201610859330.5,设计了一种针对云端服务器医疗数据保护的加密上传,查询,读取的系统。该发明无法实现对医疗数据在加密情况下的进一步挖掘和分析,且不涉及数据查询者的权限验证,数据平台的可信认证,多平台联合学习等等。

中国专利一种基于医疗大数据的隐私保护数据挖掘系统及方法,申请号201811118948.1,发明了一种基于非交互零知识证明的三级医疗数据存储,查询以及管理系统。确保了本地样本不会泄漏给服务器端,同时避免了虚假样本匹配等等。该系统不涉及对于医疗大数据的进一步可信挖掘,数据挖掘者的权限认证,数据平台的可信认证,多平台联合学习等等。



技术实现要素:

本发明涉及一种基于可信计算及隐私保护的医疗数据联合学习系统及方法,提供了一整套基于医疗大数据安全共享,可信计算,深度挖掘,权限认证,多平台联合学习的服务体系,解决了现阶段对医疗数据隐私保护及数据挖掘零散、单一、不完整的问题。

为了达到上述目的,本发明的一个技术方案是提供一种基于可信计算及隐私保护的医疗数据联合学习方法:

联合学习中心控制层,接受数据贡献者通过所在数据节点的数据贡献者管理层上传的非敏感的元信息进行存储;所述元信息,基于数据贡献者的原始数据而不包含原始数据的敏感信息;

所述联合学习中心控制层,接受数据挖掘者通过数据挖掘者交互层发起的联合学习请求进行处理;在联合学习中心控制层的安全计算区域,对各数据节点通过对原始数据进行本地隔离计算得到的中间结果进行汇总和分析,并将联合学习结果传回数据挖掘者交互层。

可选地,联合学习中心控制层设置有中心节点服务器及安全计算服务器,与各数据节点的数据贡献者管理层分别设置的数据节点服务器进行交互;

所述医疗数据联合学习方法,包含以下过程:

第一步,数据贡献者的所有原始数据,在本地的防火墙之内进行注册、存储;数据贡献者通过第一交互系统访问数据节点服务器,进行数据集合注册,指定数据集合的访问权限和有效时间;所有原始数据存储于本地私密数据库,处于防火墙之内;数据节点服务器将元信息发送到中心节点服务器备案;

第二步,数据挖掘者通过第二交互系统访问中心节点服务器,完成用户注册及验证后,基于自身权限搜索可用的数据集合,创建联合学习实例;

第三步,数据挖掘者向中心节点服务器发起联合学习请求;

第四步,基于数据挖掘者所选择的数据集合,中心节点服务器向当前联合学习请求涉及的所有数据节点发出本地计算请求;

第五步,接受本地计算请求的数据节点,通过各自的数据节点服务器,在防火墙之内基于原始数据进行本地隔离计算,并与安全计算服务器进行中间结果交互;所述中间结果不包含原始数据;

第六步,安全计算服务器对所有数据节点的本地隔离计算得到的中间结果进行汇总更新,生成并输出联合学习结果,返回给中心节点服务器;

第七步,中心节点服务器生成联合学习报告,支持数据挖掘者对联合学习结果的获取使用。

可选地,所述数据贡献者通过所在数据节点的数据贡献者管理层,进行数据注册的过程中进行访问权限的设置;

所述访问权限,对允许使用数据的时间、地点、数据挖掘者、联合学习任务之中的一项或多项进行指定。

可选地,所述数据挖掘者选择公开数据权限的数据,和/或数据贡献者指定给该数据挖掘者的数据进行联合学习;

所述数据挖掘者将自己的联合学习实例设置为私有或公开,允许其他数据挖掘者对公开的联合学习实例进行查询和研究。

可选地,各数据节点的元信息、中间结果,均以加密状态,上传到所述联合学习中心控制层。

可选地,在将元信息上传到中心节点服务器之前,数据节点会对中心节点服务器发起基于英特尔软件防护扩展服务的远程飞地认证;

所述安全计算服务器使用英特尔软件防护扩展服务,对各数据节点上传的中间结果进行汇总和分析。

可选地,所述元信息,包含数据节点服务器的网络协议地址和端口,原始数据的文件名称、描述以及支持的研究方法;所述中间结果不涉及原始数据的敏感信息;所述中间结果包含中间训练模型、统计学参数。

本发明的另一个技术方案是一种基于可信计算及隐私保护的医疗数据联合学习系统,可以适用于上述任意一种基于可信计算及隐私保护的医疗数据联合学习方法。

所述医疗数据联合学习系统,包含:

若干数据节点服务器,设置在各数据节点的数据贡献者管理层;

中心节点服务器和安全计算服务器,设置在联合学习中心控制层,与各数据节点服务器交互;

其中,所述数据节点服务器注册本地数据集合、指定访问权限,上传元信息到中心节点服务器进行备案,并接受中心节点服务器的本地计算请求,对本地存储的原始数据进行本地隔离计算,并将中间结果发送至安全计算服务器进行汇总;

所述中心节点服务器接受数据挖掘者发起的联合学习请求,将数据挖掘者创建的联合学习实例通知安全计算服务器,并向当前联合学习请求涉及的数据节点发送本地计算请求,等待并接收安全计算服务器从相应数据节点收集并汇总的联合学习结果,生成联合学习报告并返回给数据挖掘者。

可选地,所述数据节点服务器,使用spring+vue实现管理架构,并通过c++实现本地隔离计算;

所述中心节点服务器,使用springboot+vue实现控制架构,利用docker技术部署在安装有docker-compose的硬件平台;

所述安全计算服务器,使用c++/rust结合英特尔软件安全扩展服务。

可选地,所述数据贡献者管理层配置的数据节点服务器、本地私密数据库、第一网页端交互系统,位于所在数据节点的本地防火墙之内;

基于第一网页端交互系统,数据贡献者通过浏览器访问数据节点服务器;

所述数据挖掘者交互层配置有第二网页端交互系统,数据挖掘者通过浏览器访问中心节点服务器。

与现有技术相比,本发明所述基于可信计算及隐私保护的医疗数据联合学习系统及方法,其优点在于:

本发明的方案基于联合学习,通过联合学习中心控制层的中心节点服务器、安全计算服务器(可信计算区域),以及数据贡献者管理层的多个数据节点服务器来实施。所有涉及原始医疗数据的存储,计算均在数据节点本地隔离进行,从根源上避免了隐私泄露。本发明实现了对数据集严格且灵活的授权认证,包括并不限于基于任务、用户、时间和地点的授权。中心节点存储数据集非敏感的元信息,利用一系列联合学习算法实现了对医疗数据的深度挖掘。同时,中心节点联合学习核心程序使用英特尔sgx软件防护扩展服务,确保了计算数据和结果在不可信环境下的安全性。

附图说明

图1为本发明整体系统结构图;

图2为数据挖掘者通过浏览器提交的联合学习请求数据格式示例图;

图3为中心节点服务器通知安全计算服务器联合学习实例参数示例图;

图4为中心节点服务器向数据节点发送的本地计算请求数据格式示例图;

图5为安全计算服务器汇总并发送给中心节点服务器的联合学习结果数据格式示例图;

图6为中心节点服务器生成并返给数据挖掘者的联合学习报告示例图;

图7为数据节点服务器存储的数据集合基本信息示例图;

图8为数据节点服务器存储的原始数据示例图;

图9为数据节点服务器注册到中心节点服务器的数据集合元信息示例图。

具体实施方式

以下结合附图对本发明的原理、特征、系统流程进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,基于可信计算及隐私保护的医疗数据联合学习方案,包含三大部分:

第一,数据贡献者管理层;

本地管理层实现了数据贡献者(例如医院,医疗研究机构等医疗大数据拥有者)对于所有原始医疗数据的本地化注册、存储和计算。具体来讲,数据贡献者的所有原始数据完全在本地(防火墙之内)完成注册和存储。同时,所有涉及原始数据的计算也只限制在本地隔离进行。此设计从根源上避免了隐私数据的对外泄露。

本地管理层只会向联合学习中心控制层的中心节点服务器,上传原始数据的元信息,例如本地服务器的网络协议地址(ip地址)和端口,原始数据的文件名称,描述以及支持的研究方法。同时,在本地隔离计算过程中,只有中间结果(例如中间训练模型,统计学参数)会被传递到联合学习中心控制层的安全计算区域进行安全汇总。

中间数据不涉及任何数据的隐私信息。例如,在方差分析(anova)测试中,本地服务器只返回本地数据集中的平均值和数据量,中心节点服务器根据这些值算得整体的平均值和数据量并返回给本地服务器。本地服务器根据这些值,算出本地值和整体平均值差的平方,再返回给中心节点服务器,中心节点服务器获取相关值以后再运算得到f统计值,即可在f分布中获取测试的p-value。

此处强调,计算的中间结果均在加密状态下进行传输,存储和可信计算。即使中心节点服务器被劫持,也不会泄露计算的状态和数据。

在数据注册过程中,本发明设计了严格且灵活的访问权限控制机制。例如基于联合学习任务的授权,基于数据集有效时间的授权,基于指定数据挖掘者的授权,基于地理位置/研究机构的授权,等等。具体来讲,数据贡献者可以指定什么人,在什么时间,在什么地点使用自己提供的数据集进行指定方法的联合学习研究。

在上传元信息到中心节点服务器之前,本地服务器会对中心节点服务器发起基于英特尔sgx可信计算单元的远程飞地认证,来验证中心节点服务器的可信计算单元是否已经在英特尔验证服务器进行过可信注册。从而保证元信息和中间计算结果在传输、存储及计算过程中的隐私安全。

第二,联合学习中心控制层

中心节点服务器负责数据贡献者的数据注册,元信息存储(不涉及任何原始数据),以及对数据挖掘者联合学习请求的处理。安全计算服务器使用英特尔软件防护扩展服务(sgx)在云端对本地计算的中间结果进行汇总和分析,最终将结果传回数据挖掘者交互层,在浏览器端生成联合学习结果报告。

各个医疗数据节点上传的加密过的中间结果会加载到中心节点服务器的核心程序上进行加密汇总得出最终学习结果。本发明的核心程序使用英特尔提供的sgx服务,所有运算均在被信任的计算区域加密进行,极大提升了程序运行的安全性,实现了代码和数据的私密性,完整性和可用性。具体来讲,核心程序只信任自己和英特尔的cpu,有效的防止了底层os(操作系统)被挟持后对自己的攻击。同时在管理上可以不用信任云服务的供应商。

第三,数据挖掘者交互层;

数据挖掘者交互层配置有网页端交互系统,数据挖掘者可以通过浏览器访问本发明联合学习交互系统,完成用户注册,验证后,可以选择公开数据权限的数据或者某个数据贡献者指定给自己的数据进行不同算法的联合学习。例如卡方检验,比例风险回归,方差分析算法以及柯尔莫哥洛夫-斯米尔诺夫检验等等。同时,数据挖掘者也可以选择将自己的联合学习实例设置为公开或者私有。公开的联合学习实例还可以被其他数据挖掘者查询和研究。

本发明使用“联合学习”(federatedlearning)模型实现对医疗数据的安全共享和深度挖掘。如图1所示,联合学习模型利用各个医疗数据贡献者自己的服务器进行本地运算,只将加密过的中间结果(统计信息,中间训练模型等等)上传到中心节点服务器进行安全汇总,所有的训练数据(原始数据)都保留在原来各自的设备上。

即,数据贡献者拥有数据所有权,原始数据均保留在本地,供搜索或分析的对象可以都是加密过的数据。数据挖掘者可以执行加密检索,保证搜索目标的隐私;数据贡献者可以选择出租数据,并根据市场需求调节价格;如果检索结果匹配,数据挖掘者可以选择租赁相应的数据进行联合学习分析,加密过的分析参数和联合学习运算结果只能被数据挖掘者提取和查看。数据贡献者可以选择在任意时间注销已注册数据。一旦注销,加密密钥被销毁,数据挖掘者不能继续使用该数据。

示例地,本发明在数据贡献者处分别配置有本地数据管理交互系统,包含在其本地防火墙之内设置的数据节点服务器,和与之交互的本地私密数据库、网页端交互系统。通过数据节点服务器进一步与联合学习中心控制层的中心节点服务器及安全计算服务器交互。

所述数据节点服务器,使用spring+vue实现管理层(架构优先),c++实现本地隔离计算(速度优先)。在数据贡献者管理层,数据贡献者上传本地数据集合(图7,图8),指定访问权限(如基于时间、地点、人员、任务的限制),注册数据元信息(图9)到中心节点服务器。为实现本地隔离计算,数据节点服务器接受中心节点服务器本地隔离计算请求(图4),进行对应方法的联合学习本地隔离计算,并将中间结果发送至安全计算服务器进行汇总。

以比例风险回归模型为例,本地隔离计算得出df一阶导数矩阵,以及ddf二阶导数海森矩阵,发送给安全计算服务器,安全计算服务器返回未收敛系数矩阵,双方重复此操作直至收敛条件满足。

注意,数据节点服务器和安全计算服务器通信之前会进行基于英特尔飞地认证技术的远程验证。

示例的中心节点服务器,使用springboot+vue架构实现了联合学习中心控制层,利用docker技术可以快速部署在任何安装有docker-compose的硬件平台。中心节点服务器负责接受数据挖掘者的联合学习请求(图2),通知安全计算服务器联合学习实例(图3),向此次联合学习涉及的数据节点集群发送本地隔离计算请求(图4),等待并接收安全计算服务器收集(从数据节点集群)并汇总的联合学习结果(图5),生成联合学习结果报告并返回给数据挖掘者(图6)。

示例的安全计算服务器(可信计算区域),使用c++/rust结合英特尔软件安全扩展服务(sgx),接受中心节点服务器联合学习请求(图3),从数据节点集群汇总本地隔离计算结果(以比例风险回归模型为例,中间结果包括未收敛系数矩阵,df一阶导数矩阵,以及ddf二阶导数海森矩阵),计算最终结果并发送给中心节点服务器(图5)。

以下为本发明具体服务流程举例:

第一步,数据贡献者通过本地的数据节点服务器进行数据集合(图7,图8)注册,指定数据集合的访问权限,有效时间等。所有原始数据存储于本地私密数据库,处于防火墙之内。同时,数据节点服务器发起对中心节点服务器的飞地认证,确认安全的加密计算环境后,将加密的元信息(图9)发送到中心节点服务器备案。

第二步,数据挖掘者通过交互系统完成用户注册,验证后,基于自身权限搜索可用数据集合,创建联合学习实例。

第三步,数据挖掘者向中心节点服务器发起联合学习请求(图2)。

第四步,中心节点服务器向涉及此次联合学习的所有数据节点(基于数据挖掘者选择的数据集合)发出本地计算请求(图4)。

第五步,各个数据节点进行本地隔离计算,与安全计算服务器进行中间结果(不涉及原始数据)交互。

例如,比例风险回归检验模型的联合学习中,(1)本地隔离计算根据原始数据计算出df一阶导数矩阵,以及ddf二阶导数海森矩阵,然后将其发送至安全计算服务器;(2)安全计算服务器算出未收敛系数矩阵,返回给数据节点服务器。重复(1)(2)操作直至满足收敛系数条件。此过程的数据传输只涉及原始数据的导数矩阵以及未收敛参数矩阵,不包含任何原始数据信息。

同时,所有中间结果(倒数矩阵,未收敛参数矩阵等)均在加密状态下进行传输,在可信计算区域进行解密并计算。即使部署安全计算服务器的云服务器被攻击者劫持,也不会泄漏中间结果。

第六步,安全计算服务器汇总更新所有数据节点的本地隔离计算结果,生成并输出最终联合学习结果(图5),返回给中心节点服务器。

第七步,中心节点服务器生成联合学习报告(图6),数据挖掘者查询或打印联合学习结果。

图2~图9以比例风险回归模型的联合学习为例:

图2为数据挖掘者通过浏览器提交的联合学习请求数据格式的示例。数据挖掘者的联合学习请求,例如提供了联合学习方法的数据属性信息:选择的属性参数列表(含属性名称、是否可以分类、属性值等);数据节点信息:数据节点唯一标识符(含数据节点数据集合唯一标识符、数据集合文字名称等),数据节点文字描述;联合学习实例信息:名称、是否公开、起始时间、预计结束时间、备注描述、该联合学习所属用户唯一标识符等。

图3为中心节点服务器通知安全计算服务器联合学习实例参数示例,包含联合学习唯一标识符,各方法相应的联合学习任务属性,数据节点列表(含数据节点的唯一标识符、网络地址及端口、联合学习当前状态等)。

图4为中心节点服务器向数据节点发送的本地计算请求数据格式示例,包含本地数据集合文件名,本地隔离计算属性列表(含各属性相应的属性值、属性名称及是否可以分类的信息),数据集合本地唯一标识符。

图5为安全计算服务器汇总并发送给中心节点服务器的联合学习结果数据格式示例,包含联合学习数据集合属性列表,相关系数,z检验值,p概率值等。

图6为中心节点服务器生成并返给数据挖掘者的联合学习报告示例,包含联合学习摘要(含联合学习名称、创建者、具体描述、公开权限、创建时间、完成时间等);联合学习参数(含属性名称、参与此次联合学习的数据节点等);联合学习结果(含属性名、相关性参数、p概率值、z检验值等)。

图7为数据节点服务器存储的数据集合基本信息示例,包含数据集合(含数据集合本地数据库唯一标识符、数据结合名称、数据集合描述等),数据集合支持方法(如具体的支持方法、公开权限、数据集合文件名称、授权用户、授权机构、授权开始/结束时间等),数据集合摘要(含属性列表、数据量、属性分类数量、分类值等)。

图8为数据节点服务器存储的原始数据示例,包含属性列表、是否可分类、属性值等。图9为数据节点服务器注册到中心节点服务器的数据集合元信息示例,包含数据集合元信息列表:含各数据集合的元信息(如是否可以分类、属性列表、数据集合文件名称、本地数据库唯一标识符、支持的联合学习方法、数据集合名称、可以分类的类别数、数据集合描述、属性所属的分类、有效开始日期等);数据节点名称;数据节点描述;数据节点通行令牌;数据节点网络地址及端口;数据节点用户名称等。

应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

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