一种高效隐私保护的云医疗数据监护系统及监护方法与流程

文档序号:11155953阅读:425来源:国知局
一种高效隐私保护的云医疗数据监护系统及监护方法与制造工艺
本发明涉及信息安全领域,具体为一种高效隐私保护的云医疗数据监护系统及监护方法。
背景技术
:现有的云医疗系统中,用户的个人数据都是明文存储在云平台上,云服务器可以直接得知患者的所有隐私数据,网络攻击者一旦突破云服务器的外部防护就能窃取所有隐私信息;同时,也无法保证云服务商不会利用这些信息牟利,这给个人隐私保护带来极大的隐患。在现有的隐私保护方案中,只是将数据在本地加密后上传到云端,需要使用的时候,使之全部下载再解密才能进行数据处理,无法直接对密文进行查询,也无法对密文的生理数据进行生命体征分析,无法直接应用到云医疗系统的隐私保护中。技术实现要素:本发明的目的在于针对上述现有技术中的缺陷,提供一种高效隐私保护的云医疗数据监护系统及监护方法,患者的个人数据在上传到云平台之前就经过加密,云服务器能够在不知道数据内容的情况下,直接对密文进行查询和生命体征情况分析。为了实现上述目的,本发明高效隐私保护的云医疗数据监护系统包括:用于提供医疗数据信息的传感器用户;用于查询医疗数据信息的数据用户;用于接收数据用户的查询请求并将传感器用户的医疗数据信息发送给数据用户的云服务器;以及,用于对传感器用户、数据用户和云服务器进行注册认证的认证中心;所述的传感器用户对检索关键字进行编码,编码成数字后对医疗数据信息加密并上传至云服务器,所述的云服务器根据数据用户发送的请求直接对密文进行查询和生命体征情况分析,数据用户通过其秘钥对密文解密来读取查询结果。所述的云服务器中设置有生命体征情况安全阈值,通过比较传感器用户采集数据与生命体征情况安全阈值之间的差距,根据差距大小确定是否启动紧急响应模式。本发明高效隐私保护的云医疗数据监护方法,包括以下步骤:1)认证中心选定系统参数,建立系统:首先,认证中心选择一个安全参数μ,通过执行GEN(μ)并计算两个秘钥B1=gp1和B2=e(g,g)p1来生成系统参数(G1,G2,P1,P2,e,g,h,N=p1·p2);然后,认证中心确定多维权值向量W=(w1,w2,……,wn),使每个数值都对应相应维度的权重;其次,认证中心确定一个随机数作为私钥SKRC并计算正确的公钥同时认证中心选择一个对称的加密算法E()以及一个安全的哈希函数H(),满足其中是一个非0模N整数集合;最后,认证中心公开<N,G,Gt,e,g,h,PKRC,E(),H()>并将<p1,SKRC>秘密保存;2)用户注册:认证中心(4)通过安全信道发送<B1,B2,W>给传感器用户和数据用户,生成随机数作为私钥SK并且计算对应的公钥PK=gSK给认证中心以计算签名;与之类似,云服务器选取随机数当作私钥,然后计算相应的公钥发送给认证中心用作签名,认证中心计算其中0≤j≤μ且μ是一个大于256位的大整数,认证中心构造数据集HP={HP0,HP1,......,HPn},认证中心将数据按照从小到大排列并且将HPS数据发送给云服务器;3)数据采集:传感器用户通过传感器收集用户的实时数据,数据被描述为n维向量(xi1,xi2,……,xin);在此过程中,对患者检索关键字进行编码,作为密文数据查询的依据;在数据上传到云服务器之前,传感器用户进行如下处理:3.1)传感器用户计算x′i1=xi1+H(B1),x′i2=xi2+H(B1),......,x′in=xin+H(B1),其中B1只有注册过的传感器用户及数据用户知晓;3.2)传感器用户选择n个随机数r1,r2,......,rn,并且计算加密过的搜索索引Fi=(fi1,f′i1,fi2,f′i2,......,fim,f′im),由如下数值构成:3.3)传感器用户使用私钥SK签名Sig=H(Fi||ID||TS1)SK,其中TS1是当前的时间戳,ID是传感器用户的身份标识号码,传感器用户将签好名的数据条目<Fi‖ID‖TS1‖Sig>发送给云服务器;3.4)云服务器接收到签好名的数据条目之后,首先检查时间戳,然后通过计算e(g,Sig)=e(g,H(Fi||ID||TS1))检验签名Sig;如满足,签名接受,云服务器将数据Fi存储;4)已经注册过的数据用户向云服务器发送查询请求U1:4.1)U1对有n个特征的变量{y1,y2,......,y3},通过对关键字进行编码后检索特定信息;4.2)U1从用户想查询的数据项决定加权欧氏距离搜索范围和想加密计算请求(q1,q′1,q2,q′2,......,qn,q′n)如下:4.3)U1使用云服务器公钥PKCS计算4.4)U1使用其私钥计算出签名然后U1把加密的数据查询请求<Q‖U1‖TS2||Sigj>发送到云服务器;5)Ui收到加密的数据查询请求<Q||Ui||TS2||Sigj>之后,云服务器执行如下流程提供个人数据查询服务:5.1)云服务器检查时间戳TS2并计算e(g,Sigj)=e(PKDU,H(Q||Uj‖TS2))是否成立来验证签名Sigj,如果签名成立则被接受;5.2)云服务器使用其私钥解密Q以获得<q1,q’1,q2,q‘2……qn,q’n>,然后云服务器执行相应的算法如下:a)对于每一个存储在里面的数据条目Fj,云服务器使用如下计算搜索参数Di:b)云服务器计算HDi=H(Di)并以二叉查找算法在评估数据集HPS中搜索HDi以确定HDi是否属于,如果HDi属于HPS说明数据条目Fj符合DUj的搜索要求,则将其存储在临时列表中TRL在遍历了所有云服务器中的医疗数据项以后,一个有ω个项的TRL以<1,,Ei>,<2,,Ej>,<3,,Ek>,…,<ω,,El>,的形式进行存储;c)遍历所有数据条目之后,云服务器得到所有符合查询需求的数据临时列表TRL,云服务器用对称加密算法E()和rq1来加密TRL,得到然后用私钥SKCS作签名最后云服务器把发送给Ui;5.3)当云服务器(3)收到后,Ui通过验证,用密钥rq1和k解密TRL中的项来读取解密的查询结果。所述的E()采用FPGA设计实现的SM4算法,H()采用FPGA设计实现的SM3算法。所述的传感器用户注册过程完成之后,认证中心下线以防止单点攻击。所述的云服务器上设置有生命体征情况安全阈值,通过比较传感器用户采集数据与生命体征情况安全阈值之间的差距,根据差距大小确定是否启动紧急响应模式,启动条件为:首先,云服务器检查时间戳TS2并计算e(g,Sigj)=e(PKDU,H(Q||UJ||TS2.))是否成立来验证签名Sigj,如果成立签名就被接受;然后,云服务器以标准参考值(q1,q′1,q2,q′2,…,qn,q′n)、距离安全距离d以及接收到的数据Fi=(fi1,f′i1,fi2,f′i2,......,fim,f′im)进行如下计算,云服务器计算HDi=H(Di)并在已评估数据集HPS中搜索HDi,若HDi不属于HPS,说明数据条目Fi与标准参考值距离过远,患者情况危险,启动紧急响应模式。与现有技术相比,本发明云医疗数据监护系统的传感器用户由用户身上的各种微小传感器组成,认证中心对传感器用户、数据用户和云服务器进行注册认证,用户的医疗数据及位置信息进行加密和同态运算预处理之后,上传至云服务器的数据中心存储,云服务器能够在不对数据解密的情况下,直接对密文进行查询和生命体征情况分析,数据用户包括患者、医师及研究人员,需要获得原始数据时再通过解密后得到查询结果。本发明监护系统有效保护了患者的个人隐私,并且每条数据的查询时间能够在100ms左右,十分高效。与现有技术相比,本发明云医疗数据监护方法分为系统建立、用户注册、数据采集、查询请求生成、查询结果返回五个阶段。系统建立阶段由认证中心执行,用于选定系统参数;注册认证阶段,认证中心向用户发放私钥并建立相关用户账户;数据采集阶段由用户私钥结合高效匿名算法产生临时身份,发往认证中心;查询生成阶段由数据用户生成查询请求;查询结果返回阶段,云服务器将查询结果返回给数据用户,数据用户使用自己的秘钥解密得到查询结果,获得患者的原始医疗信息。本发明采用了一种改进的合数群上的同态加密方案,通过编码实现密文数据查询功能,能够对任意需要的关键字进行查询,可靠、高效。进一步的,本发明E()采用FPGA设计实现的SM4算法,H()采用FPGA设计实现的SM3算法,使用FPGA作为硬件开发国密SM3、SM4算法有效提高了关键步骤的数据处理速度。进一步的,本发明云服务器上设有生命体征情况安全阈值,通过比较传感器用户采集数据与生命体征情况安全阈值之间的差距,根据差距大小确定是否启动紧急响应模式,紧急响应模式启动后进行紧急救助,同时向患者家属及主治医师发出警报,进而可靠应对危险情况。附图说明图1本发明云医疗数据监护系统结构框图;图2本发明数据查询实现效果图;图3FPGA运算速度对比条形图;图4本发明云医疗数据监护方法流程图;具体实施方式下面结合附图对本发明做进一步的详细说明。参见图1,本发明的云医疗数据监护系统包括:用于提供医疗数据信息的传感器用户1、用于查询医疗数据信息的数据用户2、用于接收数据用户2的查询请求并将传感器用户1的医疗数据信息发送给数据用户2的云服务器3,以及用于对传感器用户1、数据用户2和云服务器3进行注册认证的认证中心4。传感器用户1通过编码对医疗数据信息加密后上传至云服务器3,云服务器3直接对密文进行查询和生命体征情况分析,数据用户2通过其秘钥对密文解密读取查询结果。云服务器3中设置有生命体征情况安全阈值,比较传感器用户1采集数据与生命体征情况安全阈值之间的差距,根据差距大小确定是否启动紧急响应模式。参见图2-4,本发明数据监护方法采用改进的合数群上同态加密方案,用FPGA硬件开发国密SM3、SM4算法来提高关键步骤的数据处理速度,通过编码来实现密文数据查询功能。(1)系统建立将认证中心4作为启动系统的可信第三方,系统启动过程中:首先,认证中心4选择一个安全参数μ,通过执行GEN(μ)并且计算两个秘钥B1=gp1和B2=e(g,g)p1来生成系统参数(G1,G2,P1,P2,e,g,h,N=p1·p2)。下一步,认证中心4决定一个多维权值向量W=(w1,w2,……,wn),每一个数值都对应着相应维度的权重。然后认证中心4决定一个随机数作为私钥SKRC并计算正确的公钥同时认证中心4选择一个对称的加密算法E()和一个安全的哈希函数H(),E()我们采用FPGA设计实现的SM4算法,H()我们采用FPGA设计实现的SM3算法,满足其中,是一个非0模N整数集合。最后,认证中心4公开<N,G,Gt,e,g,h,PKRC,E(),H()>并将<p1,SKRC>秘密保存。(2)用户注册当传感器用户1和数据用户2在认证中心4注册的时候,生成一个随机数作为私钥SK并且计算对应的公钥PK=gSK给认证中心4以计算签名。然后,认证中心4通过安全信道发送<B1,B2,W>给注册的传感器用户1和数据用户2。类似地,当云服务器3注册时也一样,云服务器3选取随机数当作私钥,然后计算相应的公钥发送给认证中心4用作签名,认证中心4计算其中0≤j≤μ且μ是一个大于256位的大整数,认证中心4根据上面的结果构造一组数据集HP={HP0,HP1,......,HPn},认证中心4将数据按照从小到大排列并且将HPS数据发送给云服务器3,<B1,B2>不会发送给云服务器3,传感器用户1注册过程完成之后,认证中心4下线以防止单点攻击。(3)数据采集传感器用户1通过传感器收集用户的实时数据,数据可以被描述为n维向量(xi1,xi2,……,xin)。在此过程中,对患者姓名等检索关键字进行编码,作为n维向量中的前几个向量,为后面密文数据查询的依据。在上传到云服务器3之前,传感器用户1作如下处理:3.1)传感器用户1计算x′i1=xi1+H(B1),x′i2=xi2+H(B1),......,x′in=xin+H(B1),其中B1只有注册过的传感器用户1及数据用户2知晓,防御穷举攻击;3.2)传感器用户1选择n个随机数r1,r2,......,rn,并且计算加密过的搜索索引Fi=(fi1,f′i1,fi2,f′i2,......,fim,f′im),由如下数值构成:3.3)传感器用户1使用私钥SK签名Sig=H(Fi||ID||TS1)SK,其中TS1是当前的时间戳,ID是传感器用户1的身份标识号码,传感器用户(1)将签好名的数据条目<Fi‖ID‖TS1‖Sig>发送给云服务器3;3.4)云服务器3接收到签好名的数据条目之后,首先检查时间戳,然后通过计算e(g,Sig)=e(g,H(Fi||ID||TS1))检验签名Sig;如满足,签名接受,云服务器3将数据Fi存储;(4)查询请求生成已经注册过的数据用户2向云服务器3发送查询请求U1:4.1)U1对有n个特征的变量{y1,y2,......,y3},通过对关键字进行编码后检索特定信息;4.2)U1从用户想查询的数据项决定加权欧氏距离搜索范围和想加密计算请求(q1,q′1,q2,q′2,......,qn,q′n)如下:4.3)U1使用云服务器3公钥PKCS计算4.4)U1使用其私钥计算出签名TS2是时间戳以防止重放攻击,然后U1把加密的数据查询请求<Q‖U1‖TS2||Sigj>发送到云服务器3;(5)计算并返回查询结果Ui收到加密的数据查询请求<Q||Ui||TS2||Sigj>之后,云服务器3执行如下流程提供个人数据查询服务:5.1)云服务器3检查时间戳TS2并计算e(g,Sigj)=e(PKDU,H(Q||Uj‖TS2))是否成立来验证签名Sigj,如果签名成立则被接受;5.2)云服务器3使用其私钥解密Q以获得<q1,q’1,q2,q‘2……qn,q’n>,然后云服务器3执行相应的算法如下:a)对于每一个存储在里面的数据条目Fj,云服务器(3)使用如下计算搜索参数Di:b)云服务器3计算HDi=H(Di)并以二叉查找算法在评估数据集HPS中搜索HDi以确定HDi是否属于,如果HDi属于HPS说明数据条目Fj符合DUj的搜索要求,则将其存储在临时列表中RTL在遍历了所有云服务器中的医疗数据项以后,一个有ω个项的TRL以<1,,Ei>,<2,,Ej>,<3,,Ek>,…,<ω,,El>,的形式进行存储;c)遍历所有数据条目之后,云服务器3得到所有符合查询需求的数据临时列表RTL,云服务器3用对称加密算法E()和rq1来加密TRL,得到然后用私钥SKCS作签名最后云服务器把发送给Ui;5.3)当云服务器3收到后,Ui首先通过验证,用密钥rq1和k解密TRL中的项来读取解密的查询结果。生命体征监护紧急响应设计(1)紧急响应模式系统变量的设置:紧急响应模式下只有云服务器3和数据用户2正常工作,所以很多系统变量都在系统初始化之前存储在云服务器3里面或者由云服务器3自动生成。安全阈值:安全阈值是判断采集端用户是否危险的重要常量,在系统初始化之前便内置在云服务端里面,同时可以配合机器学习,根据大量采集端上传的正常数据优化安全阈值。安全阈值标准参考值(q1,q′1,q2,q′2,…,qn,q′n)和安全距离d的形式存储在云服务器3中。当用户的数据与标准参考值(q1,q′1,q2,q′2,…,qn,q′n)差距过大超过d时,说明用户情况危险。(2)紧急响应模式的启动条件:每当云服务器3收到一组数据时进行如下操作:首先云服务器3检查时间戳TS2并计算e(g,Sigj)=e(PKDU,H(Q||UJ||TS2.))是否成立来验证签名Sigj,如果成立签名就被接受。然后云服务器3以标准参考值(q1,q′1,q2,q′2,…,qn,q′n)、距离安全距离d和刚刚接收到的数据Fi=(fi1,f′i1,fi2,f′i2,......,fim,f′im)来计算下式:计算出结果后云服务器3计算HDi=H(Di)并以已评估数据集HPS中搜索HDi。如果HDi不属于HPS说明数据条目Fi与标准参考值距离过远,患者情况危险,启动紧急响应模式。本发明与以往的技术相比,突出的特点有以下几个方面:1、原有技术手段只能根据医疗数据向量来进行查询,如下表所示;例如查询血压高压在75-80之间、血糖在3-5的病人的数量。但是对于文字关键字,无法进行查询。而本方案通过对文字进行编码的方式,实现了对任意需要的关键字进行查询。如下表所示:本发明能够根据任意关键字来进行查询。例如:查询武汉地区患有HIV的病人数量。2、原有技术只能进行数量上的查询,数据查询端只能得到一个统计学的结果,即,满足查询条件的结果有多少个,而无法直接获得查询结果的原始数据。这在现有的医疗领域是不实用的,考虑到医生有必要得到患者的原始数据来进行诊疗,本发明引入了一个临时列表TRL,通过遍历所有数据条目之后,云服务器得到所有符合查询需求的数据都存储在临时列表TRL中,云服务器对TRL进行加密、签名等操作,发送给查询端,查询端通过使用自己的密钥进行验证、解密,就能够得到患者的原始医疗信息。3、原有技术方案只实现了在外包云上的数据分享,不能对上传的医疗数据进行分析。例如:患者体温如果在41摄氏度以上可认为有生命危险,原有方案的云服务器对此不会作出反应。与此不同的,本发明云服务器上由于设有生命体征情况安全阈值,引入生命体征情况安全阈值实现了对密文数据进行生命体征监护,比较传感器用户采集数据与生命体征情况安全阈值之间的差距,根据差距大小确定是否启动紧急响应模式,紧急响应模式启动后进行紧急救助,同时向患者家属以及主治医师发出警报,进而可靠应对危险情况。4、本发明通过使用FPGA加速核优化了处理速度。检索关键字向量医疗数据向量相关文件(姓名,性别,病史,…)(血压,心律,血糖,…)化验单、CT图、治疗方案等上表所示为云服务器中的数据存储结构,由于相关文件不作为检索关键字,不需要进行同态加密,只进行SM3、SM4加密。但由于CT图等文件往往非常大,每位患者的相关文件往往达到十几GB,如果用软件来加密将造成极大的运算压力,处理速度也不理想。因此,本发明使用FPGA开发了硬件加速核,大大提高了加解密处理能力,有效提升了系统性能。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1