掌桥专利:专业的专利平台
掌桥专利
首页

一种面向跨域数据的去中心化分级访问控制方法

文献发布时间:2023-06-19 19:28:50


一种面向跨域数据的去中心化分级访问控制方法

技术领域

本发明属于跨域数据的分布式多级访问控制技术领域,具体涉及一种面向跨域数据的去中心化分级访问控制方法。

背景技术

近年来,随着物联网技术的普及,智能设备的数量和相关服务需求达到前所未有的水平。然而伴随着智能设备数量激增,越权访问隐私泄露安全事件频繁发生。2017年,CheckPoint研究人员在LG智能家电中发现了一个访问漏洞,研究人员可以利用该漏洞未经授权访问物联网设备内的集成摄像头,侵犯用户隐私。随着人们对个人数据隐私保护需求的提升,如何保证用户上传数据的机密性、维护用户个人数据全生命周期内的所有权和访问控制权成为亟需解决的问题。

常见的传统访问控制有:访问控制列表(Access Control List,ACL)、基于属性的访问控制(Attribute based Access Control,ABAC)、属性基加密。其中,属性基加密分为两类:密文策略属性基加密(Ciphertext-Policy Attribute based Encryption,CP-ABE)和密钥策略属性基加密(Key-Policy Attribute based Encryption,KP-ABE),在KP-ABE中,策略嵌入到密钥中,属性与密文相关联,这种设计适合静态场景,比如付费视频网站,日志加密管理等,而在CP-ABE方案中,策略嵌入到密文,属性与密钥相关联,资源所有者根据自己的意愿设计策略进行数据的访问控制,数据请求者(Date Requester,DR)根据自己的属性申请属性密钥去请求访问,这种模式与KP-ABE相比更灵活,更适合现实生活中各个社会实体间的数据共享。但是,传统的CP-ABE访问控制方案往往过度依赖中心可信属性权威,容易遭到单点攻击,进而泄露用户的属性信息。而且全局单一的可信属性权威是不现实的,在现实生活中,我们的属性往往由多个机构进行分发,例如:在进行学生医疗保险结算时,“患有哮喘病的学生”的属性分别是由医院与学校认证颁发的,因此需要设计多权威属性基加密(Multi-AuthorityAttribute-based Encryption,MA-ABE)来满足实际需求。

区块链作为一种去中心化、不可篡改、可信的分布式账本技术,能够提供安全、透明、稳定、可审计的交易记录。在访问控制机制中引入区块链能解决信任问题,通过多个区块链节点共同维护系统,实现无需信任的去中心化访问控制管理。此外,基于区块链中的智能合约,能实现访问控制自动化,更加规范了访问控制的流程化。但是现阶段的基于区块链的访问控制还存在一些不足,例如:

(1)基于区块链的CP-ABE方案中仍存在一个或多个可信第三方属性权威机构,单点故障的问题不能得到完全解决;

(2)基于区块链的访问控制方案中用户终端节点计算能力弱,解密时间长,数据传输存在高延迟问题;

(3)基于区块链的访问控制方案仅仅考虑了域内数据的访问控制,没有考虑物联网域间怎样实现跨域数据的访问控制;

(4)基于区块链的访问控制方案中,考虑跨域数据的情形下没有实现多级访问控制。

发明内容

为了解决相关技术中存在的上述问题,本发明提供了一种面向跨域数据的去中心化分级访问控制方法。本发明要解决的技术问题通过以下技术方案实现:

本发明提供一种面向跨域数据的去中心化分级访问控制方法,包括:

多个数据域的多个中心节点中的第一中心节点生成第一密钥参数、第二密钥参数和第三密钥参数,并将生成的参数共享;每个数据域包含控制节点、中心节点、计算节点和多个资源节点,计算节点的计算能力高于控制节点;不同数据域的资源节点和中心节点通过区块链进行数据交互;

每个中心节点根据所述第二密钥参数确定自身的第一分片值和第二分片值,根据所述第一分片值、所述第一密钥参数和所述第三密钥参数生成自身的第一中间参数,并将所述第一中间参数共享;

