一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种区块链辅助的医疗大数据搜索机制与隐私保护方法

2022-06-05 08:16:56 来源:中国专利 TAG:


1.本发明属于信息化领域,涉及一种区块链辅助的医疗大数据搜索机制与隐私保护方法。


背景技术:

2.随着医疗领域的发展,医疗健康已渗透到家家户户,成为人类的一项基本的生理需求。而随着大数据时代的到来,医疗机构和个人每天都会产生大量的结构化和非结构化的电子医疗数据,这些电子医疗数据的数据量以及数据规模也在迅速增加,这导致了传统的数据库以及软件技术处理这些数据变得异常艰难。
3.在医疗大数据时代,医疗数据的完整性和准确性是患者的宝贵财富,并且医疗数据的共享有利于控制疾病的传播。然而,最初由医疗机构存储的医疗数据形成了数据孤岛,不利于数据共享。云服务的发展方便了数据共享,节省了本地成本,但是以第三方为媒介的云服务器容易造成单点故障,并且容易引起共谋攻击,患者信息容易被滥用,造成隐私泄露。因此,大数据时代,在共享医疗数据的同时,应该考虑其安全性和隐私保护。
4.区块链由于其分布式、防篡改、透明、溯源以及匿名性等特点流行于大众之间。大数据本身的去中心化、安全性以及隐私性等特性可以使其很好地与区块链结合。利用区块链技术,凡是加入区块链的用户都可以查看对应的数据,方便了数据共享,同时,由于其分布式特点,解决了单点故障的问题,由于其防篡改的特点解决了云存储中的数据的恶意篡改、删除等共谋攻击。现阶段,区块链已经在金融、能源、电网以及医疗等领域。在医疗领域,区块链技术很好地弥补了上述两种存储方式的不足。
5.然而,在医疗区块链系统中,首先,其匿名性虽然可以一定程度上避免了用户的隐私泄露,但是医疗区块链中存储的医疗数据天生就具有隐私性和敏感性,如何保护医疗数据中患者隐私是一个需要中点关注的问题。其次,由于区块链是以线性结构来记录数据的,故搜索的时候需要按顺序依次遍历进行搜索,从而需要查看一条完整的区块链。随着数据量以及区块增多,使得链不断增长,搜索时就会相当耗时。以以太坊为例,医疗机构将患者医疗数据进行加密之后,通过智能合约上传到区块链中,这些加密的医疗数据会作为额外的数据以十六进制的形式存储在对应交易的“input”字段中,搜索时需要先遍历块,在遍历交易,解码 input之后最终解密数据才能判断要搜索的数据是否符合要求,这无疑相当耗时。最后,现有研究很少支持对存入的额外数据进行不同条件的搜索,且密文状态下,普通的加密更加无法支持不同条件的搜索。因此,如何在保证患者隐私的情况下对医疗数据进行不同条件的高效搜索是一项非常重要的工作。


技术实现要素:

6.有鉴于此,本发明的目的在于提供一种区块链辅助的医疗大数据搜索机制与隐私保护方法,使用多种加密方案以保证患者的隐私不被泄露,同时加入访问控制,对其进行身份识别分类以明确其访问权限,限制不同用户类型访问不同范围内的电子医疗数据,进一
步保护了患者的隐私性。最终将加密电子医疗数据处理到数据库中,使用户根据不同条件搜索密文状态下的电子医疗数据。
7.为达到上述目的,本发明提供如下技术方案:
8.一种区块链辅助的医疗大数据搜索机制与隐私保护方法,具体包括以下步骤:
9.s1:医疗机构上传患者的电子医疗数据,并由医疗区块链系统执行加密策略,将加密后的电子医疗数据上传到区块链;
10.s2:医疗区块链系统将区块链中加密的电子医疗数据处理到数据库中,并支持数据库中的密文查询;
11.s3:加入医疗区块链系统中的用户进行访问控制,判断用户身份及电子医疗数据访问权限;
12.s4:用户向医疗区块链系统发送搜索请求,并由医疗区块链系统执行密文搜索;
13.s5:医疗区块链系统将经过加密策略加密的搜索结果进行解密,然后使用统一加密算法对电子医疗数据进行再次加密并将加密结果以及随机密钥返回给用户。
14.进一步,步骤s1中的具体过程包括:
15.为了保证患者电子医疗数据在存储、搜索时隐私不被泄露,从加密角度出发,医疗机构将患者的电子医疗数据上传之前进行加密处理,其加密策略是根据一份电子医疗数据中不同类型的信息采用不同的加密算法,从而支持密文搜索,最终将加密的电子医疗数据上传到区块链中;考虑到区块链的存储容量限制,对于像ct图像这种占用空间比较大的数据,区块链只保留其哈希值、存储位置以及加密的文字描述,原始数据则存储在本地云中。在本方法中,其加密策略包含三个函数:
16.(1)getkeyvalue()

