APP下载

智慧医疗中基于属性加密的云存储数据共享

2022-02-24牛淑芬方丽芝王彩芬

电子与信息学报 2022年1期
关键词:关键字密文密钥

牛淑芬 宋 蜜* 方丽芝 王彩芬②

①(西北师范大学计算机科学与工程学院 兰州 730070)

②(深圳技术大学大数据与互联网学院 深圳 518118)

1 引言

随着信息技术的飞速发展,越来越多的医疗机构使用电子信息系统来存储医疗数据。为了提高医院服务质量,降低患者成本,更好地利用医疗信息数据已逐渐成为研究热点。作为患者,个人电子健康记录(Electronic Health Record, EHR)[1]是一种电子的个人医疗健康记录,包含所有与个人健康相关的信息,如个人医疗记录、过敏药物、体检报告、家族病史等敏感信息。由于EHR中包含着患者极其隐私敏感的信息, 而且数据的存储需要很大的空间,云技术被提出用于个人健康数据的存储、管理和共享[2—4]。医疗云系统不仅为医患双方提供了极大的便利,而且也有助于患者更好地控制自己的病情。然而,云服务器并不完全可信,当用户在云服务器上存储EHR数据时,数据会受到各种安全威胁,涉及数据的隐私、完整性和数据的认证[5]。为了防止数据泄露,在上传前需对共享数据进行加密。但又会出现新的问题,数据加密之后,数据的使用就会受到一定的限制。为了解决这一问题,研究人员引入了可搜索加密(Searchable Encryption,SE)技术。Song等人[6]首先在流密码的基础上提出了对称可搜索加密,该方案对文件中的每个关键字进行加密,使得云服务器在不知道具体关键字的情况下却能明确文件中是否包含特定的关键字。

文献[7]提出了可实现动态更新的可搜索加密方案,方案具有较高的准确性和安全性。文献[8]支持连接关键字作为搜索的输入,并使服务器能够向用户证明搜索结果的完整性。然而,这些可搜索方案都是一对一加密,由于加密数据在多个接收者之间共享,并保存在一个不可信的远程共享存储服务器中。如何实现多个用户安全高效的访问数据成为新的问题,属性基加密(Attribute-Based Encryption,ABE)正好解决了这个问题。文献[9,10]提出了几个ABE方案,实现了细粒度的访问控制和关键字搜索。然而,这些方案关注的是数据的机密性,没有考虑访问策略的隐私保护。访问策略被大多数注重数据保密性的ABE方案采用,并与相关密文公开共享。这种数据访问策略的暴露会泄露共享数据和解密方身份的敏感信息,从而使传统的ABE方案变得不安全。

为了防止访问策略的泄露,文献[11] 提出了一种在素序群中具有部分隐藏访问结构的基于密文策略的属性加密方案。另一个问题是云服务器(Cloud Server Provider, CSP)并不完全可信。在不完全可信的云环境中,半可信云服务器可能会返回部分结果或错误的搜索结果,因此研究支持搜索结果完整性验证的SE技术显得尤为重要。为了验证CSP返回的搜索结果的完整性,Sun等人[12]提出了一种基于属性的可验证加密方案,但是这些方案存在云数据的重复性。随着云中存储的数据量增加,不可避免地会出现重复数据。如果云服务器存储大量冗余数据,则会浪费CSP的存储资源和用户的网络带宽。因此,重复数据消除对于云服务提供商来说是非常必要的。针对这个问题,文献[13]提出了一个在混合云环境下具有重复数据消除功能的属性加密存储系统,其中私有云负责重复数据的检测,公共云负责数据的存储。文献[14,15]均使用消息锁定加密来实现对密文的重复数据删除,用户使用聚合密钥对敏感数据进行加密,CSP将存储的数据与新上传的数据进行比较,若发现相同的数据,CSP将不再存储新的数据,以节省存储空间。