每个中心节点根据所述第一中间参数,确定公共参数并存储;

所述多个中心节点中的第二中心节点根据自身的第二分片值和第一密钥参数,确定出自身的第二中间参数并共享;

所述多个中心节点中除所述第二中心节点之外的中心节点,根据自身的第二分片值和所述第二中间参数,共同确定目标中间参数;

每个资源节点根据所述第一密钥参数和所述第二密钥参数生成自身的私钥和公钥,并将所述公钥进行共享;

当第一数据域中的第一控制节点接收到所述第一数据域中的第一资源节点发送的数据时,采用自身的密钥将所述数据加密,得到数据密文并存储,采用所述第一资源节点的公钥加密所述密钥,得到密钥密文并共享,设置所述数据的访问策略;所述第一数据域为所述多个数据域中的任一个;

所述第一控制节点根据所述密钥密文、所述公共参数、所述访问策略和所述目标中间参数中的第一参数,确定目标密文,并由所述第一数据域中的第一计算节点将所述目标密文进行共享;

在第二数据域的第二控制节点向所述第二数据域中的第二计算节点发送用于访问所述数据的访问请求时,所述第二计算节点确定出所述第二控制节点的属性集并共享;所述第二数据域为所述多个数据域中除所述第一数据域之外的任一个;

每个中心节点根据所述属性集、所述目标中间参数中的第二参数、所述第一密钥参数、所述第二密钥参数和自身的第一分片值,确定自身的解密分片,并发送至所述第二计算节点;

所述第二计算节点获取所述目标密文,并根据所述目标密文、所述第一密钥参数、所述解密分片、所述属性集和所述第三密钥参数对应的双线性映射函数,解密出目标结果并发送至所述第二控制节点;当所述属性集与所述访问策略匹配时,所述目标结果为所述密钥密文;

所述第二控制节点向所述第一资源节点请求私钥和所述数据的存储地址,根据所述密钥密文与得到的存储地址和私钥,得到所述数据。

本发明具有如下有益技术效果:

通过各个域内存在中心节点与计算节点,中心节点负责属性授权和属性密钥生成等工作,并且,各个数据域内的中心节点根据密钥参数生成各自的分片值,当某个数据域中的控制节点获取其他任一数据域的数据时,各个数据域的中心节点根据自身拥有的分片值,为该控制节点生成解密密钥分片,当拥有足够多的解密密钥分片,就可以重构出解密密钥,根据解密密钥便可得到包含密钥的密钥密文,并在该控制节点从生成该数据的节点处获取到解密密钥后,便可对该密钥密文进行成功解密,这样,可以在区块链实现安全、分布式的CP-ABE的解密,从而消除集中式服务器的存在,解决了单点故障和隐私泄露的问题,并且可实现防篡改和可溯源的效果。以及,各个域内的计算节点的计算能力高于所在数据域中的控制节点,由计算能力高的计算节点承担解密中的大部分计算操作(第一级解密),并将得到的解密结果发送至所在域的控制节点,由该控制节点通过简单解密,即可得到控制节点(通常为用户设备)所需访问的明文数据(第二级解密),使得用户设备不需承担复杂的解密计算,从而提高了数据解密的总时长,降低了数据访问的时间延迟,实现了对数据的分级访问控制。

以下将结合附图及实施例对本发明做进一步详细说明。

附图说明

图1为本发明实施例提供的面向跨域数据的去中心化分级访问控制方法的一个可选的流程图;

图2为本发明实施例提供的示例性的一个基于区块链的跨域数据多级访问控制系统的架构图;

图3为本发明实施例提供的示例性的基于区块链的跨域数据多级访问控制系统执行本发明所述的方法时的一个流程图;

图4为本发明实施例提供的基于区块链的电子病历数据共享平台执行本发明所述的方法时的一个流程图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。

尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。

图1是本发明实施例提供的面向跨域数据的去中心化分级访问控制方法的一个可选的流程图,如图1所示,所述方法包括以下步骤:

