移动医疗中一种匿名代理可追踪隐私保护方案
2020-06-08罗恩韬段国云朱小玉
罗恩韬 段国云 周 雷 朱小玉
1(湖南科技学院电子与信息工程学院 湖南永州 425199)2(湖南科技学院信息与网络中心 湖南永州 425199)3(美国韦恩州立大学计算机科学系 美国密歇根底特律 48202)4(中南大学信息科学与工程学院 长沙 410083)
随着互联网和移动医疗系统的飞速发展,如何利用移动医疗对患者进行远程问诊和治疗逐渐成为人们研究的热点[1-4].医生可根据患者佩戴的移动医疗终端设备(例如可穿戴设备)所收集的数据直接对医疗用户开具远程电子处方和建立电子病历,从而进行医疗诊断;同时用户也可以根据电子检验报告对自身有序地进行健康检查.移动医疗有效地缓解了患者就医的困难,共享了优势医疗资源,也提高了医生和医护人员的工作效率.
在移动医疗诊断过程中,医生的电子处方、电子病历等电子医疗档案中通常记录了医疗用户从就医到诊疗结束所有的有关病情变化、检查报告、治疗过程等敏感隐私数据.如果这些隐私数据被非法获取,将极有可能对医疗用户的个人隐私造成不可预计的后果.例如:环法自行车车手个人的医疗健康信息和治疗过程被视为其医疗团队的绝对机密.因此,为保护医疗用户个人的隐私,用户的个人医疗数据有必要只能被少数有治疗权限的医生来进行查看和处理,同时为保证患者的隐私不被泄露,医生在治疗过程中需要对治疗方案进行电子签名,以保证对医疗事故的问责和对治疗方案的长期可追踪性.
然而在某些医疗资源有限的情况下,某一类专家医生并不能随时随地的亲自对医疗用户提供服务,这时该类医生可委托一名代理医生(合法授权医生)来帮助处理授权范围内的医疗事务[5].为避免代理医生越权做出非法行为,医生可以设置代理医生对医疗用户隐私数据的访问权限,同时医疗用户也可以通过验证电子签名来核实代理医生所提供的医疗方案的合法性与有效性,从而消除网络攻击者对医疗方案进行篡改而带来的安全隐患.
1 相关工作
目前在移动医疗应用中关于隐私保护的研究,很多研究者提出了自己的研究成果.Waters[6]提出一种基于身份的加密方案,Kim等人[7]提出了一种自代理签名方案,虽然代理签名可以与其他签名技术结合产生适应环境的数字签名方案,然而这种签名对代理的隐私缺少有效的保护.随后Yu等人[8]提出了一种可证安全的匿名代理签名方案,该方案是代理签名和环签名的有机结合,实现了代理签名者的身份匿名性,保护了代理签名者的隐私,但是该方案由于不满足身份可追踪且签名验证效率较低.Li等人[9]在此基础上给出了一个标准模型下基于身份的签名方案,但这种签名方式比较单一,不能适应多种环境下的签名.同时以上方案仅仅考虑了对数据的签名,并没有考虑对权限的访问控制,以及如何有效地找到一个匹配的合法签名者,因此应用范围受到了限制.
由此,本文提出一种匿名代理可追踪隐私保护方案,重点对基于属性的代理授权、匿名代理和签名追踪等问题展开研究.创新点有3个方面:
1) 提出用户身份结合用户属性特征,只有满足授权医生的特定属性或指定某种特定控制策略的代理医生才可以得到授权并签名.
2) 提出通过授权中心对代理医生进行匿名化处理,从而保证代理医生的信息不被泄漏,为保证医疗用户对代理医生的治疗方案的可信性,用户不能区分授权医生与代理医生工作的差异性.
3) 提出一种可追踪匿名代理医生的签名方法,在代理医生匿名的情况下,如果签名出现争议,可信授权中心和原始签名者可以共同揭示代理医生的身份,从而保证原始签名者对代理医生工作的可追踪性.
2 预备知识
2.1 双线性映射
设G0和G1是阶为素数p的2个乘法循环群,g是G0的生成元,e:G0×G0→G1.双线性映射e具有3个性质:
1) 双线性.对于任意u,v∈G0和任意的a,b∈p,有e(ua,vb)=e(u,v)ab.
2) 非退化性.e(g,g)是群G1的生成元,且有e(g,g)≠1.
3) 可计算性.对于任何u,v∈G0,均存在有效算法计算e(u,v).
2.2 访问控制结构
令{P1,P2,…,Pn}是参与方集合.集合A⊆2{P1,P2,…,Pn}单调是指:对于任意B,C,如果C⊆B且B⊆A,则C⊆A.访问结构是{P1,P2,…,Pn}的非空子集A.例如,A⊆2{P1,P2,…,Pn}{∅},集合A中的集合元素被称为授权集,不在集合A中的集合被称为未授权集.本文中参与方是属性,因此访问结构A包含了授权属性集,如果没有特别强调,本文中的访问结构指单调访问结构.
2.3 安全性假设
判定性双线性问题及假设DBDH(secisional bilinear Diffie-Hellman)[10]:
假设g是乘法循环群G0的一个生成元,对于任意的元素a,b,c∈p,给定五元组(g,ga,gb,gc,e(g,g)abc),那么不存在算法在多项式时间内以不可忽略的优势计算出一个整数z∈p,使得e(g,g)z=e(g,g)abc成立.则称该假设满足DBDH假设.
3 系统模型和安全模型
3.1 系统模型
本文方案模型主要由5个部分组成:云端医疗数据存储中心(data center, DC)、可信授权中心(trusted authority, TA)、医生(data owner doctor, DO)、代理医生(data proxy doctor, DP)、医疗用户(medical users, MU).
1) 云端医疗数据存储中心DC.负责用户电子医疗病例、电子健康档案的存储.
2) 可信授权中心TA.负责系统初始化以及密钥生成、密钥分发等.
3) 医生DO.负责对用户医疗数据的加密、访问控制策略的设立.只有代理医生的特征属性满足DO的访问控制策略才能获得解密密钥(例如:代理医生必须是满足骨科副主任医生或者主治医生的条件,而实习医生是无法查看医疗用户的医疗档案),从而解密MU的医疗隐私文件.本文假设授权医生为Alice,同时作为对医疗方案的原始签名者.
4) 代理医生DP.由DO进行授权,利用自身属性与DO设置的访问控制策略中的属性进行匹配,如果匹配成功,则代理医生可以获得用户医疗数据的解密密钥,解密用户的医疗数据,进而提供医疗方案;同时,需要对自己提供的医疗方案进行电子签名以保证在出现医疗事故时可以追溯.本文假设Bob为代理医生,为医疗方案代理签名者.
5) 医疗用户MU.负责向医生DO提供自身的医疗数据,同时可验证医疗方案签名的真实性.本文假设Cindy为医疗请求用户.
在本文中,假设TA和医生DO是完全可信的,代理医生DP是完全不可信的,即代理医生可能串通、共谋,非法访问未经授权的数据.而DC是诚实而好奇的[11],即DC会按照既定协议进行工作,但是不排除它们因为好奇,而试图从获取的信息中采用更多的技术手段去窥视用户更多的隐私信息.因此医疗用户在上传自身的医疗数据时需要对其加密.系统架构模型如图1所示.
Fig. 1 Architecture model of mobile healthcare system图1 移动医疗系统架构模型
3.2 算法定义
本方案由7个多项式算法构成,算法定义:
1)Setup(e,g,k,α,β)→(PK,MK).
系统初始化算法.e为双线性映射,g,k,α,β分别为输入的全体属性集与安全参数,PK,MK分别为系统公钥和系统主密钥.
2)KeyGen(xi,g)→xig.
密钥生成算法.选取随机数xi∈作为其私钥,并计算输出其相对应公钥Yi=xig.
3)Encrypt(PK,mw,τ)→CT.
加密算法.输入授权委托书mw,访问控制策略τ,系统公钥PK,输出密文CT.
4)KeyGen(MK,S)→SK.
解密密钥生成算法.输入系统主密钥与自身的特征属性,生成解密密钥SK.
签名算法.合法代理医生计算签名组件并生成签名.
签名验证.当医疗用户接收到代理医生治疗方案时,医疗用户将可验证签名的有效性.
4 方案实施
本方案的安全性基于CP-ABE[12-14]方案和双系统加密(dual system encryption)的技术框架.假设μ={μ1,μ2,…,μn}表示代理签名者的属性集合,Agenti(1≤i≤n)为某一具体的代理签名者.
4.1 系统初始化阶段
TA随机选择取阶为素数p,生成元为g的群G0,有双线性对映射e:G0×G0→G1,定义散列函数H:{0,1}*→G0,该可将任意长度的字符串转换G0成上的随机数,随机选择α,β∈p,生成系统公钥PK={G0,g,h=gβ,e(g,g)α},系统主密钥MK=(β1,gα).
4.2 密钥生成阶段
医生Alice选取随机数x0∈p作为其私钥,同时计算其公钥为Y0=x0g.类似地,每一个代理医生选取xi∈p作为其私钥,计算公钥为Yi=xig.
4.3 加密解密阶段
在该阶段进行之前,Alice需要利用自身访问策略对用户医疗数据进行加密并将访问策略树上传到可信授权中心进行存储,代理权的授予是必须在TA上通过Alice属性匹配进行,只有当代理医生的特征属性符合Alice设定的访问控制策略.例如,代理医生必须满足{三甲医院、骨科、副主任或者主治医生}才能获取Alice的授权,查询医疗用户的医疗档案,进而为医疗用户提供医疗方案.
1) 医生构造签名授权书.Alice作为原始签名者对明文mw进行计算,其包含对代理签名授权的有效时间,原始签名者的身份,所有代理签名者的身份以及签署消息的范围等信息;产生随机数r∈计算R=rp,λ=rx0H0(mw,R) modp,并把{mw,R,λ}发送到可信授权中心.
2) 医生加密用户医疗数据.为保证医疗用户的隐私安全,Alice需要对用户的医疗数据进行加密,加密算法在访问结构τ下对mw进行加密,过程如下:
② 算法从根节点R开始选择随机数s∈p,并设置qR(0)=s.然后,算法随机选择多项式qR上的dR个节点来完全定义qR.对于其他的顶点x,令qx(0)=qparent(x)(index(x)),随机选择其他dx个顶点来完全定义qx.假设τ中所有叶子节点的集合为Y,那么在访问控制树τ下可以得到医疗数据密文CT:
3) 代理医生Bob访问权限密钥生成:代理医生运行密钥生成算法KeyGen(MK,S),S为输入时属性集合,算法首先选择随机数r∈p,然后对每一个j∈S选择随机数rj∈p,随后计算出解密密钥SK:
SK={D=g(α+r)β,∀j∈S:
4) 代理医生Bob对医疗数据的解密:解密算法Decrypt(PK,CT,SK)是一个递归算法.为了便于讨论,本文提出解密算法的最简单形式,首先定义递归算法Decrypt(PK,CT,x),密文CT与属性集合S相关联,τ中的节点x作为输入.
当节点x是叶子节点,令i=att(x),如果i∈S,那么:
如果i∉S,则DecryptNode(CT,SK,x)=⊥.
4.4 生成签名阶段
在获取了访问授权书以后,代理医生就能够计算其代理私钥,并根据代理授权书中的定义来代替原始签名者Alice对医疗用户提供治疗方案以及对文件进行签名.
1) 签名私钥的生成.在得到mw以后签名者随机选取k∈计算签名私钥:
psks=k(λ+xsH0(mw,R)).
2) 签名.签名的过程只需要计算4个签名组件即可:
4.5 签名验证阶段
当医疗用户接收到代理医生治疗方案时,医疗用户将首先验证签名的有效性.根据代理签名者的公钥Y0,Y1,…,Yn和给定的匿名代理签名σ,验证者验证是否成立:
如果等式成立,验证者接受该治疗方案,否则,认为该方案存在不可信性,可拒绝相信该治疗方案.
4.6 正确性验证
在4.4节中,代理医生在获取代理权后即能够对文件进行签名,对于本方案提出签名的正确性可以通过3个等式直接证明:
1)tiP=(xih0(mw,Ki)+ki)P=h0(mw,Ki)×xiP+kiP=Yih0(mw,Ki)+Ki;
2)λP=(r+x0H0(mw,R))P=rP+H0(mw,R)x0P=R+H0(mw,R)Y0;
5 实验分析
5.1 性能分析
本节对本文所提方案的安全性和计算性能与Yu等人[8]提出的方案进行比较,其比较结果如表1和表2所示,其中e表示双线性映射,Pa和Pb分别表示群乘法运算和加法运算,n标识代理签名者的个数,k表示属性的个数.
Table 1 Safety Comparison表1 安全性比较
Table 2 Performance Comparison表2 性能比较
从表2中可以看出,在密钥产生阶段,2个方案具有相同的效率,在代理授权阶段,本文方案比文献[8]的方案效率低,但是在本方案中授权阶段是在可信授权中心中完成,并不占用签名者和代理者的计算资源.在签名产生和验证阶段,当n>2时,本文方案的计算效率要高于Yu的方案,并且随着n的增大,本文方案效率优势就越能显现出来.为了实现方案的匿名性,代理签名者的个数要远大于2.由此可见,本文方案的计算效率要优于Yu等人[8]的匿名签名方案.
5.2 代理医生参与人数预期模型
为衡量本文模型的有效性,本文模拟在时间t内的代理医生参与人数,以及代理医生为满足计算需求能够提供的有效计算资源数.
证毕.
5.3 代理提供资源预期模型
证明. 假设所有代理医生可以提供预期总资源E{R(t)}=1,那么:
根据E(Nq(t))=λtp,单个代理医生提供的计算资源为E(rq(t))=E{R(t)}λtp,并满足(Rλtp)
证毕.
根据真实场景,将时间考虑在60 s,120 s,180 s,240 s,300 s的代理医生的参与人数和单个代理医生可提供的计算资源,计算模型仿真结果如表3,4与图2所示.
Table 3 Expected Number of Participants when E(Nq(t))=λtp表3 E(Nq(t))=λtp时的参与人数预期
Table 4 Provided Resources of Expectations when E(rq(t))=Rλtp表4 E(rq(t))=Rλtp时的提供资源预期
Table 4 Provided Resources of Expectations when E(rq(t))=Rλtp表4 E(rq(t))=Rλtp时的提供资源预期
λp=0.3p=0.7t=60t=120t=180t=240t=300t=60t=120t=180t=240t=3000.50.1110.0560.0370.0280.0220.0480.0240.0160.0120.0100.90.0620.0310.0210.0150.0120.0260.0130.0090.0070.0051.30.0430.0210.0140.0110.0090.0180.0090.0060.0050.0041.70.0330.0130.0110.0080.0060.0140.0070.0050.0040.0032.10.0260.0130.0090.0060.0050.0110.0060.0040.0030.0022.50.0220.0110.0070.0060.0040.0100.0050.0030.0020.0022.90.0190.0100.0060.0050.0040.0080.0040.0060.0020.001
Fig. 2 Experimental results tunity computing model图2 机会计算模型实验
Fig. 3 Computing efficience time of mobile healthcare system图3 移动医疗系统计算时间效率
图2(a)(b)可以看出,在移动医疗进行医疗诊断高峰密集的时刻,当医生可以提供服务的计算资源紧张时,可以通过降低成为代理医生的概率p,做到高效服务.图2(c)(d)可以看出,移动医疗进行医疗诊断高峰密集的时刻,计算资源闲置时,可通过适当提高成为代理医生的概率p,提供优质服务,从而促进移动医疗更有效的开展.
5.4 加密解密时间实验
本文假设医疗用户在不同的移动医疗就医场景中会有不同的医疗属性,例如心血管疾病、神经疾病、泌尿疾病等.一般情况下,用户的疾病信息特征是可以被描述并且是可收敛的,因此,本文假设用户疾病特征属性在有效的可收敛范围内依次递增,系统在初始化时间、密钥生成时间、加密时间和解密时间的运行效率.
图3(a)说明系统公钥生成时间仅仅与双线性对计算时间有关,其中的各个计算参数与疾病的特征没有必然联系,因此用户的初始化时间稳定.
图3(b)说明用户子密钥的计算时间与用户疾病特征紧密相关,随着用户使用多种疾病特征来设置访问策略时,子密钥的计算时间也会线性增长,同时密钥的安全强度也随之加大,但是这一部分的计算时间因为在远端的服务器进行计算,因此不会影响终端医疗用户的使用体验.
图3(c)说明医疗用户明文的加密时间在访问策略树的层次深度接近的时候,加密时间差别不大.这是因为医疗用户在根据疾病特征来设置访问策略时,根据实际应用场景,可选的疾病特征属性的组合结构一般不会过于复杂,因此在策略树的广度和深度上差别不会太大,加密时间较为接近,在终端上仅仅只需要1 s的计算时间,加密明文效率较高.
图3(d)说明解密时间的变化,在移动医疗网络中某些时刻,例如用户的远程医疗和紧急救助在授权和治疗时间上,均需要快速响应能力,从而保证用户的生命安全.在本方案中,以目前的芯片处理能力,密文可以在0.6 s内解密,可以做到在保证医疗用户数据安全的同时,为医疗用户获得及时的诊疗方案赢得时间.
6 结束语
本文重点研究在移动医疗系统中基于属性加密访问控制方法对签名代理进行授权,通过属性加密以及对代理身份的匿名实现对用户以及代理的隐私保护,并在出现争议的时候能够追踪到非授权用户,解决了以往方案中无法同时满足身份可追踪与利用属性匹配成为授权代理的问题.目前将属性加密机制应用到医疗签名中的研究还处在初级阶段[15],在应用时还有更多的实际需求,比如在追踪到恶意用户以后如何在不更新全部访问策略的情况下对用户的权限进行撤销,并保证数据的安全性和机密性.同时结合区块链与同态加密技术、多匿名器保护技术[16-17]进行更为深层次的研究,防止未授权用户的非法访问,也是本文另一个未来研究的方向.