本文在加密的云数据上建立一个基于属性的关键字搜索加密方案,它支持数据完整性验证和重复数据消除,能够实现医疗数据的机密性、认证性、完整性,并支持机密数据的共享。该文分别从数据所有者、数据用户和医疗云的角度进行了研究。对于数据所有者来说,数据机密性是最重要的,其次是对数据用户的有效授权。为此,本文采用ABE技术来保证数据的机密性和用户的匿名性。为了防止访问策略泄漏,本文将访问策略中的属性进行加密隐藏。此外,还提供了细粒度的访问授权,只允许属性集满足访问策略的用户才可获得医疗数据。对于数据用户来说,搜索数据的完整性是最重要的。为了保证搜索结果的完整性,本文通过数据用户和医疗云的交互对密文进行验证。对于医疗云,它侧重于消除重复数据和减少存储资源的浪费,因此本文为每个共享文档生成数据标签,以实现云重复数据消除。 对于数据所有者来说,数据保密性是最重要的,其次是对数据用户的有效授权。

本文的创新点如下:

(1)方案允许多个患者对电子病历设置访问控制策略,同时支持多个用户对数据进行细粒度访问,所有属性满足访问策略的用户均能够获取医疗数据。

(2)方案实现了访问策略的隐藏,有效避免用户的具体属性值泄露给第三方,确保了用户隐私的安全。

(3)方案通过对加密文件设置数字标签,实现重复数据消除功能,减少占用医疗云的存储空间;同时对密文进行签名来保证数据正确性,实现密文可验证,解决了半诚实云服务器下搜索结果不正确的问题。

(4)安全性分析表明了本文方案对适应性选择关键字攻击是安全的,确保了关键字的保密性;此外,还可以有效地阻止未经授权用户对数据的访问。

2 相关工作

2.1 EHR系统

EHR系统是以电子病历为核心的医疗信息系统,EHR不仅包括个人的医疗记录,即门诊、住院就诊的所有医疗信息,还包括个人的健康记录,如免疫接种、过敏源、健康状态等内容,如图1所示。如果一个急诊患者突然来到医院,医师可以将患者身上所带的医疗卡插入计算机,这样计算机就会立刻显示出患者的有关情况,如姓名、年龄、药敏等,此时医师就能够根据患者的临床表现开出需要的检查项目单。电子病历和计算机信息系统的应用,将使医疗会诊的时间缩短,质量大幅度提高,同时改善医疗服务,提高治愈率,降低成本。然而EHR系统也存在一些安全和隐私问题,这些问题也受到了越来越多的关注[16,17]。

图1 电子病历示例图

2.2 属性基加密

属性基加密与过去的公钥加密方案相比(如身份基加密)最大的不同点就是,ABE实现了一对多的加解密。不需要像身份加密一样,每次解密都必须知道接收者的身份信息,在ABE中它把身份标识看作一系列的属性。当用户拥有的属性超过加密者所描述的预设门槛时,用户是可以解密的。 基于属性加密主要分为两大类:密文策略的属性加密(Ciphertext Policy Attribute Based Encryption,CP-ABE)[18]和密钥策略的属性加密(Key Policy Attribute Based Encryption, KP-ABE)[19]。ABE方案可以运用在多对多的场景下,例如电子病历系统和社交网络中。

ABE方案提出以后,大多数学者开始着手关于ABE的研究[20,21]。如Yin 等人[20]提出了一种有效的机制来实现对加密数据的安全搜索,服务器可以根据数据用户提交的查询陷门对加密数据进行关键字搜索,如图2所示。近年来,为了获得更好的安全性和性能,文献[21,22]分别提出了支持数据更新和搜索结果可验证的方案。本文重点研究了基于CP-ABE的医疗数据共享方案,允许多个用户进行细粒度的数据访问,支持多关键字搜索,保护了数据用户的匿名性和隐私安全,不仅实现了多个数据用户对密文的可验证,同时保障了用户隐私安全,具有实际可行的意义。

图2 属性基可搜索加密方案示例图

3 预备知识