S101、多个数据域的多个中心节点中的第一中心节点生成第一密钥参数、第二密钥参数和第三密钥参数,并将生成的参数共享;每个数据域包含控制节点、中心节点、计算节点和多个资源节点,计算节点的计算能力高于控制节点;不同数据域的资源节点和中心节点通过区块链进行数据交互。

本发明实施例提供的方法可以应用于一个基于区块链的跨域数据多级访问控制系统,该系统中包括多个数据域,其中每个数据域中包含至少一个中心节点、至少一个计算节点、至少一个控制节点和多个资源节点,每个数据域中的计算节点的计算能力高于自身所在的数据域的控制节点。不同数据域的资源节点和中心节点通过区块链进行数据交互。示例性的,如图2所示,该系统可以包括四个数据域,每个数据域中可以包含一个中心节点、一个计算节点、一个控制节点和2个资源节点,并且,这四个数据域中的计算节点和中心节点通过区块链进行数据交互(即这四个数据域中的计算节点和中心节点形成图2中的访问控制区块链,简称访控区块链)。

本发明实施例中,第一中心节点可以是从这多个数据域对应的多个中心节点中预先设定好的,也可以是这多个中心节点共同选举出的。

本发明实施例中,第一中心节点可以将生成的第一密钥参数、第二密钥参数和第三密钥参数,均上传至区块链账本中,实现参数共享。

示例性的,第一密钥参数和第二密钥参数是两个不同的随机数,第三密钥参数是根据这两个随机数生成的双线性群。

例如,第一中心节点根据第一密钥参数g和第二密钥参数g,生成一个以g为生成元,素数p为阶的双线性群G

生成双线性群的原理如下:令

S102、每个中心节点根据第二密钥参数确定自身的第一分片值和第二分片值,根据第一分片值、第一密钥参数和第三密钥参数对应的双线性映射函数生成自身的第一中间参数,并将第一中间参数共享。

本发明实施例中,每个中心节点可以确定出两个小于第二密钥参数p的随机数,将这两个随机数作为自身的第一分片值α

S103、每个中心节点根据第一中间参数,确定公共参数并存储。

本发明实施例中,每个中心节点可以从区块链账本中获取其他中心节点的第一中间参数,并根据自身的第一中间参数和获取的第一中间参数,确定出公共参数,并存储至自身的内存中,其中,不同中心节点确定出的公共参数相同。

示例性的,每个中心节点可以将自身的第一中间参数和获取的第一中间参数进行连乘,得到公共参数

S104、多个中心节点中的第二中心节点根据自身的第二分片值和第一密钥参数,确定出自身的第二中间参数并共享。

本发明实施例中,第二中心节点可以是从这多个数据域对应的多个中心节点中预先设定好的,也可以是这多个中心节点共同选举出的,并且,第二中心节点也可以是第一中心节点。

示例性的,第二中心节点C

S105、多个中心节点中除第二中心节点之外的中心节点,根据自身的第二分片值和第二中间参数,共同确定目标中间参数。

这里,可以通过步骤S1051~S1054共同确定出目标中间参数:

S1051、多个中心节点中的第三中心节点根据自身的第二分片值,得到自身的第三分片值;第三中心节点是第二中心节点的下一个中心节点。

这里,这多个中心节点具有对应的标识,且这些标识按照一定的排列顺序存储至区块链账本中,每个中心节点可以通过查询区块链账本确定出自身的下一个中心节点。

这里,第三中心节点可以根据自身的第二分片值β

S1052、根据自身的第二分片值和第三分片值,以及第二中心节点的中间参数,确定出自身的第二中间参数,将自身的第二中间参数进行共享;第三中心节点是第二中心节点的下一个中心节点。

这里,第三中心节点可以采用自身的第二分片值对第二中心节点的第二中间参数中的对应参数进行指数运算,以及采用自身的第三分片值对第二中心节点的第二中间参数中的对应参数

在一些实施例中,第三中心节点可以将自身的第二中间参数上传至区块链账本上,并同时通过查询区块链账本,确定出自身的下一个中心节点,并向自身的下一个中心节点发送通知消息。

S1053、第三中心节点的下一个节点根据自身的第二分片值,得到自身的第三分片值。

