本发明涉及医疗大数据分析与信息安全保障领域,特别是涉及一种具有隐私保护的外包云存储医疗数据聚合的统计分析方法。
背景技术:
移动互联、物联网、云计算、机器人等新兴信息通信技术与信息感知方式的发展和变化,深刻地改变着传统医疗与健康服务模式。在这个过程中,医疗数据逐步放开,大数据带来的智能医疗和精准医疗开始涵盖更多方向,在临床操作的比较效果研究、临床决策支持系统、医疗数据透明度、远程病人监控、对病人档案的先进分析等方面发挥更多重要的作用。同时、随着区域医疗、移动医疗、转化医学等新兴技术的应用和发展,电子病历、电子健康档案、转化基因、重症监护室中的临床检测数据,甚至可穿戴传感器感知的个人健康状态记录等数据都呈现出爆炸式增长。云存储和云计算技术以其存取的便利和成本较低的优势在某种意义上减缓了医疗数据暴增所带来的存储压力。但是在云存储拥有这些优势的同时,也对患者的外包医疗数据带来了新的安全性威胁。
同时对医疗数据进行大数据分析将大数据的压力转变为数据优势,使数十亿条累积医疗数据成为医生诊疗时可随时调用的标准化医疗决策依据,成为提高诊疗效率、减少可避免的人为误差、缓解医疗资源分布不均问题的有效途径。但因健康医疗数据的敏感性,其大部分数据往往都是以密文方式存在。在对密文数据进行分析时由于密文的不可用性,所以需要先对密文数据进行解密再分析,然而再大数据情况下,依次解密密文数据是不现实的。所以如何在密文的情况下对数据进行分析是一个需要解决的问题。
技术实现要素:
本发明的目的在于克服现有技术的不足,提供一种具有隐私保护的外包云存储医疗数据聚合的统计分析方法,在有效保证用户敏感数据机密性和隐私性的同时,将外包加密医疗数据给远程云服务器对其进行同态聚合运算,这样,医疗数据分析中心不仅可以有效验证云服务器外包同态加密数据聚合的完整性和正确性,同时还能仅仅通过两次解密分析出敏感医疗数据的方差和均值,极大的降低了计算开销。
本发明的目的是通过以下技术方案来实现的:
具有隐私保护的外包云存储医疗数据聚合的统计分析方法,包括以下步骤:
s1:系统初始化:
可信中心ta设置该方法中涉及的密码安全参数,包括双线性对,椭圆曲线,以及定义在椭圆曲线上的生成元;同时,可信中心ta为医疗数据分析中心分配公钥和私钥,并且为每个医疗用户产生用于对医疗数据密文进行签名的公私钥对,将私钥通过安全信道分配给对应的用户;
s2:医疗数据加密和签名上传:
设计同态加密算法,使得用户可利用医疗数据分析中心的公钥加密敏感医疗数据,产生密文;同时,设计基于椭圆曲线的同态线性聚合签名算法,对每一个敏感医疗数据的密文产生对应的数字签名;最后,每个用户的敏感医疗数据密文和数字签名外包存储在远程云服务器;
s3:加密医疗数据同态聚合:
在数据聚合阶段,当医疗数据分析中心需要分析某一类敏感医疗数据时,医疗数据分析中心生成随机数,作为挑战信息发送给云服务器,然后云服务器结合挑战信息对该类敏感医疗数据的签名数据进行聚合得到一个单一的签名聚合值;同时云服务器利用加密系统具有的加法同态和乘法同态的特性,将每个密文数据相乘得到一个密文聚合值,并且让每个密文和自身执行一次双线性对运算得到的结果再依次相乘得到另一个密文聚合值;最后云存储端把签名聚合值和聚合密文一起发送给医疗数据分析中心;
s4:验证和同态聚合数据解密:
利用基于椭圆曲线的签名验证算法具有批量验证的特性,医疗数据分析中心能够仅仅通过三次双线性对运算就可以验证出数据的完整性;然后对聚合数据进行解密,得到所有医疗数据的累和值,以及原始的平方和;
s5:医疗统计分析:
医疗数据分析中心通过统计分析,得到该类敏感医疗数据的方差和均值,从而分析出用户的健康状况。
步骤s1中,具体初始化步骤如下:
s101:可信中心ta设置双线性对映射e:ga×ga→gb,其中ga为n阶乘法循环群,g为ga的生成元,gb是双线性对映射的像集合;选取长度相等的大素数p1和p2,满足n=p1p2;取ga的p1阶子群的生成元
s102:定义在有限域fp上的椭圆曲线e,其中p是大素数,并基于该椭圆曲线设置另外一个双线性对映射:
设上传到云服务器的具有某一类型医疗数据的用户数量为n,对于第i个用户,可信中心为其产生私钥zi∈zq,并计算公钥ui=ziv,设置两个抗碰撞的哈希函数h1:{0,1}*→g1,
步骤s2中,当第i个用户要向云服务器上传医疗数据时,首先利用公钥,采用同态加密算法对医疗数据进行加密生成密文;其次根据医疗数据的类别使用私钥对密文数据进行数字签名;最后把密文和对应的签名数据上传到云服务器;具体的加密和签名步骤包括:
s201:对于需要加密的消息mi,要求mi所取最大值t小于p2,选择随机数s∈zn,然后计算密文
s202:对密文计算其数字签名σi=(zi+h2(ci))h1(type),其中type是医疗数据的类型;
s203:把签名数据和密文数据{σi,ci}一起发送到云服务器。
步骤s3中,当医疗数据分析中心需要分析某一类型的敏感医疗数据时,通过伪随机数发生器生成含l个伪随机数的随机序列{t1,t2,…,tl-2,α,β},把医疗数据类型type和随机数一并作为挑战信息发送给云服务器;然后云服务器根据type类医疗数据上n个用户的密文数据,和这些数据对应的签名以及用户的公钥,分别进行聚合;具体聚合流程包括以下步骤:
s301:云服务器运用改进的bgn算法的同态加性质对n个加密数据进行聚合:
s302:运用改进的bgn算法的同态乘性质和双线性对的运算性质对每个密文enc(mi,si)进行双线性对运算后再聚合:
s303:基于聚合值和挑战信息,云服务器计算新的随机数tl-1=h2(sc+α)和tl=h2(qsc+β),进一步基于随机序列{t1,t2,…,tl-2,tl-1,tl}对n个签名数据进行聚合
步骤s4中,当医疗数据分析中心接收到云服务器发送的聚合数据后,医疗数据分析中心执行数据完整性验证并且对聚合密文sc和qsc进行解密,具体包括以下步骤:
s401:计算tl-1=h2(sc+α)和tl=h2(qsc+β),然后聚合随机数
s402:一旦验证方程成立,医疗数据分析中心采用改进的pollard的lambda解密方法,即限制明文m在t内,利用私钥p1进行有条件的穷举暴力破解,在时间复杂度情况为
步骤s5中,医疗数据分析中心根据医疗数据统计分析方法,对医疗数据进行方差分析:
本发明的有益效果是:
本发明提出了具有隐私保护的外包云存储医疗数据聚合的统计分析方法,此发明方法采用改进的bgn同态加密算法保证用户存储在云存储上的医疗数据的机密性。同时根据改进的bgn算法的加法同态性质和乘法同态性质,构建了密文聚合方法,使得医疗数据分析中心只需通过两次解密就可以对数据进行方差分析和均值分析。并且大部分的计算都可以在云端完成,极大地减少了医疗数据分析中心的计算压力,提高了计算效率。另一方面,为了实现可验证的功能,本发明方法设计了一个基于椭圆曲线的签名验证方法来保证用户医疗数据的完整性。在用户上传密文医疗数据到云端时需要先对密文数据进行签名再上传。当医疗数据分析中心需要验证医疗数据的完整性时,医疗数据分析中心根据云端聚合的签名值和密文以及用户公钥执行验证方程,只需通过三次双线性对运算就可以判断出数据在处理和传输过程中有没有遭到篡改、替换和销毁。本发明方法在医疗大数据分析与信息安全融合领域具有很好的应用前景。
该发明方法在有效保证用户敏感数据机密性和隐私性的同时,可将外包加密医疗数据给远程云服务器对其进行同态聚合运算。这样,医疗数据分析中心可有效验证云服务器外包同态加密数据聚合的完整性和正确性,并且医疗数据分析中心只需通过两次解密计算,就能获得对应的所有用户的原始医疗数据的方差和均值等统计分析结果,这样极大地降低了医疗数据分析中心的计算开销。
具体实施方式
下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种技术方案:一种具有隐私保护的外包云存储医疗数据聚合的统计分析方法,该发明方法具体包含以下五个步骤:系统初始化、医疗数据加密和签名上传、加密医疗数据同态聚合、验证和同态聚合数据解密、医疗统计分析。
系统初始化阶段:可信中心ta设置该发明方法中涉及的密码安全参数,包括双线性对,椭圆曲线,以及定义在椭圆曲线上的生成元。同时,可信中心ta为医疗数据分析中心分配公钥和私钥,并且为每个医疗用户产生用于对医疗数据密文进行签名的公私钥对,将私钥通过安全信道分配给对应的用户。
医疗数据加密和签名上传:该发明方法设计了同态加密算法,使得用户可以利用医疗数据分析中心的公钥加密敏感医疗数据,产生密文;同时,该发明方法设计了基于椭圆曲线的同态线性聚合签名算法,对每一个敏感医疗数据的密文产生对应的数字签名。最后,每个用户的敏感医疗数据密文和数字签名外包存储在远程云服务器。
加密医疗数据同态聚合:在数据聚合阶段,当医疗数据分析中心需要分析某一类敏感医疗数据时,医疗数据分析中心生成随机数,作为挑战信息发送给云服务器,然后云服务器结合挑战信息对该类敏感医疗数据的签名数据进行聚合得到一个单一的签名聚合值。同时云服务器利用加密系统具有的加法同态和乘法同态的特性,将每个密文数据相乘得到一个密文聚合值,并且让每个密文和自身执行一次双线性对运算得到的结果再依次相乘得到另一个密文聚合值。最后云存储端把签名聚合值和聚合密文一起发送给医疗数据分析中心。
在验证和聚合数据解密阶段,用本发明设计的基于椭圆曲线的签名验证算法具有批量验证的特性,医疗数据分析中心能够仅仅通过三次双线性对运算就可以验证出数据的完整性。然后对聚合数据进行解密,得到所有医疗数据的累和值,以及原始的平方和,进而医疗数据分析中心通过统计分析,得到该类敏感医疗数据的方差和均值,从而分析出用户的健康状况。
具体的,本发明的步骤分为五个部分:
系统初始化:可信中心ta生成用于加密和签名验证的系统公共参数。然后把一些秘密参数发送给医疗数据分析中心,以及对应用户。具体初始化步骤如下:
(1)可信中心ta设置双线性对映射e:ga×ga→gb,其中ga为n阶乘法循环群,g为ga的生成元,gb是双线性对映射的像集合。选取长度相等的大素数p1和p2,满足n=p1p2。取ga的p1阶子群的生成元
(2)定义在有限域fp(p是大素数)上的椭圆曲线e,并基于该椭圆曲线设置另外一个双线性对映射:
医疗数据加密和签名上传:当第i个用户要向云服务器上传医疗数据时,首先需利用公钥,采用同态加密算法对医疗数据进行加密生成密文。其次根据医疗数据的类别使用私钥对密文数据进行数字签名。最后把密文和对应的签名数据上传到云服务器。具体的加密和签名步骤如下:
1、对于需要加密的消息mi,要求mi所取最大值t小于p2,选择随机数s∈zn,然后计算密文
2、然后对密文计算其数字签名σi=(zi+h2(ci))h1(type),其中type是医疗数据的类型。
3、最后把签名数据和密文数据{σi,ci}一起发送到云服务器。
加密医疗数据同态聚合:当医疗数据分析中心需要分析某一类型的敏感医疗数据时,通过伪随机数发生器生成含l个伪随机数的随机序列{t1,t2,…,tl-2,α,β},把医疗数据类型type和随机数一并作为挑战信息发送给云服务器。然后云服务器根据type类医疗数据上n个用户的密文数据,和这些数据对应的签名以及用户的公钥,分别进行聚合。具体聚合流程如下:
(1)首先云服务器运用改进的bgn算法的同态加性质对n个加密数据进行聚合:
(2)再运用改进的bgn算法的同态乘性质和双线性对的运算性质对每个密文enc(mi,si)进行双线性对运算后再聚合:
(3)基于聚合值和挑战信息,云服务器计算新的随机数tl-1=h2(sc+α)和tl=h2(qsc+β),进一步基于随机序列{t1,t2,…,tl-2,tl-1,tl}对n个签名数据进行聚合
验证和聚合数据解密:当医疗数据分析中心接收到云服务器发送的聚合数据后,医疗数据分析中心执行数据完整性验证并且对聚合密文sc和qsc进行解密。
(1)首先计算tl-1=h2(sc+α)和tl=h2(qsc+β),然后聚合随机数
(2)一旦验证方程成立,医疗数据分析中心采用改进的pollard的lambda解密方法,即限制明文m在t内,利用私钥p1进行有条件的穷举暴力破解,在时间复杂度情况为
医疗统计分析:最后医疗数据分析中心根据医疗数据统计分析方法,对该医疗数据进行方差分析:
均值分析:
因此本发明方法就实现了具有隐私保护的外包云存储医疗数据聚合的统计分析。
正确性证明:
本发明提出了具有隐私保护的外包云存储医疗数据聚合的统计分析方法,此发明方法采用改进的bgn同态加密算法保证用户存储在云存储上的医疗数据的机密性。同时根据改进的bgn算法的加法同态性质和乘法同态性质,构建了密文聚合方法,使得医疗数据分析中心只需通过两次次解密就可以对数据进行方差分析和均值分析。并且大部分的计算都可以在云端完成,极大地减少了医疗数据分析中心的计算压力,提高了计算效率。另一方面,为了实现可验证的功能,本发明方法设计了一个基于椭圆曲线的签名验证方法来保证用户医疗数据的完整性。在用户上传密文医疗数据到云端时需要先对密文数据进行签名再上传。当医疗数据分析中心需要验证医疗数据的完整性时,医疗数据分析中心根据云端聚合的签名值和密文以及用户公钥执行验证方程,只需通过三次双线性对运算就可以判断出数据在处理和传输过程中有没有遭到篡改、替换和销毁。本发明方法在医疗大数据分析与信息安全融合领域具有很好的应用前景。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。