医疗云环境下的隐私增强属性访问控制系统
作者: 王朋辉 柳欣 鲁玉莹 张汇 刘源 尚圆圆
摘要:电子健康记录(EHR, Electronic Health Record)是医疗云环境下的典型应用,在云端共享此类数据有助于为患者提供远程医疗服务。然而,已有的同类系统较少同时考虑用户属性隐藏和用户属性废除这两个关键性问题。借鉴广播属性加密(B-ABE, Broadcast ABE)的思想,对Nishide等的属性加密方案进行扩展,得到支持属性隐藏的B-ABE方案。然后,基于该方案设计了在医疗云环境下共享EHR的属性访问控制系统。新系统能对用户的属性进行隐藏,增强了对患者的隐私保护。同时,患者能自主废除用户的访问权限,且无须对系统公开参数和其他用户的私钥执行更新。
关键词:电子健康记录; 访问控制; 属性加密; 广播加密; 属性废除
中图分类号:TP309.7 文献标识码:A
文章编号:1009-3044(2022)10-0027-02
1 引言
电子健康记录(EHR, Electronic Health Record)是对患者相关信息(如健康指标、会诊报告、检查报告等)的一种收集,它有助于以高效的方式实现对健康信息的共享[1]。随着医疗云设施的建设与应用,越来越多的信息加入EHR中。各大医院逐步开通了云上医院、电子病历和远程诊疗[2]等服务,使患者享受便捷的医疗服务成为可能。此外,在设计EHR系统时,必须充分考虑防止患者敏感信息泄露、允许患者对个人的EHR进行访问控制等安全问题。
属性加密(ABE, Attribute-Based Encryption)是一种高级公钥加密技术,并且逐渐成为为各类云应用系统提供用户隐私保护和细粒度访问控制机制的基础工具[3-4]。在文献[1]中,Narayan等提出基于ABE技术构造的EHR系统框架,该框架的特点是支持用户废除和关键字搜索。在文献[2]中,巫光福等提出基于联盟链的EHR共享框架,旨在利用联盟链技术解决EHR的隐私保护和数据共享问题。在文献[5]中,屠袁飞等提出基于体域网的EHR系统,该系统引入了“先匹配后解密”的机制,提高了解密过程的效率。
本文认为,已有同类系统较少同时关注用户属性隐藏和属性废除这两个关键问题,使系统的实用性得到削弱。本文借鉴广播属性加密(B-ABE, Broadcast ABE)的思想对Nishide等的ABE方案进行扩展,得到支持属性隐藏的B-ABE方案。然后,基于该方案构造了可以在医疗云环境下为患者提供更强隐私保护的EHR访问控制系统。新系统的优点是:①支持属性隐藏,即任何人无法通过访问策略对患者的病情做出准确推断。②支持用户废除,即患者有权收回用户访问其EHR数据的权利。③可证明满足正确性、机密性和数据隐私性质。
2 预备知识
2.1 双线性群环境
我们定义如下的双线性群环境[(G,GT,G,p,e)]。其中,[G]表示素数[p]阶椭圆曲线群,[GT]表示素数[p]阶乘法群,[G]表示在群[G]上随机选取的基点。[e:G×G→] [GT]是一个可计算的函数,它满足双线性和非退化性[6]。
2.2 ABE以及Nishide等人的属性隐藏技术
在ACNS2008会议上,Nishide、Yoneyama和Ohta[7]提出允许对访问控制策略进行隐藏的ABE方案(简称NYO方案)。在该方案中,定义属性全集[{A1,A2,...,An}]。用户拥有属性集[L=[L1,...,Ln]]以及对应的解密私钥[SKL]。假设[DO](Data Owner)希望分享敏感消息[M],他定义访问策略[W=[W1,...,Wn]],并且产生密文[CT=(W,C,] [C0,{Ci,ti,1,Ci,ti,2}1≤ti≤ni1≤i≤n)]。在[CT]中,对于属性[Ai]的每个可能取值[vi,ti],存在对应的密文元素[Ci,ti,1,Ci,ti,2]。用户能成功执行解密的条件是:对于[i=1,...,n],满足[Li∈Wi]。因此,非授权用户无法推断DO的属性值。
2.3 基于广播加密的用户属性废除技术
在文献[8]中,Attrapadung等提出广播属性加密技术。用户拥有属性集L和唯一的下标ID。DO采用底层广播加密方案中的封装密钥K对敏感信息(如EHR)进行隐藏,并且利用底层的ABE方案实施访问控制策略。用户的解密条件是:L|=W(即属性集L满足访问控制策略W),同时,IDÎS。其中,S表示DO维护的未被废除的用户下标集合。
3 访问控制系统的详细设计
3.1 系统模型定义
本文系统中存在以下类型的参与方:医疗中心(HC, Healthcare Center)、DO、用户(U, User)和云服务器(CS, Cloud Server)。其中,HC负责为DO和U颁发属性解密私钥,并且产生系统公开参数。DO是EHR的所有者,有权定义访问控制策略、对EHR执行加密和对U执行废除操作。U是EHR的访问者,对应于医护人员和医学研究者。
3.2 算法定义
本文系统由以下算法构成:①[EHR-] [Setup(1κ).]该算法由HC执行,用于产生公开参数[PK]和主密钥[MSK]。②[EHR-KeyGen] [(L).]该算法由HC执行,用于为U产生属性解密私钥[SKID,L]。③[EHR-Outsource(M,W).]该算法由DO执行,产生关于消息[M](即EHR)的密文[CT]。④[EHR-Access(PK,L,] [SKID,L,CT).]该算法由U执行,用于对[CT]解密。⑤[EHR-Revoke(S,ID).]该算法由DO执行,用于撤销下标为[ID]的U的访问权限。
3.3 支持属性隐藏的B-ABE方案
本文思路是将Boneh-Gentry-Waters广播加密方案(简称BGW方案)[9]和NYO方案结合起来。这样做的优点是,利用NYO方案可以较好地对用户属性进行隐藏。同时,利用BGW方案实现属性废除。DO需要在本地维护存放由合法用户下标构成的列表S。当需要废除某个用户时,DO直接将该用户的下标从S中删除,而无须请求HC更新系统公开参数,也无须为剩余用户更新属性解密私钥。在下面的描述中,假设属性全集的规模为[N],每个属性[Ai]有[Ni]个可能的取值,且系统中的用户数量为[n]。
Setup. HC执行以下步骤:
(1)产生2.1节定义的双线性群环境[(G,GT,G,p,e)]。
(2)选取[α∈Zp],对于[i=1,...,n,] [n+2,...,2n],计算[Gi=αi⋅G]。选取[γ∈Zp],设置[V=γ⋅G]。对于[i=1,...,N],选取[{ai,ti,bi,ti∈ℤ*p}1≤ti≤Ni],选取[{Ai,ti∈G}1≤ti≤Ni]。
(3)设置[PK=((G,GT,G,p,e),G1,...,] [Gn,Gn+2,...,G2n,V,{ai,ti⋅Ai,ti,bi,ti⋅Ai,ti}1≤ti≤Ni1≤i≤N),][MSK=(α,γ,{ai,ti,bi,ti}1≤ti≤Ni1≤i≤N)]。
KeyGen. 假设[L=[L1,...,LN]]为用户的属性列表,假设用户下标为[ID],为了产生对应的解密私钥[SKID,L],HC执行以下步骤:
(1)对于[i=1,...,N],选取[ri∈Zp],设置[r=i=1Nri]。
(2)计算[D(1)=(-r+αIDγ)⋅G]。对于[i=1,...,N],设置[D(2)i,0=ri⋅G+ai,tibi,tiλi⋅Ai,ti,] [D(2)i,1=ai,tiλi⋅G,D(2)i,2=bi,tiλi⋅G],其中[Li=vi,ti]。
(3)设置[SKID,L=(D(1),{D(2)i,0,D(2)i,1,] [D(2)i,2}1≤i≤N)]。
Encrypt. 假设DO希望利用访问控制策略[W=[W1,...,WN]]对消息[M∈GT]执行加密。为此,他执行以下步骤:
(1)选取[s∈Z*p],设置[C(0)=M⋅] [e(G1,Gn)s,C(1)=s⋅G,C(3)=s⋅(V+j∈SGn+1-j)]。
(2)对于[i=1,...,N],选取[{si,ti∈] [Z*p}1≤ti≤Ni],随机选取[random∈G],计算[C(2)i,ti,1=si,tibi,ti⋅Ai,ti,vi,ti∈Wirandom,vi,ti∉Wi,]
[C(2)i,ti,2=((s-si,ti)ai,ti)⋅Ai,ti,vi,ti∈Wirandom,vi,ti∉Wi]。
(3)设置[CT=(W,C(0),C(1),{{C(2)i,ti,1,] [C(2)i,ti,2}1≤ti≤Ni}1≤i≤N,C(3))]。
Decrypt. 假设[UID]掌握属性列表[L]以及[SKID,L],给定[CT],他执行以下步骤:
(1)检查是否满足[L|=W],若否,则终止。
(2)对于[i=1,...,N],设置[(C′i,1,C′i,2)=] [(Ci,ti,1,Ci,ti,2)]。其中,[Li=vi,ti]。
(3)[计算K=e(GID,C(3))e(j∈S,j≠IDGn+1-j+ID,C(1))⋅i=1Ne(C(2)i,1,D(2)i,1)e(C(2)i,2,D(2)i,2)e(C(1),D(1))i=1Ne(C(1),D(2)i,0)]
[=e(G1,Gn)]。
(4)恢复明文[C(0)/K=M]。
Revoke.假设DO希望废除[UID],他仅需要设置[S←S/{ID}]。
3.4 新的属性访问控制系统
该系统的执行过程如下:①[EHR-Setup] [(1κ).]HC调用3.3节的Setup算法,产生公开参数[PK]和主密钥[MSK]。②[EHR-KeyGen] [(L).] 假设U拥有属性集L,HC为U选取唯一的下标ID,然后调用3.3节的KeyGen算法,输出属性解密私钥[SKID,L]。③[EHR-] [Outsource(M,W).]假设DO希望将EHR数据M外包给CS。为此,定义访问策略W,并且调用3.3节的Encrypt算法,输出密文[CT]。④[EHR-Access(PK,L,SKID,L,CT).]假设U希望访问隐藏在[CT]中的EHR。为此,调用3.3节的Decrypt算法,从而恢复[M]。⑤[EHR-Revoke(S,ID).]假设DO希望废除[UID]的访问权限。为此,调用3.3节的Revoke算法即可。
4 安全性分析
正确性。容易证明以下等式成立,即:
[e(GID,C(3))e(j∈S,j≠IDGn+1-j+ID,C(1))=e(GID,V)se(Gn,G1)s.] (1)
[i=1ne(C(2)i,1,D(2)i,1)e(C(2)i,2,D(2)i,2)e(C(1),D(1))i=1ne(C(1),D(2)i,0)=1e(GID,V)s.] (2)
根据式(1)(2)得出:
[e(GID,C(3))e(j∈S,j≠IDGn+1-j+ID,C(1))⋅i=1ne(C(2)i,1,D(2)i,1)e(C(2)i,2,D(2)i,2)e(C(1),D(1))i=1ne(C(1),D(2)i,0)=K.]
(3)