这里,第三中心节点的下一个节点可以在接收到第三中心节点发送的通知消息时,采用与上述S1051相同的原理确定出自身的第三分片值,也可以通过自主查询区块链账本,并发现自身的前一个节点已经共享了第二中间参数时,采用与上述S1051相同的原理确定出自身的第三分片值。

S1054、根据自身的第二分片值和第三分片值,以及第三中心节点的第二中间参数,确定出自身的第二中间参数,将自身的第二中间参数进行共享,如此循环迭代,直至多个中心节点中的最后一个中心节点确定出自身的第二中间参数;其中,最后一个中心节点的第二中间参数为目标中间参数。

这里,第三中心节点的下一个节点可以采用与S1052相同的原理确定出自身的第二中间参数,并将自身的第二中间参数进行共享,以便自身的下一个节点继续进行计算,如此循环迭代,直到多个中心节点中的最后一个中心节点确定出自身的第二中间参数时,得到目标中间参数。

示例性的,目标中间参数可以为

S106、每个资源节点根据第一密钥参数和第二密钥参数生成自身的私钥和公钥,并将公钥进行共享。

这里,每个资源节点可以选择一个sk

S107、当第一数据域中的第一控制节点接收到第一数据域中的第一资源节点发送的数据时,采用自身的密钥将数据加密,得到数据密文并存储,采用第一资源节点的公钥加密密钥,得到密钥密文并共享,设置数据的访问策略;第一数据域为多个数据域中的任一个。

这里,每个资源节点可以生成数据,并在生成数据后可以将该数据发送至自身所在域中的控制节点,由控制节点进行存储。当多个数据域中的任一个数据域(以下称为第一数据域)中的任一个资源节点(以下称为第一资源节点)产生数据msg时,可以将该数据发送至第一数据域中的第一控制节点,第一控制节点根据自身的密钥key对该数据加密,将得到的数据密文E

这里,第一控制节点的密钥可以是第一控制节点自己生成的对称密钥。

这里,第一控制节点可以根据第一资源节点发送的数据所属的属性,为该数据设置访问策略,并且,访问策略包括多个具有交并关系的不同属性。例如,当该数据为医疗数据,且该数据所属的属性为医院A和科室a时,可以将{医院A∩科室a}作为该数据的访问策略,其中,∩表示医院A与科室a之间是交集的关系,表示医院A中的科室a。

S108、第一控制节点根据密钥密文、公共参数、访问策略和目标中间参数中的第一参数,确定目标密文,并由第一数据域中的第一计算节点将目标密文进行共享。

在一些实施例中,上述S108可以通过步骤S1081~S1086实现:

S1081、第一控制节点根据多个不同属性之间的包含关系,建立包含根节点、叶子节点和非叶子节点的访问策略树。

这里,访问策略树中的每个节点对应有属性。

S1082、根据第二密钥参数,确定访问策略树的每个节点的多项式;每个多项式包含一个常数项。

这里,可以从访问策略树的根节点R开始,通过以下方式从上到下为访问策略树

这里,阈值为门限值,假设一个非叶子节点的度为3,门限值为2,则表示该节点有三个孩子节点,只要有两个孩子节点满足,则该节点以下的访问策略是满足的。

S1083、根据访问策略树的根节点的多项式中的常数项、密钥密文和公共参数,确定第一密文。

示例性的,第一密文可以表示为:

S1084、根据访问策略树的根节点的多项式中的常数项和第一参数,确定第二密文。

示例性的,第二密文可以表示为:C=h

S1085、根据每个叶子节点的多项中的常数项、该叶子节点对应的属性和第一密钥参数,确定该叶子节点对应的第三密文。

这里,可以根据每个叶子节点的多项中的常数项和第一密钥参数,确定该叶子节点的第一子密文,对该叶子节点对应的属性进行哈希运算,得到哈希结果;之后,根据哈希结果和该叶子节点的多项中的常数项,确定该叶子节点的第二子密文,将第一子密文和第二子密文,确定为该叶子节点的第三密文。

示例性的,每个叶子节点y的第三密文可以表示为:

S1086、将访问策略树、第一密文、第二密文和第三密文,确定为目标密文,并由第一数据域中的第一计算节点将目标密文进行共享。

示例性的,得到的目标密文可以表示为:

这里,第一控制节点可以将目标密文发送至自身所在的数据域中的计算节点,并由该计算节点将目标密文上传至区块链账本中。

S109、在第二数据域的第二控制节点向第二数据域中的第二计算节点发送用于访问数据的访问请求时,第二计算节点确定出第二控制节点的属性集并共享;第二数据域为多个数据域中除第一数据域之外的任一个。

在一些实施例中,访问请求中携带第二控制节点的节点标识,在第二控制节点向第二计算节点发送访问请求时,第二计算节点可以根据节点标识,从区块链账本中查询对应的属性集,并在未查询到对应的属性集时,第二计算节点根据第二数据域的预设信息和节点标识,为第二控制节点生成属性集,并将属性集上传至区块链账本,而在查询到属性集时,将查询到的属性集作为第二控制节点的属性集,将属性集上传至区块链账本。

这里,每个数据域对应的预设信息可以为每个数据域对应的一个属性,以及该数据域中的每个控制节点对应的属性;例如,当不同的数据域为不同的医疗机构时,每个数据域对应的一个属性可以为医疗机构名称,每个控制节点对应的一个属性可以为该控制节点在该医疗机构中所在的科室名称;可以根据节点标识查询到该控制节点对应的属性,并将该控制节点所在的数据域对应的属性和该控制节点对应的属性构成的集合,作为该控制节点的属性集

S110、每个中心节点根据属性集、目标中间参数中的第二参数、第一密钥参数、第二密钥参数和自身的第一分片值,确定自身的解密分片,并发送至第二计算节点。

在一些实施例中,S110可以通过S1111~S1115实现:

S1111、每个中心节点根据第二密钥参数确定自身的第一随机值,以及确定属性集中的每个属性对应的第二随机值。

这里,对于每个中心节点c

S1112、该中心节点根据自身的第一随机值、第二参数和自身的第一分片值,确定自身的第一解密子分片。

示例性的,中心节点c

S1113、对于属性集中的每个属性,该中心节点根据该属性、该属性对应的第二随机值、第一密钥参数和自身的第一随机值,确定该属性的第二解密子分片。

这里,对于属性集中的每个属性,中心节点c

示例性的,中心节点c

S1114、该中心节点根据第一密钥参数和该属性对应的第二随机值,确定该属性的第三解密子分片。

示例性的,中心节点c

S1115、该中心节点将自身确定的第一解密子分片、自身确定的每个属性的第二解密子分片和第三解密子分片,确定为自身的解密分片。

示例性的,中心节点c

S111、第二计算节点获取目标密文,并根据目标密文、第一密钥参数、解密分片、属性集和第三密钥参数对应的双线性映射函数,解密出目标结果并发送至第二控制节点;当属性集与访问策略匹配时,目标结果为密钥密文。

在一些实施例中,上述S111可以通过S201~S205实现;

S201、第二计算节点根据各个中心节点发送的解密分片,生成属性解密密钥。

这里,第二计算节点可以将各个中心节点发送的解密分片进行连乘,得到属性解密密钥。示例性的,属性解密密钥可以表示为:

S202、对于目标密文中的访问策略树的每个叶子节点,在该叶子节点对应的属性属于属性集时,根据该属性的第二解密子分片和第三解密子分片、该属性、该叶子节点对应的多项式的常数项、第一密钥参数和第三密钥参数对应的双线性映射函数,确定该叶子节点对应的解密结果。

在一些实施例中,对于目标密文中的访问策略树的每个叶子节点,在该叶子节点对应的属性属于属性集时,可以对该属性进行哈希运算,得到该属性的哈希结果;根据该属性的第二解密子分片、第一密钥参数、该叶子节点对应的多项式的常数项和双线性映射函数,确定出分子解密结果;根据该属性的第三解密子分片、该属性的哈希结果、该叶子节点对应的多项式的常数项和双线性映射函数,确定分母解密结果;根据分子解密结果和分母解密结果,得到该叶子节点对应的解密结果。

