基于格的可撤销属性的个人健康档案共享方案
2021-05-17白泽兴曾晟珂
白泽兴,曾晟珂
(1. 西华大学西华学院,四川 成都 610039;2. 西华大学计算机与软件工程学院,四川 成都 610039)
物联网(IoT)技术的发展可为医疗机构提供更加便利和高效的服务。一种小型的无线感应设备[1 − 2]穿戴于人体,便可随时监测身体的各项指标,形成个人健康档案(personal health record,PHR)。这些档案可通过网络传输保存于数据管理系统,并通过PHR 共享实现对健康数据的统计分析。穿戴该设备的人们通过及时传送自己身体的健康状况信息,使医生能迅速采取相应的医疗措施。然而,PHR包含了个人的隐私信息,若信息直接在公共网络上传送或直接存储在第三方云数据服务器中,可能会泄露健康隐私。为了保护个人隐私,在数据传输之前需要对数据文档进行加密,以防止信息泄露。
Sahai 等[3]提出的基于属性的加密方案(attributebased encryption,ABE)在保护数据的安全条件下,依据用户的属性特征实现了数据的共享和属性的访问控制。基于属性的加密有2 类:密钥访问策略的属性基加密[4](key-policy attribute-based encryption,KP-ABE),当需要解密的密文属性符合用户的密钥策略时解密;密文访问策略的属性基加密[5](ciphertext-policy attribute-based encryption,CPABE),当密钥属性符合密文的策略时解密。Chase[6]提出了适用于多授权机构的加密体系,将计算和密钥管理等分散于多个授权机构,解决了单一授权机构的问题,但带来了合谋威胁;为解决合谋威胁,又提出了中心授权机构,但是中心授权机构可以解密任意密文,因此增加了系统的隐私威胁。Lin 等[7]基于DBDH(decisional bilinear diffie-hellman)假设,提出了去中心的多授权机构方案,增强了系统隐私的安全性。与传统的公钥加密方案相比,属性加密使加密方案具有了动态性,访问策略更灵活,适用于数据共享机制。在PHR 系统中,医护人员的晋职、辞退等原因会使用户属性发生变化,加密系统中的属性必须进行调整,然而上述方案并不能解决该问题。
针对该问题,许多可撤销属性基加密方案被提出。Yu 等[8]提出了一种外包的CP-ABE 方案,使用代理重加密技术使加密体系支持属性撤销。为了保护属性的隐私,Wang 等[9]提出了一种支持属性撤销和属性隐藏的外包CP-ABE 方案。Li 等[10]基于属性组提出了一种抵抗合谋攻击的CP-ABE方案。在该方案中,管理员只需要更新用户的密钥即可实现属性撤销。上述方案大多是基于双线性对设计,需要使用多次双线性对的运算,其计算效率低且无法抵抗量子攻击。随着量子计算机的发展,越来越多的人开始关注格密码,基于格的密码是被认为能够抵抗量子攻击的。Boyen[11]提出了格基上的属性基加密方案。该方案基于线性秘密共享技术(linear secret sharing schemes,LSSS),需要进行高维的矩阵运算,其效率并不高。Chen 等[12]提出了格上基于身份的高效可撤销加密方案,支持身份撤销,但难以实现细粒度访问。随后,Zhang等[13]提出格上基于CP-ABE的属性基加密方案。该方案基于格中的误差学习问题所设计,但并不支持属性撤销。Yang 等[14]提出了一种支持格上可撤销的属性加密方案,支持属性的细粒度访问和属性撤销。本文基于Yang 等[14]的格上CP-ABE 方案,提出了一种可撤销属性的安全的PHR 方案。该方案通过应用云数据服务器,实现了PHR 功能的灵活管理。同时,在标准模型下基于误差学习问题证明了该方案是选择属性和选择明文安全的。
1 相关知识
本章将对方案所用的相关基础知识和困难性假设等进行介绍。
1.1 格
定义1(格)设向量a1,a2,···,am∈Zm是线性独立的,则定义格
其中,A={a1,a2,···,am},L(A)为其系数的线性组合。
定义2(q-元格)设q为素数,矩阵向量定义q-元格
定义3(离散高斯函数)设r为大于0 的任意实数,以参数r,向量c为中心的(高斯分布)定义为
当满足c为原点或r=1时,其下标r、c可省略。
对任意向量c∈Rn,大于0 的实数r,和一个n维格L,定义格L上的离散高斯分布为
1.2 重要算法
引理1[14]算法TrapdoorGen(q,n)
1.3 LWE 困难性假设
1.4 属性时间的矩阵转换
1.5 撤销二叉树
Boldyreva 等[15]采用基于用户撤销的二叉树进行构造,但其并不能实现属性的细粒度撤销。本文设计了支持细粒度属性撤销的二叉树结构。在该方案中,用户j与二叉树BTj相关联。j的每个属性i与一个叶子结点关联,路径Path(i)代表从叶子结点i到根结点的所有元素集合。所有结点都带有一个二元组(key,value),其中 key代表该结点的序号,value代表当前用户j所拥有的属性集合。当该结点当前没有任何子结点时,其value为0。设ξ是一个中间结点,ξl和 ξr分别代表其左孩子结点和右孩子结点。ti表示属性i的撤销时间。S1是包含所有有关属性i在t时被撤销的Path(i)结点集合,S2是所有S1中未被撤销的孩子结点的集合。若S2为空,则在其中加入根结点。如图1 所示,图中每个结点都带有各自的(key,value)元组,key代表结点的序号,value代表属性值。结点2 因其子结点为4(带有属性值1)和5(带有属性值2),所以结点2 的属性为1 和2。当结点4 被撤销时,结点1、2、4 被加入集合S1中,结点3 和5 被加入集合S2中。
图 1 撤销二叉树
2 方案构成和安全模型
2.1 PHR 系统结构
传统的PHR 结构如图2 所示,包括密钥授权中心、云数据服务器、病人、医生4 个实体。
1)密钥授权中心:生成和管理公钥、主密钥,以及由医生所拥有的属性生成的私钥,负责属性的更新和撤销。
2)云数据服务器:负责保管病人上传的加密文档。
3)病人:设置自己的属性策略访问结构,用该结构对自己的PHR 进行加密并上传到数据服务器。
4)医生:根据自身所属属性对数据服务器上的加密数据进行合法的解密访问。
2.2 方案的算法组成
本文提出的PHR 方案包括以下几个算法步骤。
1)系统初始化Setup(1n,Q,N)→PK,msk,RLj:输入安全参数λ、属性集合Q和最大用户数N;输出公钥 PK、主密钥msk和撤销列表RLj,j∈N。
2)密钥生成PriKeyGen(PK,msk,G)→SKG:输入主密钥msk、公钥 PK和属性集合G∈Q;输出与属性集合G关 联的私钥SKG。
图 2 PHR 系统结构图
3)更新密钥生成KeyUpd(PK,msk,t,RLj)→KUt:输入公钥 PK、主密钥msk、更新时间t∈T和撤销列表RLj;输出更新密钥KUt。
4)解密密钥DecKeyGen(SKG,KUt,(W,k))→DKG,t:输入私钥SKG、更新密钥KUt、访问结构W和系统门限值k;输出解密密钥DKG,t。当DKG,t为⊥时,表示其用户的属性已被撤销,否则,表示其有足够属性进行解密。
5)数据加密Enc(PK,(W,k),t,M)→CTW,t:输入访问结构W、门限值k、公钥 PK、消息M∈M0和加密时间t∈T;输出密文CTW,t。
6)数据解密Dec(DKG,t,CTW,t)→M:输入解密密钥DKG,t和密文CTW,t;输出明文消(息M。)
7)撤销列表更新RevListUpdG,t,RLj:输入属性集合G、当前的时间t和撤销列表RLj,j∈N;输出更 新后的撤销列表
2.3 安全模型
下面给出选择属性和选择明文攻击下的格上可撤销密文策略的属性加密方案的安全模型。在该模型中,敌手需要在系统初始化前,提交一个用于挑战的访问结构。
初始化:挑战者 C接收敌手 A在t∗时刻的撤销列表RLj和用于挑战的访问结构(W∗,k∗)。
系统设置:挑战者 C使用系统设置算法来生成公钥 PK和主密钥msk,将 PK发送给敌手 A,主密钥由自己保留。
阶段1:敌手 A随意地选择属性集合G={ai|ai∉W∗},并询问挑战者 C关于属性集合G的私钥。挑战者 C通过运行PriKeyGen算法来回复敌手的请求。敌手 A询问挑战者 C由撤销列表RLj更新后的私钥,挑战者 C运行KeyUpd算法来回答敌手的请求。
挑战:敌手发送比特消息m0和m1给挑战者。挑战者通过掷一枚均匀的硬币选择b∈{0,1}来运行加密算法,并返回加密后的消息给敌手。
阶段2:在看到挑战密文后,敌手 A 按照阶段1 继续向挑战者做选择属性及选择密文的询问。
猜测:敌手 A根据自己得到的信息猜测b′∈{0,1}。若b′=b,则称敌手 A挑战成功。
在该挑战中,敌手挑战成功的优势定义为
定义5对PPT 敌手而言,一个CP–RABE 方案若满足其优势是一个可忽略的函 数,则称该方案是抵抗IND−sAtt−CPA安全的。
3 方案构造
本章提出了一种可撤销属性的安全的PHR 方案,通过二叉树的访问结构和密钥更新的方法,实现医护属性可以灵活撤销的功能。基于格理论的加密解密,保证了PHR 数据在共享时抵抗选择属性攻击和选择明文攻击的安全。
3.1 系统初始化
密钥授权中心通过输入相关的安全参数来进行PHR 系统的初始化。系统初始化过程如下。
3.2 密钥生成
密钥授权中心根据公钥、主密钥和用户的属性集合生成相关属性的私钥。密钥生成过程如下。
3.3 更新密钥生成
密钥授权中心根据公钥、主密钥、密钥更新时间和属性撤销列表来生成更新密钥。该算法与撤销列表更新算法相结合可以解决医护人员的人事变动带来的访问控制问题。当某个医护人员的权限发生变动后,该算法可根据撤销列表更新算法生成更新后的撤销列表,由此来生成更新密钥,并将该密钥发送给医护人员。此时,原有的密钥可能因其有效属性数不满足访问策略的阈值而失效,从而实现属性撤销的功能。更新密钥生成过程如下。
3.4 解密密钥生成
密钥授权中心根据医护人员的私钥、更新密钥和访问策略来生成相关密文的解密密钥。密钥生成过程如下。
3.5 数据加密
病人通过其穿戴的智能设备,从密钥管理中心获取公钥和访问结构,加密自己的健康信息并将其上传至云数据服务器。加密过程如下。
Enc(PK,(W,k),t,M):输入公钥PK=(A0,B1,B2,C1,C2,{ai}i∈R′,u,H),访问结构W、门限k满足1 ≤k≤min(|W|,l),输入比特消息M和时间设
3.6 数据解密
密钥管理中心根据医生的属性分发相关的解密密钥,医生通过访问数据服务器获取并解密相关病人的健康信息。解密过程如下。
3)根据基于拉格朗日插值的Shamir 秘密共享方案[16]有则返回0。
3.7 撤销列表更新
每隔指定的一段时间,密钥管理中心会根据当前医护人员的属性集合和撤销列表来更新原来所存储的撤销列表。更新过程如下。
RevListUpd(G,t,RLj):输入属性集合G、当前的时间t和撤销列表RLj,j∈N。该算法把所有与属性i有关的结点的属性集合G和时间t加入撤销列表RLj中,返回更新后的撤销列表更新撤销列表即更新撤销二叉树。
4 方案分析
4.1 正确性分析
4.2 安全性分析
本方案在标准模型下基于误差学习问题,能够抵抗选择属性攻击和选择明文攻击。定理具体证明了该方案的安全性。
定理假设存在一个概率多项式时间敌手 A,如果其能够在选择属性和选择明文模型下破坏PHR 系统的数据安全,那么LWE 问题就是在多项式时间内可解。
4.3 性能分析
本方案将从公钥长度、私钥长度、密文长度、是否支持属性撤销和是否支持细粒度方面与相关方案进行分析对比,其结果如表1 所示。其中:q、n、m为格上的参数,q为模数,n为系统的安全参数,m为 矩阵的维数,对于m,根据引理1 有m>5nlbq;As代表系统中总的属性数目;Au代表用户的属性数目;Ae代表加密时使用的属性数目。在公钥长度方面,本文的公钥长度为(5nm+Asn+n)lbq,文献[10]的公钥长度为(2nm+Asnm+n)lbq,本文公钥长度比文献[10]少了(As(m−1)−3nm)lbq。As数值一般较大,相比文献[10],本文方案的公钥长度有了明显的减小,但文献[9]的公钥长度比本文和文献[10]的长度更小。在私钥长度方面,本文的私钥长度为(Aun+2Au)lbq,随着安全参数n的增大而变大;文献[9]的私钥长度为(2mAu+Au)lbq,文献[10]的私钥长度为(2Aum)lbq,两者的私钥长度皆随矩阵的维数m的增大而变大:因此,在矩阵的维度较大时,本方案比文献[9]和文献[10]更适用。在功能上,与文献[9]相比,本方案多了细粒度访问的功能,与文献[10]相比,本方案多了属性撤销的功能。本方案不足之处是,因同时具有属性撤销和细粒度访问功能,其密文长度相比文献[9]和文献[10]略有增大。
表 1 相关方案对比
综上,本文方案在性能方面得到了一定的改进,在功能方面更加完善,支持细粒度访问和属性撤销,更加满足PHR 需求。
5 结束语
本文提出了一种基于格上可撤销密文策略属性基加密方案,使用二叉树结构来更新用户的密钥,实现了属性撤销,解决了PHR 数据共享时的数据隐私问题,使医护属性可以灵活撤销。在标准模型下基于格上的误差学习问题证明了该方案是选择属性安全和选择明文安全的。尽管本方案实现了灵活的访问控制,但如何构建一个公钥、私钥、密文空间更小的方案仍值得继续研究。