定义1(访问控制树)[22]在本方案中,访问结构可以用访问树Γ来表示,其中非叶节点表示门限值,叶节点表示属性值。对于Γ中的每个非叶节点x,numx定义为子节点数量,kx表示节点x的门限值,其中,如果kx=1,表示阈值门是“OR”门。 如果kx=numx,则阈值门表示“AND”门。为了方便描述访问结构,本文用att(x)表示和叶节点x相关联的属性,用parent(x)表示节点x的父节点,对于每个节点y,它是x的子节点(即parent(y)=x),本文将index(y)表示为节点y的索引号,其中1≤index(y)≤numx,这些索引值以任意方式唯一地分配给访问结构中的节点,即∀y /=y′,若parent(y)=parent(y′),则 index(y)/=index(y′)。

定义2(离散对数假设) 设G为一个阶为素数p的群,g是G的生成元,给定g和ga,DL问题的目标是输出a。对于任何概率多项式时间(PPT)的对手 A,如果Pr[A(g,ga)=a]≤ε成立可以认为 A在解决DL问题方面的优势忽略不计,即在DL假设下,G中的DL问题在计算上是不可行的或困难的。

4 形式化模型

4.1 系统模型

本文考虑一个加密云存储系统(医疗云),它支持信息检索和对加密的个人数据文件(健康记录)进行细粒度访问控制。在这个系统中,存在多个数据所有者(患者)和多个数据用户(如医生、诊所、政府机构等)。患者可以创建、管理和修改其文件,数据用户可以通过特定患者的授权访问这些敏感文件。系统框架涉及4个实体,即数据所有者(Data Owner, DO)、数据用户(Data User, DU)、云服务器提供商(Cloud Server Provider, CSP)、密钥生成中心(Key Generation Center, KGC),如图3所示。

图3 系统模型

各个角色的具体介绍如下:

(1) DO是指到医院或医疗机构看病就医的患者。DO作为健康档案的来源,对数据拥有所有权和控制权。他们加密健康记录,将密文外包给CSP,并把隐藏的访问策略和安全索引上传到CSP。

(2) DU是指需要访问患者EHR的医生、政府、实验室、诊所等。通过将自己的属性集提交给KGC获得密钥,生成感兴趣关键字集的陷门,并将其提交给CSP。

(3) CSP是指医院的云服务器,即医疗云。主要负责存储DO提供的加密健康记录,验证DU的合法性,将陷门与索引、用户提交的属性集与访问策略进行匹配,若匹配成功,将电子健康记录文件地址返回给DU。它是诚实的,但对数据很好奇。

(4) KGC是指密钥生成中心。主要负责系统初始化、数据用户认证和密钥生成。

在本文模型中,DO去医院就诊后,医生为其生成一份电子病历,DO根据自己的需要对病历设置访问控制策略,并生成一份关键字安全索引。随后DO将加密的病历、加密的访问策略和安全索引上传到CSP。当有DU想要访问特定病历时,DU会根据自己的私钥生成搜索令牌,并将其提交给CSP,当DU的属性满足DO定义的访问控制策略,且符合访问条件时,CSP把相应密文发送给DU,DU可以对密文进行验证并解密,最新获得病历明文。

4.2 算法描述

4.3 安全模型

本方案的安全模型包括适应性选择关键字攻击游戏、关键字保密游戏。

游戏1:选择关键字攻击游戏

初始化:挑战者 B运 行系统建立算法,返回系统公开参数PP,保留主密钥Msk。

阶段1:攻击者 A在Trap预言机中查询关键字集{W1,W2,...,Wt}。

-Trap(sk,W): B运行陷门生成算法得到陷门Tokwi(1≤i ≤t)发送给A 。

挑战: A向 B提交两个挑战关键字W0和W1,

5 方案构造

本文提出的方案主要包括3个阶段:系统建立、数据加密与存储、数据共享。具体方案如下:

5.1 系统建立

算法1:初始化(Setup)

输入:安全参数λ

输出:公共参数PP,主密钥Msk