<key,(value,type)>:由医疗区块链系统接收一份电子医疗数据并遍历获取所有key-value。
17.(2)issensitive(data)

{true,false}:判断电子医疗数据中key和value的敏感性。
18.(3)encdata(key,value,type,true)

加密数据encdata:对敏感的key-value进行加密,key 采用统一的加密算法;value则根据类型不同采用不同的加密算法,最终的密文采用“密文. 加密算法类型”的形式,其中“.加密算法类型”为加密标志,用于后期解密时判断使用哪种算法密钥。
19.进一步,步骤s2中的具体过程包括:
20.为了缩短区块链的搜索时间,医疗区块链系统负责监听区块链,如果区块链生成的块中包含电子医疗数据,则会对块中生成的所有交易包含的电子医疗数据进行处理,最终将一份电子医疗数据中包含的信息处理成key-value的形式,并将其上传到数据库中,利用数据库提高区块链的搜索效率,提供丰富的查询功能。为了弥补由于医疗机构失误导致的错误上传医疗数据的情况,医疗区块链系统允许追加一笔带有修改标记的交易进行更新说明,并由医疗区块链系统根据标记对数据库中的数据进行更新操作。
21.进一步,步骤s3中的具体过程包括:
22.为了进一步保护患者电子医疗数据的隐私,从访问控制角度出发,在搜索之前通过智能合约来完成身份分类以明确其访问权限。所有进入医疗区块链系统的用户进行身份注册,根据注册身份不同,被授权搜索的数据范围也不同,医疗机构每天需要对患各种病的
患者进行诊断治疗或对某种疾病进行研究,搜索全部医疗数据是有必要的;患者通常情况下只允许搜索自己的电子医疗数据;第三方(例如,保险公司)通常情况下只允许能搜索与之相关人员的电子医疗数据。
23.进一步,步骤s4中的具体过程包括:
24.经过访问控制之后,合法的用户都可以正常进行搜索请求。当用户通过智能合约向医疗区块链系统发送一条明文搜索请求之后,医疗区块链负责将其处理成密文搜索请求,系统则利用数据库执行高校搜索。在本方法中,加密之后的电子医疗数据支持等值查询、范围查询、关键词检索以及布尔查询等复杂查询。
25.等值查询:主要查询某一字段对应具体值的相关电子医疗数据。
26.范围查询:主要针对数值类型,查询满足某一范围的相关电子医疗数据。
27.关键词检索:主要检索电子医疗数据中某个文本形式的信息中是否包含某个单词,并查询所有满足条件的相关电子医疗数据。
28.布尔查询:该操作是带有and或or等连接词的查询语句,用于连接等值查询、范围查询以及关键词检索等。
29.进一步,步骤s5中的具体过程包括:
30.在医疗区块链系统搜索到满足所有条件的密文电子医疗数据之后,如果直接使用系统密钥对其解密并将明文数据返回给用户会造成患者的隐私泄露;如果直接将搜索的密文和系统密钥返回给用户则不利于系统的内部安全。医疗区块链系统将搜索到的加密电子医疗数据以 key-value的形式进行解密,并根据加密标志“.加密算法类型”判断使用何种加密算法的秘钥解密,如果为明文则不做任何处理。接着使用安全性较高的加密算法生成随机密钥,对解密之后的数据再次进行加密,然后对密钥设置有效时间,最终将随机密钥以及处理之后的加密电子医疗数据返回给用户,以供用户进行浏览查看。
31.本发明的有益效果在于:本发明在提高医疗区块链搜索效率的前提下,使用户经过身份认证后,在自己的搜索权限的范围内搜索不同条件的加密电子医疗数据,本发明在保护患者隐私的同时兼顾数据的安全性和正确性。
32.本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
33.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
34.图1为本发明区块链辅助的医疗大数据加密搜索机制与隐私保护方法的流程图;
35.图2为本发明区块链辅助的医疗大数据加密搜索机制与隐私保护方法的系统模型;
36.图3为加密策略;
37.图4为个人基本信息的明文形式与密文形式;
38.图5为加密搜索工作框图。
具体实施方式
39.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
40.其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
41.本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
42.请参阅图1~图5,本发明提供一种区块链辅助的医疗大数据搜索机制与隐私保护方法,包括以下几个阶段:
43.阶段一:医疗机构上传患者的电子医疗数据,并由医疗区块链系统执行加密策略,将加密后的电子医疗数据上传到区块链;
44.阶段二:医疗区块链系统将区块链中加密的电子医疗数据处理到数据库中,并支持数据库中的密文查询;
45.阶段三:加入医疗区块链系统中的用户进行访问控制判断用户身份及电子医疗数据访问权限;
46.阶段四:用户向医疗区块链系统发送搜索请求,并由医疗区块链系统执行密文搜索;
47.阶段五:医疗区块链系统将经过加密策略加密的搜索结果进行解密,然后使用统一加密算法对电子医疗数据进行再次加密并将加密结果以及随机密钥返回给用户。
48.作为一种可选的实施例,阶段一具体包括:电子医疗数据加密上链阶段。
49.为保证电子医疗数据中患者的隐私不被泄露,首先从加密角度考虑,利用各种加密算法,设计了一种加密策略(如图3所示),将电子医疗数据加密之后上传到区块链;考虑到区块链的存储容量限制,对于像ct图像这种占用空间比较大的数据,区块链只保留其哈希值、存储位置以及加密的文字描述,原始数据则存储在本地云中。其加密策略主要包含三个步骤:
50.(1)getkeyvalue()