示例性的,每个叶子节点x'对应的解密结果可以表示为:

;其中,att(i)为叶子节点x'对应的属性,H(att(i))为att(i)对应的哈希结果,r

S203、在该叶子节点对应的属性不属于属性集时,确定该叶子节点的下一个叶子节点的解密结果。

这里,当叶子节点x'对应的属性不属于属性集时,DecryptNode(CT,SK,x')为⊥,之后,可以采用与S202相同的原理,计算下一个叶子节点的解密结果,直至计算出所有叶子节点的解密结果。

S204、对于访问策略树的每个非叶子节点,在该非叶子节点对应的属性属于属性集时,根据该非叶子节点的子节点的解密结果,确定该非叶子节点的解密结果,直至得到访问策略树的根节点的解密结果。

这里,当计算完所有叶子节点的解密结果后,可以计算叶子节点的上一层的各个非叶子节点的解密结果,之后,计算该非叶子节点的上一层的各个非叶子节点的解密结果,如此递归,可以从访问策略树的最底层,由下向上依次计算各个节点的解密结果,直至得到根节点的解密结果。

这里,每个非叶子节点S

S205、根据根节点的解密结果、第一密文、根节点的多项式中的常数项、目标中间参数中的第一参数、属性解密密钥和第三密钥参数对应的双线性映射函数,解密出目标结果,并将目标结果发送至第二控制节点。

在一些实施例中,可以根据目标中间参数中的第一参数、根节点的多项式中的常数项、属性解密密钥和第三密钥参数对应的双线性映射函数,确定第一中间结果;根据第一中间结果与根节点的解密结果,确定第二中间结果;根据第一密文与第二中间结果,解密出目标结果。

示例性的,目标结果可以表示为:

这里,当属性集与访问策略匹配时,目标结果可以简化为密钥密文

S112、第二控制节点向第一资源节点请求私钥和数据的存储地址,根据密钥密文,以及得到的存储地址和私钥,得到数据。

在一些实施例中,第一控制节点在将数据密文存储后,可以得到数据的存储地址,并将存储地址发送至第一资源节点,基于此,S112可以实现为:第二控制节点向第一资源节点发送请求消息,请求消息用于向第一资源节点请求第一资源节点的私钥sk

本发明实施例,可以在区块链实现安全、分布式的CP-ABE的解密,从而消除集中式服务器的存在,解决了单点故障和隐私泄露的问题,并且可实现防篡改和可溯源的效果;以及,使得控制节点(用户设备)不需承担复杂的解密计算,从而提高了数据解密的总时长,降低了数据访问的时间延迟,实现了对数据的分级访问控制。

图3为基于区块链的跨域数据多级访问控制系统执行本发明所提供的方法时的一个示例性的流程图,如图3所示,在系统初始化阶段,通过ABE初始化,系统中的各个数据域的中心节点中的第一中心节点生成第一密钥参数、第二密钥参数和第三密钥参数,并且各个中心节点生成各自的第一分片值、第二分片值和公共参数,并共同确定出目标中间参数,并将第一密钥参数、第三密钥参数、公共参数和目标中间参数,作为ABE公共参数上传至区块链账本;各个数据域中的每个资源节点根据ABE公共参数生成自身的公钥pk

以下通过一个实际应用场景,对上述方法进行进一步说明。

近年,医疗平台通过线上挂号、排队等方式大大改善了病人看病难、看病麻烦的问题。然而门诊时,常常有患者忘记或没有带齐在上一家医院就诊时的材料。而对于医生来说,了解患者在患病全阶段的所有检查检验结果,有助于对疾病的诊疗和判断。因此忘记带既往病历材料等情况的发生不仅会增加就医成本,还可能增加医疗风险。因此,医疗系统亟需一个患者电子病历跨域共享平台,既不需要患者带着纸质资料来回跑,也能避免患者会病史陈述不清晰可能产生的医疗风险。目前已有一些国家和地区建立起了集中式的开放数据平台,然而这些已有的数据平台存在安全性和高效性问题:(1)这些已有的电子病历数据共享平台存储着大量的用户隐私信息,亟需对用户的隐私数据提供全生命周期的访问控制和隐私保护;(2)现有的电子病历共享平台都基于集中式服务器,而这种集中式的服务器存在单点故障的风险,一旦该服务器被攻击,会阻碍该平台所涉及的所有患者的诊疗;(3)如果医生的看病效率越高,那么就有越多的患者能够早日接受诊疗。因此,电子病历数据共享平台具有低访问延迟的需求。而将本发明应用在电子病历数据共享平台,不仅可以保证用户隐私数据的安全性,为医生提供高效的电子病历访问,同时借助区块链的不可篡改性与不可否认性,在用户数据泄露时还能根据访问记录对医生进行追责,从而可以实现安全、高效的电子病历数据共享。