给定安全参数λ和双线性映射参数(G1,G2,q,g,e),其中G1和G2为两个阶为素数q的循环乘法群,g为G1的生成元,且满足双线性映射对e:G1×G1→G2。KGC首先调用(1λ)→(PP,Msk)算法生成公钥 PP,主密钥Msk和对称密钥k。选择两个抗冲突哈希函数H1:{0,1}*→G1,H2:{0,1}*→Zq。另外,K G C 随机选取3 个元素a,b,c ∈Zq,计算β1=ga,β2=gb,β3=gc。最后,设置公钥PP和主密钥Msk为

算法2:密钥生成(KeyGen)

输入:DU的属性集S,公共参数PP,主密钥Msk

输出:DU的私钥SK

给定一组属性集S,KGC调用(PP,Msk,S)→SK算法生成授权用户DU的私钥S K。它首先选择一个随机元素r ∈Zq,然后对每个属性j ∈S选择随机数rj ∈Zq,计算λj=grH1(j)rj,μj=grj,φj=H1(j)a,最后通过下式输出密钥SK。SK=(A=g(ac-r)/b,{λj=grH1(j)rj,μj=grj,φj=H1(j)a}j∈S)。

5.2 数据加密与存储

算法3:数据加密(Encrypt)

输入:公共参数PP,主密钥Msk,文件集F,关键字集W,对称密钥k,访问策略Γ

输出:密文CT

给定文件集F={f1,f2,...,fn},关键字集W= {w1,w2,...,wt},DO首先为每个文件建立关键字索引Il,i。在本文中,DO首先通过AES算法生成文件密文,再采用CP-ABE算法加密文件密钥,最终把完整的密文上传至云端。

(1)关键字索引生成:DO选择一个随机数α ∈Zp,计算Pko=gα作为自己的公钥,给定具有身份 idl的文件集F={f1,f2,...,fn},DO提取关键字集W= {w1,w2,...,wt}并建立索引Il,i,图4描述了一个简单的索引建立过程。若关键字wi包含在文件fl中,计算文件索引Il,i=β1α1H2(wi),否则Il,i=1, 最后设置索引表IW= {Il,i|l ∈[1,n],i ∈[1,t]}。

图4 索引建立

(2) DO为访问树中的每个节点x选择一个多项式qx,对于根节点r o o t,随机选择两个元素α1,α2∈Zq,令qroot(0)=α2,而多项式qr在其他dr个点的值完全进行随机选取,往下的其他节点x,令qx(0)=qparent(x)(index(x)),而其他dx个点的值随机定义,其中函数parent(x)表示访问树Γ中节点x的父节点。经过以上操作所有多项式全部确定。本文用att(x)表示和叶子节点x相关联的属性,对于Γ中的每一个叶子节点x,计算δx=gqx(0),

5.3 数据共享

本文基于请求者所查询的关键词,医疗云可以定位特定数据用户的预期搜索结果。因此,本文提出的方案不仅可以节省计算和带宽资源,还可以通过患者指定不同的数据访问结构来实现细粒度的访问控制。方案的框架如图5所示。

图5 方案框架

6 方案分析

6.1 正确性分析

6.2 安全性分析

定理1 本文方案在基于一般双线性群模型的自适应选择关键字攻击下是选择性安全的。

证明 设散列函数H1为随机预言机,H2为单向散列函数,证明在随机预言模型中,本文方案在选择关键字攻击下是选择性安全的。游戏如下:

6.3 性能分析

6.3.1 功能分析

表1列出了本文方案的功能优势,主要在访问控制、多关键字搜索、结果验证、策略隐藏和数据去重等方面与方案[10,12,22]进行了比较。通过比较可以看出文献[22]和本文方案支持完整性验证,也实现了访问策略的隐藏以及数据去重,避免了医疗云的存储资源浪费,但本文方案支持多关键字搜索,能使搜索结果更准确,节省搜索时间,减少资源浪费,因此更具功能性。

表1 功能比较

6.3.2 计算量分析

