基于属性的匿名就医和医疗信息安全访问控制系统及方法
技术领域
本发明属于云数据信息安全技术领域,尤其涉及一种基于属性的匿名就医和医疗信息安全访问控制系统及方法。
背景技术
随着社会的进步和发展,特别是智能城市概念的推广,越来越多的数据将会上传至云服务器进行共享,由此将给人们带来更大的生活便利。但是当大量数据上传至服务器后,数据的安全性和隐私性成为了一个急需要解决的安全问题。特别是将具有高度隐私性质的医疗信息在云服务器上共享时,信息的保密性和安全性更加需要保证。因此,在上传信息时,需要对信息进行加密处理。另外,随着人们隐私保护意识的提高,当人们去医院进行就医时,即使医院保留了的病历信息,也不希望医院将其与本人联系起来,即医院不能知道病人的真实身份信息,因此这需要匿名认证。
属性加密技术是目前认为解决访问控制和隐私保护的非常有效的方法。其基本原理是当且仅当用户的属性与访问策略相匹配的时候才能得到相应的信息。“Ciphertext-policy attribute-based encryption”,J.Bethencourt,A.Sahai,and B.Waters,Proc.S&P’07,2007,pp.321-334,IEEE Computer Society中提出了基于密文策略的属性加密方法(CP-ABE)。这一加密技术将访问策略植入密文中,并且为每一个用户分配一个属性集合以及与自己属性相关的密钥,只有当用户的属性符合指定的访问策略时,其才能够利用自己获得的密钥解密出相关的信息。“DAC-MACS:Effective Data Access Control for Multiauthority Cloud StorageSystem”,K.Yang,X.Jia,K.Ren,VOL.8,NO.11,2013,pp.1790-1801,IEEETRANSACTIONS ON INFORMATION FORENSICS AND SECURITY中改进了初始的属性加密,大大降低了属性撤销所带来的密钥更新和密文更新的计算负担,提高了属性加密的实用性。
目前关于医疗数据的存储都是每个医院有着各自的系统,并没有实现电子医疗档案的云共享。虽然目前很多文章中提出了利用属性加密技术对医疗信息进行安全访问控制的一些方案,但是这些方案实现的访问控制是只要是符合属性的机构均可以访问用户的信息,或者说是经过用户授权的访问者可以获得用户分发的密钥从而访问数据。并不能实现这样一种控制:用户没有在这家医疗单位接受过医疗救治,则不希望这家医疗单位进行数据的访问。另外一些方案采用每个用户生成自己的属性加密方案,这样使得每个用户会得到其他所有用户分发的密钥,这时的密钥的管理成为了一个比较难缠的问题。除此之外,这些方案只考虑了医疗信息的访问控制,并没有结合用户实际就医的过程提出保护用户医疗隐私的实质性方案。
发明内容
本发明的目的在于提供一种基于属性的匿名就医和医疗信息安全访问控制系统及方法,旨在解决目前医疗系统的云共享问题和共享后病人身份信息和病历信息的隐私保护和访问控制问题。本发明还结合病人的实际就医过程,实现病人的匿名就医,同时考虑到实际生活中的紧急情况,并提出了该情形下由紧急中心代替用户进行临时授权的方法和过程。
本发明是这样实现的,一种基于属性的匿名就医和医疗信息安全访问控制系统,该基于属性的匿名就医和医疗信息安全访问控制系统包括:
管理中心CA,连接用户和医疗机构,用于负责验证每个用户和医疗单位的真实身份并且分发授权证书;
云服务器CS,用于负责存储用户的病历信息;
紧急中心EA,用于用户上传和访问自己的医疗信息对医疗信息的上传和访问进行授权,医疗机构在被用户授权的前提下进行信息的上传或者访问,在紧急情况下代替用户对医疗机构进行临时授权。
本发明的另一目的在于提供一种基于上述控制系统的控制方法,该控制方法采用属性加密技术,基于群组的广播加密技术以及群签名技术,结合病人就医的实际过程保护病人的病历信息的安全性和隐私性;该控制方法通过使用属性加密技术和对称加密技术对医疗信息进行加密。使用群签名方案由医生对医疗信息进行签名。另外使用时戳进行临时授权。当需要更新密文时,使用代理加密技术减少用户端的计算量。
进一步,所述初始化方法包括以下步骤:
步骤一,用户生成数字签名方案,包括参数(sk,pk),公开pk,并用自己的真实身份向管理中心提出注册请求从而获得匿名证书Cert=ID||sigCA(ID||pk||ts||te);其中sk用于签名,pk用于验证签名,[ts,te]表示证书的有效时间区间ID为管理中心生成的唯一标识用户的匿名编号,sigCA表示管理中心的数字签名;
步骤二,管理中心公开属性设置树,为各用户生成访问策略;
步骤三,各个医疗机构用自己的真实信息向管理中心提出注册请求,从而获得认证证书HCert=HID||sigCA(HID),其中HID是由管理中心生成的唯一标识该医疗机构的注册号;
步骤四,各用户生成基于密文策略的属性加密方案(记为CP-ABE),并将主密钥MSK和公共参数PP送急诊中心进行报备;
步骤五,各个医疗机构生成自己的面向群体的广播加密方案和群签名方案。
进一步,上述控制方法进一步包括以下的病人就医方法,所述病人就医方法包括以下步骤:
步骤一,病人利用自己的匿名证书Cert进行相应科室的挂号;
步骤二,挂号处验证病人的证书,主要是验证证书的签名和有效期是否合法,验证通过后如果是住院则转至步骤八,否则继续;
步骤三,挂号处利用面向群体的广播加密技术加密病人的ID得到EG(ID),并且产生排队号码NO,结合相应科室的属性集合S生成挂号证书TCert=NO||EG(ID)||S;同时将病人ID同步到相应科室的挂号列表;如果病人认为访问历史医疗记录是必要的则转至步骤四,否则转至步骤五;
步骤四,病人根据证书中的属性集合S利用主密钥MSK生成并保存属性私钥SKS,从而生成新的挂号证书TCert=NO||EG(ID)||S||SKS,或者生成新的住院证书TCert=NO||EG(ID)||S||ts||te||SKS;
步骤五,病人利用证书到相应科室就医或者住院;医生解密证书获取用户ID,验证用户的挂号证书的合法性;若证书中存在SKS,那么医生可以访问病人的历史医疗档案,否则不能访问病人的病历;
步骤六,医生将医疗方案m进行群签名后交给病人,即M=m||sigGSK(m);
步骤七,病人利用访问控制树ACL,按照证书中科室的属性生成加密策略P,然后随机产生对称加密密钥将信息进行对称加密,然后将对称加密密钥进行CP-ABE加密,将这两部分结合得到密文CT并上传至服务器CS;跳转至步骤十四;
步骤八,病人额外提供由主治医师签名的信息DSM=pk||sigGSK(ID),其中pk为主治医师的公钥;挂号处通过打开签名验证正确性;然后利用面向群体的广播加密技术加密病人的ID,并且产生住院号码NO,结合相应科室的属性集合S从而生成住院证书THCert=NO||EG(ID)||S||ts||te;其中ts为开始时间,te为终止时间;若要将住院期间的信息直接交给医院进行上传,则转至步骤九,否则转至步骤十三;
步骤九,病人根据住院证书中的属性集合S使用自己的主密钥MSK生成并保存属性私钥SKS;同时在证书中加入自己的CP-ABE加密中的公共参数PP从而生成新的住院证书TCert=NO||EG(ID)||S||ts||te||SKS||PP;
步骤十,病人向住院部出示住院证书,发送口令TK=sigSK(HID||ts||te||pk)给云服务器,然后该医院医生可以在有效时间区间[ts,te]内将病人的病历信息上传至云服务器;
步骤十一,医生上传信息时,利用访问控制树ACL,按照证书中科室的属性生成加密策略P,然后随机产生对称加密密钥将信息进行对称加密,然后将对称加密密钥进行CP-ABE加密,将这两部分结合得到密文CT,连同该主治医生的非交互式零知识身份证明信息进行上传;
步骤十二,云服务器通过验证CT中信息的签名,得知信息是否来自医院HID,并通过非交互式的零知识身份证明信息验证是否来自主治医生,均正确,则保存信息,跳转至步骤十四;否则,丢弃信息,拒绝上传;
步骤十三,病人决定是否允许医院访问其历史医疗信息,允许则转至步骤四,否则转至步骤五;
步骤十四,病人自主选择是否有必要更新密钥和密文,是则继续,否则转至步骤十六;
步骤十五,病人生成密文更新密钥,并且交由代理服务器进行密文的更新;
步骤十六,结束
进一步,当时间区间需要提前结束时,病人向服务器发送新的口令TK=sigSK(HID||te||te),进行终止授权;当需要延长授权的时候,需要持原来的住院证书重新到挂号处注册来更新证书中的时间区间并发送新的口令给云服务器。
进一步,病人选择住院期间信息交由医院上传时,当时间区间需要提前结束时,病人向服务器发送新的口令TK=sigSK(HID||te||te)进行终止授权;当需要延长授权的时候,病人需要到挂号处获取住院证书并发送新的口令给云服务器。
进一步,上述控制方法进一步包括以下紧急情况下的授权过程,所述授权过程包括以下步骤:
步骤一,当病人不能够自主决定和授权的时候,由医院向紧急中心提出授权申请,即发送TAK=HCert||S||Cert||pk;
步骤二,紧急中心接受医院的申请后,使用病人报备的主密钥MSK和医院申请中的属性集合S生成属性私钥SKS,连同公共参数PP发送给医院;
步骤三,紧急中心生成指令ETK=sigEA(HID||ts||te||pk)发送给云服务器;
步骤四,医生使用属性私钥访问病人的医疗记录,并且可以在有效时间区间[ts,te]内上传病人的医疗记录。
进一步,在紧急情况下中,当时间区间需要提前结束时,病人向服务器发送新的口令TK=sigSK(HID||te||te),或由紧急中心发送指令TK=sigEA(HID||te||te),进行终止授权;当需要延长授权的时候,病人需要到挂号处获取住院证书并发送新的口令给云服务器;若此时病人仍然没有能力自主决定或者授权,那么由医院向紧急中心重新提出授权申请。
本发明提供的基于属性的匿名就医和医疗信息安全访问控制系统及方法,采用属性加密方案,每个用户自己兼顾属性加密中的属性管理局和授权中心执行该属性加密方案;通过使用属性加密技术和对称加密技术对医疗信息进行加密。使用群签名方案由医生对医疗信息进行签名,另外使用时戳进行临时授权。当需要更新密文时,使用代理加密技术减少用户端的计算量。本发明还提出就医时使用匿名身份接受医疗服务从而从源头上保护了用户的身份信息。另外,本发明利用属性加密技术和群签名技术,结合现实社会中病人就医的过程构造出了一种保护用户医疗隐私的方案。
本发明具有如下优点:
1.本发明实现了病人的匿名挂号和就医,保护病人的身份信息;
2.本发明结合实际就医的过程,提出了具有隐私保护和访问控制功能的就医方案;
3.本发明考虑到了就医过程中会出现的紧急情况,提出了在紧急情况下的临时授权;
4.本发明使用群签名追踪到上传信息的医生,为将来可能产生的医学纠纷提供了有力的证据;
5.本发明中用户管理自己的属性加密方案,避免了集中管理的困难性,而且也保证了在非授权用户无法访问他人信息;
6.考虑到用户自身就医以及更新医疗记录的频率较低,所以对于普通病人即非住院治疗的病人采用自主上传信息对计算资源消耗并不会太大;
7.本发明由病人根据实际情况比如说是否要转院等自主决定是否需要进行密钥的更新,这种方法类似惰性重加密,可以减少频繁的密钥更新和密文更新所带来的计算负担;
本发明保证了用户医疗记录的隐私性,并结合实际的就医过程,提出了较为细致的方案,并且考虑到了实际生活中会出现的紧急情况,并提出了该情况下的授权过程。
附图说明
图1是本发明实施例提供的基于属性的匿名就医和医疗信息安全访问控制系统结构示意图;
图中:1、管理中心CA;2、用户;3、云服务器CS;4、医疗机构;5、紧急中心EA;
图2是本发明实施例提供的基于属性的匿名就医和医疗信息安全访问控制方法的流程图;
图3是本发明实施例提供的访问控制树(ACL)图;
图4是本发明实施例提供的病人就医的流程图;
图5是本发明实施例提供的紧急情况下的授权流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图及具体实施例对本发明的应用原理作进一步描述。
如图1所示,本发明实施例提供的基于属性的匿名就医和医疗信息安全访问控制系统主要包括:管理中心CA1、用户2、云服务器CS3、医疗机构4、紧急中心EA5;
管理中心CA1连接用户2和医疗机构4,云服务器CS3连接用户2,用户2连接紧急中心EA5;
用户2、云服务器CS3、医疗机构4之间进行信息交互;
如图2所示,本发明实施例的基于属性的匿名就医和医疗信息安全访问控制方法包括以下步骤:
101)用户生成数字签名方案,包括参数(sk,pk),公开pk,并用自己的真实身份向管理中心提出注册请求从而获得匿名证书Cert=ID||sigCA(ID||pk||ts||te);其中sk用于签名,pk用于验证签名,[ts,te]表示证书的有效时间区间ID为管理中心生成的唯一标识用户的匿名编号,sigCA表示管理中心的数字签名;
102)管理中心公开属性设置树,为各用户生成访问策略;
103)各个医疗机构用自己的真实信息向管理中心提出注册请求,从而获得认证证书HCert=HID||sigCA(HID),其中HID是由管理中心生成的唯一标识该医疗机构的注册号;
104)各用户生成基于密文策略的属性加密方案(记为CP-ABE),并将主密钥MSK和公共参数PP送急诊中心进行报备;
105)各个医疗机构生成自己的面向群体的广播加密方案和群签名方案。
结合附图4,病人就医过程的流程为:
201)病人利用自己的匿名证书Cert进行相应科室的挂号;
202)挂号处验证病人的证书,主要是验证证书的签名和有效期是否合法,验证通过后如果是住院则转至208),否则继续;
203)挂号处利用面向群体的广播加密技术加密病人的ID得到EG(ID),并且产生排队号码NO,结合相应科室的属性集合S生成挂号证书TCert=NO||EG(ID)||S;同时将病人ID同步到相应科室的挂号列表;病人认为访问历史医疗记录是必要的时候转至204),否则转至205);
204)病人根据证书中的属性集合S利用主密钥MSK生成并保存属性私钥SKS,从而生成新的挂号证书TCert=NO||EG(ID)||S||SKS,或者生成新的住院证书TCert=NO||EG(ID)||S||ts||te||SKS;
205)病人利用证书到相应科室就医或者住院;医生解密证书获取用户ID,验证用户的挂号证书的合法性;若证书中存在SKS,那么医生可以访问病人的历史医疗档案,否则不能访问病人的病历;
206)医生将医疗方案m进行群签名后交给病人,即M=m||sigGSK(m);
207)病人利用访问控制树ACL,按照证书中科室的属性生成访问策略P,然后随机产生对称加密密钥将信息进行对称加密,然后将对称加密密钥进行CP-ABE加密,将两部分结合得到的密文CT并上传至服务器CS;跳转至214);
208)病人额外提供由主治医师签名的信息DSM=pk||sigGSK(ID),其中pk为主治医师的公钥;挂号处通过打开签名验证正确性;然后利用面向群体的广播加密技术加密病人的ID,并且产生住院号码NO,结合相应科室的属性集合S从而生成住院证书THCert=NO||EG(ID)||S||ts||te;其中ts为开始时间,te为终止时间;若要将住院期间的信息直接交给医院进行上传,则转至209),否则转至213);
209),病人根据住院证书中的属性集合S使用自己的主密钥MSK生成并保存属性私钥SKS;同时在证书中加入自己的CP-ABE加密中的公共参数PP从而生成新的住院证书TCert=NO||EG(ID)||S||ts||te||SKS||PP;
210),病人向住院部出示住院证书,发送口令TK=sigSK(HID||ts||te||pk)给云服务器,然后该医院医生可以在有效时间区间[ts,te]内将病人的病历信息上传至云服务器;
211)医生上传信息时,利用访问控制树ACL,按照证书中科室的属性生成加密策略P,然后随机产生对称加密密钥将信息进行对称加密,并将对称加密密钥进行CP-ABE加密,将两部分结合得到的密文CT,连同该主治医生的非交互式零知识身份证明信息进行上传;
212)云服务器通过验证CT中信息的签名,得知信息是否来自医院HID,并通过非交互式的零知识身份证明信息验证是否来自主治医生,均正确,则保存信息,跳转至214);否则,丢弃信息,拒绝上传;
213)病人决定是否允许医院访问其历史医疗信息,允许转至204),否则转至205);
214)病人自主选择是否有必要更新密钥和密文,是则继续,否则转至216);
215)病人生成密文更新密钥,并且交由代理服务器进行密文的更新;
216)结束
在上述过程中,当时间区间需要提前结束时,病人可以向服务器发送新的口令TK=sigSK(HID||te||te),进行终止授权;当需要延长授权的时候,需要持原来的住院证书重新到挂号处注册从而更新证书中的时间区间并发送新的口令给云服务器;
结合附图5,紧急情况下的授权过程为:
301)当病人不能够自主决定和授权的时候,由医院向紧急中心提出授权申请,即发送TAK=HCert||S||Cert||pk;
302)紧急中心接受医院的申请后,使用病人报备的主密钥MSK和医院申请中的属性集合S生成属性私钥SKS,连同公共参数PP发送给医院;
303)紧急中心生成指令ETK=sigEA(HID||ts||te||pk)发送给云服务器;
304)医生可以使用属性私钥访问病人的医疗记录,并且可以在有效时间区间[ts,te]内上传病人的医疗记录;
在紧急情况下中,当时间区间需要提前结束时,病人可以向服务器发送新的口令TK=sigSK(HID||te||te),紧急中心也可以发送指令TK=sigEA(HID||te||te),进行终止授权;当需要延长授权的时候,病人需要到挂号处获取住院证书并发送新的口令给云服务器;若此时病人仍然没有能力自主决定或者授权,那么医院需要向紧急中心重新提出授权申请。
本发明的工作原理:采用属性加密,面向群组的广播加密以及群签名技术,结合病人的实际就医过程提出了保护病人隐私的匿名挂号和访问控制方案:首先,系统进行初始化为各用户和医疗机构分发证书,然后病人按照提出的就医流程进行就诊。另外,考虑到实际生活中的紧急情况,本发明引入了紧急情况下由紧急中心进行代授权的过程。
本发明保证了用户医疗记录的隐私性,并结合实际的就医过程,提出了较为细致的方案,并且考虑到了实际生活中会出现的紧急情况,并提出了该情况下的授权过程。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。