<key,(value,type)>:首先,医疗区块链系统接收由医疗机构提交的电子医疗数据,然后执行getkeyvalue()函数,获取电子医疗数据中的所有key-value值以及value 对应的数据类型。
51.(2)issensitive(data)

{true,false}:由步骤1得到所有key-value之后,并循
环判断key、 value中包含的信息是否敏感,如果为敏感信息则输出true,继续执行步骤3,否则,输出false,判断下一组key-value。
52.(3)encdata(key,value,type,true)

加密数据encdata:针对敏感的数据执行函数encdata(key,value,type,true)。该函数中包含三组加密算法:对称加密、保序加密以及可搜索加密。其中,对称加密选用高级加密标准(advanced encryption standard,aes),用于加密非数值类型的数据;保序加密用于加密数值类型的数据,可以对加密的数值类型比较大小,由ope 表示该算法;可搜索加密可以检索文本形式的加密数据,由search表示该算法。首先,由aes、 ope以及search算法执行各自的gen(λ)函数,生成对应的秘钥key
aes
、key
ope
以及key
search
。其次,本方法统一使用对称加密算法aes对key进行加密,调用aes.enc(key);如果接收的 value所对应的type为数值类型,则使用ope算法,并调用ope.enc(value)对value进行加密;如果接收的value所对应的type为字符串文本类型,则使用search算法,调用search.enc(value) 对value进行加密;如果value对应的type为其他类型,则统一使用aes算法进行加密。最终,加密的数据是“密文.加密算法类型”的形式,本方法以个人信息为例执行加密策略,结果如图4所示。
53.最终将加密的电子医疗数据通过智能合约上传到区块链,并以十六进制的形式保存在交易中的“input”字段中。
54.作为一种可选的实施例,阶段二具体包括:交易数据链下存储阶段。
55.为了缩短区块链的搜索时间,医疗区块链系统负责对区块链进行监听维护并将其处理到数据库中,利用数据库提高区块链的搜索效率。当有区块生成的时候,医疗区块链系统会对块中生成的所有交易包含的电子医疗数据进行处理,并将其处理到数据库中,其具体的处理过程如下所示:
56.(1)医疗区块链系统从头到尾遍历所有的区块,获取区块号n及其生成的时间戳t,并将其中包含的所有交易存储到一个列表里面。
57.(2)判断存储交易的列表是否为空,如果为空则返回步骤(1),如果不为空则继续执行下面的步骤处理列表里面的交易。
58.(3)遍历列表中的交易并获取交易的哈希值h,input字段以及交易在块中的索引n。由于 input字段中的加密电子医疗数据是以十六进制的形式保存的,因此需要对其进行解码并处理成json格式的密文数据。
59.(4)将n、n、h以及json格式的密文数据以key-value的形式存储到数据库中。
60.(5)判断列表中的交易是否处理完毕,如果处理完毕则继续处理下一个区块,否则继续执行步骤(3)。
61.为了弥补医疗机构失误导致上传错误电子医疗数据的情况,需要后期重新追加一笔新的带有修改标记的交易来进行更新说明,并由医疗区块链系统根据修改标记进行判断,并将数据库中原有的数据进行更新操作。
62.作为一种可选的实施例,阶段三具体包括:访问控制阶段。
63.为了进一步保护患者的隐私,本方法从访问控制的角度出发,限制不同类型的用户进行不同数据范围的搜索。在用户进行搜索之前,需要对其进行身份分类认证并赋予其访问权限。在我们的方法中,总共分为医疗机构、患者以及第三方(例如,保险公司)三类用户。在所有用户加入医疗区块链系统之前都需要进行身份注册,从而对其进行身份认证并
进行访问控制。
64.根据身份的不同,在用户通过智能合约注册的时候,本方法使用0,1,2,3分别表示未注册的用户,医疗机构,患者以及第三方机构。用户进行搜索之前,首先需要进行身份认证,判断用户可以搜索哪些范围内的电子医疗数据。如果认证身份为0,则为非法用户,会拒绝其访问请求;如果为1则为医疗机构,可以访问所有的电子医疗数据,如果为2则为患者,可以搜索自己的电子医疗数据;如果为3则表示第三方机构,可以搜索与之相关人员的电子医疗数据。
65.作为一种可选的实施例,阶段四具体包括:数据搜索阶段。
66.经过访问控制之后,合法的用户都可以正常进行搜索请求。当用户向医疗区块链系统发送一条搜索请求之后,医疗区块链系统则利用数据库执行高效的密文搜索。在本方法中,可以支持密文状态下的等值查询、范围查询、关键词检索以及布尔查询等一些复杂的查询,其搜索流程如图5所示。
67.等值查询:主要查询某一字段对应具体值的相关电子医疗数据。例如,用户想搜索 name=bob的患者的相关电子医疗数据,将查询语句
68.db.enc.find({"name":"bob"})
69.发送到医疗区块链系统,接着由医疗区块链系统对其处理成密文查询语句
70.db.enc.find({"0x2f4a47cb":"0xda25f062.aes"})
71.并由数据库执行密文查询。
72.范围查询:主要针对数值类型,查询满足某一范围的相关电子医疗数据。例如,用户想搜索age》10的所有患者的电子医疗数据,通过将明文查询语句
73.db.enc.find({"age":{$gt:10}})
74.发送到医疗区块链系统,并将其处理成密文查询语句
75.db.enc.find({"0xff11e138":{$gt:"0x54afa2b8.ope"}})
76.最终由数据库执行密文状态下的范围查询。
77.关键词检索:主要检索电子医疗数据中某个文本形式的信息中是否包含某个单词,并查询所有满足条件的相关电子医疗数据。例如,用户向医疗区块链系统请求检索address中包含 chongqing的电子医疗数据,其中address中的信息是文本字符串形式的描述。因此由明文查询语句
78.db.enc.find({"address":"chongqing"})
79.经由医疗区块链系统经过加密处理后,得到密文查询语句
80.db.enc.find({"0x06250cec":"0x219b8951.search"})
81.最终执行密文关键词检索功能。
82.布尔查询:该操作是带有and或or等连接词的查询语句,用于连接等值查询、范围查询以及关键词检索等。例如,用户请求搜索name=bob且age》10的所有患者的电子医疗数据时,就会先向医疗区块链系统发送一条查询语句
83.84.该语句经过系统的加密处理,生成另一条密文查询语句
[0085][0086]
同样,由医疗区块链系统执行最终的搜索操作。
[0087]
作为一种可选的实施例,阶段五具体包括:搜索结果处理阶段。
[0088]
在医疗区块链系统搜索到满足所有条件的密文电子医疗数据之后,如果直接使用系统密钥对其解密将明文数据返回给用户会造成患者的隐私泄露;如果直接将搜索的密文和系统密钥返回给用户则不利于系统的内部安全。因此,需要对搜索结果做进一步处理。
[0089]
首先,将搜索到的密文结果进行解密,对所有的key使用aes对应的秘钥进行解密,未加密的key则不作任何处理。接着判断加密value中包含的加密标识“.加密算法类型”,如果以“.aes”结尾则使用aes.dec(encdata)进行解密,如果以“.ope”结尾,则使用ope.dec(encdata) 进行解密,如果以“.serarch”结尾,则使用search.dec(encdata)进行解密,未加密的value 数据则不作任何处理。
[0090]
由于搜索到的结果是已经满足用户搜索条件的电子医疗数据,对于用户来说不需要在进行任何搜索查询操作,只需接收查看即可。因此将加密的电子医疗数据初次解密之后,再次使用安全性较高的非对称加密算法(本发明统一使用rsa)统一对解密之后的每条电子医疗数据进行加密。首先,由医疗区块链系统随机生成一对公私钥key
pub
和key
pri
,医疗区块链系统使用私钥key
pri
对数据进行加密,并将加密之后的每条电子医疗数据依次返回给用户,而公钥 key
pub
则以邮件或短信的形式发送给用户,由用户统一进行解密查看。
[0091]
其中阶段四和阶段五为整个搜索阶段,整体的工作流程如图5所示。
[0092]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献