表2对文献[10,12]方案和本文方案进行了计算量的比较。其中s表示用户提交的属性数量,l表示访问策略中的属性数量,m表示关键字数量,t表示用户提交的关键字数量。p表示配对运算的时间,e表示指数运算的时间,h表示哈希运算的时间。文献[12]方案似乎效率更高,但该方案只支持一对一的搜索模型,而本方案支持多对多模型,可应用于多个实际场景中。本文将方案应用于多个患者和多个数据请求者之间,有效实现了医疗数据的共享。因此,本文方案在实际应用中是有效的和可扩展的,在一定程度上不会带来较大的计算负担。

6.3.3 存储量分析

表3对方案[10,12]和本文方案进行了存储量的比较。本文主要考虑以下几种算法的存储量:Key-Gen, Encrypt, Trap和Search算法, 并定义群G1,G2,Zq中元素的长度为|G1|, |G2|和|Zq|。本文方案的陷门生成(Trap)算法和搜索(Search)算法的存储成本比文献[10]、文献[12]方案的低。在加密(Encrypt)阶段,本文方案隐藏了访问策略,相对于其他两种方案具有更高的存储负担,由于加密算法只是一次性操作,因此本方案不会影响用户的使用体验感。

表3 存储量比较

6.3.4 实验分析

为了更准确地评估方案的实际性能,本文使用真实数据集和PBC ( Pairing-Based Cryptograply)库在密钥生成时间、索引生成时间、搜索令牌生成时间、搜索时间方面进行仿真测试。本文基于C 语言进行编程, 在联想AMD-Randeon R5图形处理器笔记本上,Linux 操作系统下运行实验。

在本文中,主要通过改变属性的数目测试方案计算开销。如图6(a)所示,在KeyGen算法中,相比文献[10]和文献[12],本文提出的方案效率更高,密钥生成的计算开销随着数据用户属性数量的增加几乎呈线性增长。在图6(b)中,本文方案的数据加密时间受两个因素的影响,即关键字数量|m|和访问策略中的属性个数|l|。为了便于比较,本文在算法中设置了 |m|=100,可以发现3种方案在Encrypt算法中的计算开销与系统中的属性个数|l|都近似呈线性关系。由于加入了访问策略的隐藏算法,本文提出的方案比另外两个方案产生了更高的计算负担。但Encrypt算法是一次性开销,不会影响用户搜索体验,因此,本文方案在实践中仍然是可行的。通过将密文存储外包给CSP,数据所有者可以减轻存储负担。由于本文方案中的Trap算法的计算开销受到两个不同因素的影响,即查询关键字数量|t|和用户提交的属性个数|s|,如图6(c)所示,为了便于比较,本文设置|t| = 10,并将|s|的值从1变化到50。在Search算法中本文同样通过设置|t| =10,|s|∈[1,50]来演示搜索算法的计算开销,如图6(d)所示,本文的方案在该算法中的计算开销明显低于另外两个方案。最后得出结论,利用真实数据集得到的性能评估基本符合表2所示的计算复杂度。

图6 不同方案的性能比较

表2 计算量比较

7 结束语

本文提出了一种基于属性加密的电子病历隐私保护方案,该方案支持重复数据删除和搜索结果的可验证性。方案采用了隐藏访问策略的CP-ABE技术对共享数据进行加密,保护了数据的机密性,实现了数据用户的匿名性;为了验证电子病历数据的完整性,引入验证算法来测试搜索结果真实性,保证用户得到正确的电子病历;同时,为了减少云服务器上数据的冗余,使用数据标签来检测上传数据与云中数据的重复性,从而实现云数据去重。安全性分析表明,所提方案安全性能较高,能很好地保护用户的隐私以及数据的安全。性能分析以及实验结果表明,所提方案与其他相似方案相比具有更大的优势,更加适用于智慧医疗等多对多搜索场景,下一步将考虑如何进一步提高方案的效率,使搜索的结果更快更准确。

猜你喜欢

关键字密文密钥
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于模糊数学的通信网络密文信息差错恢复
密码系统中密钥的状态与保护*
基于网络报文流量的协议密文分析方法
密钥共享下跨用户密文数据去重挖掘方法*
成功避开“关键字”
TPM 2.0密钥迁移协议研究