下面将结合电子病历数据共享场景,对本发明提供的方法进行进一步说明,在该实际应用场景中,基于区块链的跨域数据多级访问控制系统,是基于区块链的电子病历数据共享平台,并且,在该电子病历数据共享平台中,各个医院作为不同的数据域。在每个医院中,患者使用的医疗设备作为产生数据的资源节点,患者的接诊医生使用的用户设备作为管理患者数据的控制节点,该医院的行政部门使用的设备作为域内可信的中心节点,该医院的高算力服务器作为域内的计算节点。各个医院的行政部门使用的设备和高算力服务器作为区块链的参与者(即形成访问控制区块链),负责医院间的电子病历数据的交换。图4为该基于区块链的电子病历数据共享平台的工作流程图,如图4所示,该流程包括七个步骤:

①系统初始化:

此步骤由各个医院的行政部门共同完成。首先,随机选取一个医院H

②资源访问者注册:

假设涉及到的属性包括以下分类:①机构名称:{医院A、医院B、医院C、医院D、...},②所属科室:{内科、外科、口腔科、皮肤科、耳鼻喉科、...}。

当有新的医生使用的设备要加入该电子病历数据共享平台时,该医生通过该设备首先向所在医院的行政部门的设备发起注册申请,然后,该行政部门的设备为该医生的设备生成一组属性集

③加密上传

患者的电子病历数据交由对应接诊的医生管理,当患者使用的医疗设备需要上传患者的电子病历数据(即图4中的待加密数据m)时,首先,医生使用的设备选择一个对称密钥key,用对称密钥key加密电子病历数据msg,得到E

医生的设备将计算出的密文发送给所在医院的计算节点,由该计算节点生成数据上传交易,将CT存储到区块链账本中。

④请求访问:

当上述的患者在另一个医院进行病情复查时,该医院的医生需要获得该患者的病情相关既往电子病历数据。该医生使用的设备首先向该医院的计算节点发送带有该患者的过往医院id、患者身份id(即患者使用的医疗设备的id)的访问请求。

⑤解密密钥生成

该计算节点收到访问请求后,把该请求转化成请求访问交易,该交易唤起各个医院的行政部门的解密密钥生成智能合约,通过以下步骤为该医生使用的设备(控制节点)生成属性解密密钥:每个行政部门选择一个随机数m

⑥一级解密:

该医院的计算节点收到来自所有行政部门生成的属性解密密钥分片D

⑦二级解密

医生使用的设备收到计算节点返回的

综上,本发明立足于提供跨域数据共享领域存在的去中心化的访问控制、安全的数据隐私保护和低延迟的数据解密需求,重点突破由区块链支持的完全去中心化的多级数据访问控制关键技术。针对集中式访问控制方案单点故障的问题,基于区块链和安全多方计算技术,设计实现了完全去中心化的数据访问控制方法;并且,针对数据解密延迟高的问题,根据不同实体的性能和计算能力,设计出了合理的多级解密访问控制框架。即本发明实现了基于区块链的多级访问控制跨域数据共享,并且,通过域内高计算节点的预解密特性减轻了用户的计算压力。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

相关技术
  • 去中心化的数据验证及数据安全交易系统及方法
  • 一种面向去中心化云存储的客户端安全数据去重方法
  • 一种去中心化的多权威隐私保护数据访问控制方法及系统
技术分类

06120115927184