支持用户撤销的可搜索电子健康记录共享方案
2024-03-21王经纬殷新春
王 政,王经纬,殷新春,2,3*
(1.扬州大学 信息工程学院,江苏 扬州 225127;2.扬州大学 广陵学院,江苏 扬州 225128;3.广东省信息安全技术重点实验室(中山大学),广州 510275)
0 引言
物联网和云计算技术[1]的出现为数据的存储与共享研究带来了新的机遇与挑战。在医疗物联网(Internet of Medical Things,IoMT)[2-3]行业中,物联网和云计算技术的广泛应用为人们带来了极大的便利,医生可以通过各种传感器设备详细地收集患者的健康数据,随时监测患者的各项生理参数,为患者提供更优质的医疗服务。电子健康记录(Electronic Health Record,EHR)用数字化方式记录、存储和管理的患者的健康信息,可以取代传统纸质病历,帮助医生和医疗机构更高效、精确地管理患者的健康信息。患者可以使用智能终端将这些EHR 存储到云服务器中以便于管理和维护。通过对电子健康记录的安全共享,医护人员能够更全面、准确地了解患者的健康情况,从而更科学地制定治疗方案,提高医疗服务的质量和效率。同时,共享患者的医疗信息也有助于医疗机构实现远程诊断和治疗,特别是在医疗资源相对匮乏的地区。此外,将大量的EHR 数据存储在云端能极大减小医疗中心存储和维护数据的开销,从而实现资源的合理配置。然而,存储于云服务器的EHR 包含诸如姓名、性别、家庭住址、银行卡号等患者的隐私,一旦泄露将会对患者的生活造成严重的影响。因此,如何保障隐私数据的安全存储,是当下研究的热点内容之一。
属性基加密(Attribute Based Encryption,ABE)可以提供细粒度访问控制机制、保证数据的机密性,能够有效解决上述问题。根据访问策略与密钥或密文的关系,ABE 方案分为密钥策略属性基加密(Key-Policy ABE,KP-ABE)方案[4-6]和密文策略属性基加密(Ciphertext-Policy ABE,CP-ABE)方案[7-9]两种。在CP-ABE 方案中,用户的密钥和一个属性集合相关,密文与一个访问策略相关,用户完成解密的唯一条件是用户密钥中的属性集合可以满足密文中的访问策略。而在KP-ABE 中,用户的密钥和一个访问策略相关,密文与一个属性集合相关,只有当密文中的属性集合可以满足密钥中的访问策略时才能完成解密。Han 等[10]提出了一种基于隐私保护的可追踪可撤销CP-ABE 方案,将用户属性表示为属性名和属性值,属性值用于加密,密文中的访问策略只包含属性名,从而实现了部分策略隐藏。Xue 等[11]提出了一种高效且安全的访问控制方案,能有效减少解密时的计算开销。Obiri 等[12]提出了一种支持数据完整性验证的属性基签密方案,实现了细粒度访问控制,同时保证了数据的隐私性、询问结果的完整性和不可伪造性。
虽然可以通过加密保证数据的机密性,但数据用户无法高效地对加密后的数据进行搜索操作,限制了方案的实用性。可搜索加密(Searchable Encryption,SE)解决了加密数据的搜索问题,SE 能够在保证密文安全性的前提下使用户在加密数据中高效地搜索。根据密码体制和构造算法可以将 SE 分为对称可搜索加密(Symmetric Searchable Encryption,SSE)和公钥可搜索加密(Public Encryption with Keyword Search,PEKS)两类。在SSE 中,密钥用于数据加密、陷门生成和加密数据的搜索[13]。PEKS 中每个数据拥有者和数据用户都有一个密钥对,其中数据用户的公钥用于加密关键字,而私钥用于生成陷门[14]。Lai 等[15]提出了支持任意表达的多关键字可搜索加密方案,但该方案中存在关键字隐私泄露问题。Lv 等[16]在文献[15]的基础上提出了安全且支持任意表达的多关键字可搜索加密方案,但依然存在存储和计算开销较大等问题。殷新春等[17]提出了一种轻量级可搜索医疗数据共享方案,采用大属性域结构和Intel SGX 技术提高了访问控制的扩展性和灵活性,并将用户解密部分的计算开销降低到常数级,然而在加密部分的计算开销仍然较大。
IoMT 系统中存在大量的用户,在系统运行过程中随时可能出现用户或者用户属性变化的情况,因此用户撤销和及时更新密钥对系统安全同样至关重要。Pirretti 等[18]提出了第一个支持属性撤销的ABE 方案,该方案提出为每个属性设置一个过期时间。随后,Yu 等[19]提出了基于CP-ABE 的属性撤销方案,采用代理重加密技术实现属性撤销,在撤销属性时只需生成重加密密钥。然而,该方案引入了复杂的加密算法和访问控制机制,增加了系统的复杂性和运行成本。Ostrovsky 等[20]提出了一种支持用户撤销的CP-ABE 方案,但计算开销较高。Staddon 等[21]提出了一种支持用户撤销的KP-ABE 方案,但在该方案中只有密文相关属性,正好是整个属性集的一半时撤销才可行,限制条件过高。在医疗场景下,Ma 等[22]提出了一种支持撤销的访问控制机制,可以实现即时的用户撤销功能。Edemacu 等[23]提出了一种具有即时属性/用户撤销的访问控制协议,能同时保证抗合谋攻击、前向和后向的安全性;但该方案采用的有序二叉决策图访问结构在数据量过大时会导致一定的延迟。王光波等[24]提出了一个标准模型下可证明安全且支持属性撤销的CP-ABE 方案,即使用户的某个属性被撤销,也不会影响该用户其他合法属性的正常使用。此外,对于每次属性撤销,用户不需要实时更新密钥,只有用户解密时才需要更新密钥,该方案存在密钥管理和更新困难等问题。变色龙哈希函数是一种带陷门的抗碰撞哈希函数[25],它的特性可以在ABE 原语中构建撤销机制。Li 等[26]为移动用户设计了一种基于属性的数据共享协议,基于变色龙哈希函数生成即时密文。Khalili等[27]构造了效率更高且具有强抗碰撞性的变色龙哈希函数;但该方案依赖大量的双线性配对操作,计算开销过大。
为了提高IoMT 系统中密文搜索和用户撤销的计算效率,本文提出了一种支持用户撤销的可搜索电子健康记录共享方案,主要工作包括:
1)构造出长度固定的陷门用于对密文的搜索验证,并对关键字索引进行哈希以及双线性配对计算,保证了关键字索引的安全性。关键字搜索功能以及部分解密计算工作由云服务器执行,从而降低了医护人员解密密文的计算负担,而云服务器在整个过程中无法获取与关键字相关的敏感信息。
2)采用在线/离线ABE 技术,使患者使用资源受限的设备完成EHR 的快速加密。采用外包解密技术将繁琐的解密工作外包给云服务器,医护人员在获取到部分解密数据后,只需一次求幂计算即可恢复明文。上述技术减小了医护人员的计算开销,与已有方案对比,本文方案以最小的计算代价实现了EHR 的加密和访问,更适合资源受限的患者。
3)基于变色龙哈希函数构造出用户属性私钥,在新的密钥版本中,未被撤销的医护人员无须对私钥进行更新操作即可继续有效访问患者的EHR 密文数据,从而减少医护人员的计算开销。该撤销机制在判定性双线性Diffie-Hellman(Decisional Bilinear Diffie-Hellman,DBDH)问题下具有抗碰撞、语义安全等特性。
安全性分析表明本文方案在DBDH 假设下可以抵抗选择明文攻击,理论与实验分析表明,与其他方案[16,20-22]相比,本文方案效率更高。
1 预备知识
1.1 双线性映射
令G 和GT表示阶为质数p的双线性循环群,g为群G 的生成元,双线性映射e具有以下特性:
1)双线性性:对于∀u,v∈G 和∀a,b∈Zp,e(ua,vb)=e(u,v)ab。
2)非退化性:∃u,v∈G 使得e(u,v) ≠1。
3)可计算性:对于∀u,v∈G,都可以有效地计算e(u,v)。
1.2 访问结构
定义1令U={U1,U2,…,Un}表示属性空间,则称一个非空的属性集合A⊆2U{∅}为访问结构。如果A满足:对∀B,C⊆U,如果B∈A且B⊆C,有C∈A,则称A是单调的访问结构。对于∀D∈A,称D为授权集合。
1.3 变色龙哈希
一个变色龙哈希方案包括KeyGen、Hash、Verify 和Adapt这4 个算法,具体定义如下:
KeyGen(1λ) →{pk,sk}:算法输入安全参数λ,输出公钥pk以及私钥sk。
Hash(pk,m) →{hash,r}:算法输入公钥pk以及消息m,输出一个哈希值hash以及随机数r。
Verify(pk,m,hash,r) →0 or 1:算法输入pk、m、hash和r,如果验证通过,算法输出1;否则输出0。
Adapt(sk,m,m′,hash,r) →r′:算法输入私钥sk、原消息m、新消息m′、与原消息m对应的哈希值hash以及随机数r,输出与新消息相对应的随机数r′。
1.4 安全性假设
在判定性双线性假设中,挑战者选择阶为p的双线性群G 和GT,构造双线性映射e:G × G →GT,G 的生成元为g。给定一个四元组(g,ga,gb,gc),a,b,c,z∈Zp,判断这个四元组是DBDH 四元组(g,ga,gb,e(g,g)abc),还是随机四元组(g,ga,gb,gz)。
定义2对于任意多项式时间算法,如果成功解决DBDH问题的优势是可忽略的,则称DBDH困难性假设成立。
2 系统定义及安全模型
2.1 系统模型
本文方案的系统模型包括4个实体:可信机构、云服务器、数据拥有者、数据用户,系统模型如图1 所示。
图1 系统模型Fig.1 System model
1)可信机构(Trusted Authority,TA)。TA 是指EHR 共享场景中的医院,它是完全可信的,负责初始化系统、授予数据用户属性私钥和执行用户的撤销。
2)云服务器(Cloud Server,CS)。CS 是具有强大存储和计算能力的第三方机构,它是半可信的,负责存储数据拥有者的EHR、验证数据用户的身份、执行数据用户的关键字搜索和解密部分密文。它会遵循方案的规则,但也可能试图获取患者的隐私信息。
3)数据拥有者(Data Owner,DO)。DO 是EHR 共享场景中的患者,他/她是完全可信的,负责加密数据和关键字索引,并将加密后的数据和索引一起上传至CS进行存储和共享。
4)数据用户(Data User,DU)。DU 是EHR 共享场景中的医护人员,他/她是不可信的,DU 将自己的属性集合发送给TA 申请属性私钥,利用私钥生成加密的查询关键字并发送给CS。当DU 接收到CS 返回的半解密密文之后,即可解密数据文件。
2.2 算法描述
1)Setup(λ) →(PP,MSK)。初始化算法由TA 执行,主要用于初始化系统中各类参数。算法输入安全参数λ,输出系统公开参数PP和主密钥MSK。
2)KeyGen(PP,MSK,S) →SK。属性私钥生成算法由TA执行,主要用于生成属性私钥用于后续的外包解密操作。算法输入PP、MSK、数据用户的属性集合S,输出属性私钥SK。
3)TransKeyGen(PP,SK) →{TK,RK}。外包密钥生成算法由DU 执行,主要用于生成外包密钥用于用户解密。算法输入PP和SK,输出外包密钥TK和解密密钥RK。
4)OfflineEnc(PP,(M,ρ)) →{IT,s}。离线加密算法由DO 执行,主要用于加密计算的预处理工作。算法输入PP以及访问策略(M,ρ),输出中间密文IT和秘密值s。
5)OnlineEnc(PP,IT,m,s) →CT。在线加密算法由DO执行,主要用密文的加密。算法输入PP、IT、消息m和s,输出密文CT。
6)EncIndex(PP,W) →{CTθ}θ∈W。关键字索引加密算法由DO 执行,主要用于生成关键字索引。算法输入PP和关键字索引集合W,输出关键字索引{CTθ}θ∈W。
7)Trapdoor(PP,ω) →Tω。陷门生成算法由DU 执行,主要用于生成关键字陷门。算法输入PP和关键字ω,输出陷门Tω。
8)Search(PP,QID,S,CT,{CTθ}θ∈W,Tω,TK) →DTor ⊥。关键字搜索与部分解密算法由CS 执行,主要用于生成部分解密数据。算法输入PP、数据用户身份QID、属性集合S、CT、关键字索引{CTθ}θ∈W、Tω和TK,输出部分解密数据DT或⊥。
9)UserDecrypt(DT,RK) →m。用户解密算法由DU 执行,主要用于用户解密操作。算法输入部分解密数据DT和DU 生成的RK,输出m。
10)Revocation(PP,ID) →QID。用户撤销算法由TA 执行,主要用于撤销用户。算法输入PP和待撤销数据用户的身份ID,输出QID。
2.3 安全模型
本文方案具备选择明文攻击不可区分安全性,针对所提出的方案描述敌手A与挑战者B之间的游戏如下:
初始化阶段 敌手A向挑战者B提交挑战访问策略(M*,ρ*)作为挑战目标。
系统建立阶段 挑战者B执行Setup 算法,然后将公开参数PP发送给敌手A,并保存MSK。
询问阶段1 敌手A可以向挑战者B发起以下询问:
1)私钥询问。敌手A向挑战者B提交一个属性集S,但要求敌手A不得对满足挑战访问策略的属性集发起私钥询问。挑战者B执行KeyGen 算法,然后返回给敌手A一个私钥SK。
2)转换密钥询问。敌手A向挑战者B提交一个私钥SK,挑战者B运行TransKeyGen 算法,将{TK,RK}返回给敌手A。
挑战阶段 敌手A选择2 个长度相等的消息m0和m1提交给挑战者B,挑战者B抛出一枚硬币ξ∈{0,1},并使用挑战访问策略(M*,ρ*)加密mξ。然后,挑战者B执行OfflineEnc算法和OnlineEnc 算法生成挑战密文CT*返回给敌手A。
询问阶段2 与询问阶段1 相同。
猜测阶段 敌手给出对ξ的猜测ξ′。当且仅当ξ=ξ′时,敌手A获胜。
本局游戏中敌手A的优势定义为AdvA(λ)=|Pr[ξ′=ξ]-1/2|。
定义3若敌手A不能在概率多项式时间(Probabilistic Polynomial Time,PPT)内以不可忽略的优势AdvA打破上述安全性游戏,说明本文方案具备选择明文攻击不可区分安全性。
3 具体方案
3.1 方案的构造
本文方案由以下算法构成:
1)Setup(λ) →(PP,MSK)。该算法由TA 执行。令e:G × G →GT为双线性映射,G 和GT是阶为p的循环群,且与安全系数λ相关。g为群G 的生成元,TA 选择随机值α,u,h∈Zp并计算PK0=e(g,g)αu,PK1=gαu,PK2=gh。令H0:Zp→G 为抗碰撞的哈希函数,H1为变色龙哈希函数,F为消息认证函 数 。算法输出PP={G,GT,p,e,g,PK0,PK1,PK2,H0,H1,F}和MSK=α。
2)KeyGen(PP,MSK,S) →SK。该算法由TA 执行。TA设置Ver=0,随机选取v,wVer∈Zp,DU 将自己的属性集合S={A1,A2,…,Ak,Ak+1,}⊆Zp发送给TA,其中Ak+1是一个身份标签,用来区别具有相同属性的不同DU,令ID=Ak+1,ID用于对DU 进行标记。TA 选取随机数r1,r2,…,rk+1∈Zp并计算H0(ID))},SKi=H1(Ai,Ver,R)其 中∀Ai∈S。算法输出SK={QID,{SKi}i=1,2,…,k+1},TA 将SK发送给DU,QID发送给CS。
5)OnlineEnc(PP,IT,m,s) →CT。该算法由DO 执行。在这个阶段,DO 对消息m加密时,只需要计算C0==me(g,g)αus,算法生成最终密文CT={(M,ρ),C0,{C1,τ,C2,τ}τ=1,2,…,l}。
6)EncIndex(PP,W) →{CTθ}θ∈W。该算法由DO 执行。关键字索引加密算法输入PP和由数据文件生成的W,对每个关键字θ∈W,算法生成与关键字θ相关的字符串tθ,并计算kθ=e(H0(θ)PK1,PK2),然后将tθ和kθ作为消息认证函数F的输入,最终算法输出加密后的关键字索引CTθ={tθ,F(kθ,tθ)}θ∈W。DO 将{CT,{CTθ}θ∈W}上传至CS 存储。
7)Trapdoor(PP,ω) →Tω。该算法由DU 执行。陷门生成算法输入PP和用户需要查询的关键字ω,计算关键字ω的陷门Qω=H0(ω) ×PK1,算法生成与关键字ω相关的字符串tω,最终输出Tω=(Qω,tω)。
8)Search(PP,QID,S,CT,{CTθ}θ∈W,Tω,TK) →DTor ⊥。该算法由CS 执行。DU 将生成的陷门Qω、TA 发送给DU 的SK中的身份QID以及自己的属性集合S发送给CS,CS 首先将用户的身份QID与存储的QID进行比较,如果存储在CS 中的QID已被标记为撤销状态,则它为撤销用户,算法终止,并返回⊥。否则,CS 验证用户属性集合是否满足密文CT中的访问策略,如果不满足,算法终止,返回⊥。如果满足,CS 计算kω=e(PK2,Qω)=e(g,g)αuhe(gh,H0(ω))。CS 计 算F(kω,tω),并且与在云端存储的加密关键字索引CTθ中的F(kθ,tθ)进行比较,如果匹配成功,CS 将执行下一步算法。首先,找出一个集合I⊂{1,2,…,l},使I={i:ρ(i) ∈S},|I|=t,并且选择一个可计算的集合{ωi∈Zp}i∈I,使成立,CS 根据所计算出的t和s继续计算DT,具体计算如下:
最终,CS 将DT返回给DU 进行最终解密。
9)UserDecrypt(DT,RK) →m。该解密算法由DU 执行。DU 接收到CS 发送的部分解密密文,并根据自己生成的RK=z计算
10)Revocation(PP,ID) →QID。该算法由TA执行。TA将用户撤销后,计算QID=(H(ID))v发送至CS,并告知CS将此QID标记为撤销状态。因此被撤销的用户无法访问密文。
3.2 正确性证明
4 安全性分析
4.1 密钥安全性
定理1在随机预言机模型中,假设变色龙哈希函数生成的数据用户的私钥{SKi}i=1,2,…,k+1是抗碰撞、语义安全的。如果对于多项式时间的敌手解决DBDH 的优势是可以忽略的,说明DBDH 问题是困难的。
证明 给定(g,gx,gy,gz)作为DBDH 实例,模拟器B通过与敌手A交互计算e(g,g)xyz。首先,模拟器B执行Setup 算法,并设置X=gx。然后,模拟器B发送公开参数PP=(G,GT,p,g,PK0,PK1,PK2,H0,H1,F,X)给敌手A。
1)抗碰撞性。假设ID*是目标身份,Ver*是目标版本号。敌手A最多对KeyGen 算法进行qKG次查询,模拟器B选择di∈,其中i=1,2,…,qKG,并执行以下操作:
其中ai为对应属性Ai∈S的随机值。因此,模拟器B的成功概率也为ε。
2)语义安全。对于当前版本号Ver,给定一个身份ID和一个属性集S,并且哈希值h=H1(S,Ver,R) 和字符串R=(gβ,e(Xβ,H0(ID)))之间存在一一对应的关系。因此,条件概率Pr(Ver|h)和Pr(Ver|R)是相等的,其中Ver和R是自变量,等式Pr(Ver|h)=Pr(Ver) 成立。则条件熵Η(Ver|h) 等于熵Η(Ver),具体如下所示:
因此,变色龙哈希函数和私钥SKi不会泄露版本号Ver和bVer的相关信息。
综上所述,即使在进行了一些撤销操作之后,本文方案仍然能够保持私钥{SKi}i=1,2,…,k+1的安全性。
4.2 选择明文攻击不可区分安全性证明
定理2如果DBDH 假设成立,则本文方案在选择明文攻击下具有不可区分安全性。
证明 假设存在一个PPT 敌手A可以以不可忽略的优势AdvA攻破本文方案,利用DBDH 假设条件构建一个与敌手A在游戏中交互的挑战者B。
初始化阶段 敌手A向挑战者B提交挑战访问策略(M*,ρ*)作为目标。
系统建立阶段 挑战者B执行Setup 算法,挑战者B随机选取g∈G,然后选择随机值h,u,a,b,α∈Zp,并计算PK0=e(g,g)αu,PK1=gαu,PK2=gh,最后将公开参数PP={G,GT,p,g,ga,gb,e(g,g)α,PK0,PK1,PK2,H0,H1,F} 发送给敌手A,并保存MSK={a,b,α}。
询问阶段1 敌手A可以向挑战者B发起以下询问:
询问阶段2 与询问阶段1 相同。
猜测阶段 敌手A将对ξ的猜测ξ′提交给挑战者B。如果CTc为有效密文,此时敌手A仅能随机猜测,其猜对的概率为:
在以上安全证明中,挑战者B模拟的系统参数、用户密钥和密文的分布都与本文方案完全一致。
5 方案的功能与性能分析
5.1 功能比较
将本文方案与文献[17,24,28-30]方案进行功能对比,结果如表1 所示。在所有方案中只有本文方案支持在线/离线加密,可以减小IoMT 系统中DO 加密EHR 的计算开销。在密文搜索方面,本文方案支持关键字搜索,且搜索阶段的陷门长度固定,能有效减小用户的计算开销。此外,本文方案还支持高效的用户撤销,相较于其他方案,本文方案在用户撤销上的计算开销更低,更适合资源受限的IoMT 系统,而文献[17]方案未提供有关用户撤销的关键功能,因此缺乏一定的适用性。
表1 功能比较Tab.1 Function comparison
5.2 计算开销理论分析
本文方案将加密算法分为在线阶段和离线阶段,将大量的预加密工作转移到离线加密阶段。当用户的智能终端不繁忙时,通过离线阶段自动完成,从而节省了智能终端设备的计算开销,而在线阶段只需进行一次求幂运算即可完成加密。同时,为了节省数据用户计算资源,本文将部分复杂的解密过程外包给了云服务器,且云服务器无法获取有关明文信息,进一步减小了用户端的计算代价。
表2 是文献[17,24,28-30]方案和本文方案之间的理论性能比较。
表2 计算开销比较Tab.2 Computational overhead comparison
本文方案包括以下算法:Setup、KeyGen、TransKey、OfflineEnc、OnlineEnc、EncIndex、Trapdoor、Search、UserDecrypt、Revocation。在系统初始化阶段,文献[28]方案的时间开销与属性数呈线性增长趋势,而本文方案的时间开销不受属性数影响,一直处于常数状态。在数据加密阶段,本文方案在计算开销上明显优于文献[17,24,28-30]方案,其中,文献[28]方案的时间效率与属性数呈线性增长关系,需要大量的时间开销,文献[29-30]方案还涉及大量的散列运算,加密时间随着属性数的增长而线性增加。在陷门生成阶段,本文方案陷门长度固定。在搜索与部分解密阶段,本文方案明显优于文献[24,28,30]方案。此外,本文方案在用户撤销阶段的时间开销远小于文献[24,29-30]方案,且文献[29]方案的计算开销与双线性配对运算相关,文献[30]方案的计算开销与散列运算相关。总体地,本文方案在计算开销方面具有一定的优势。
5.3 计算开销实验分析
本文通过仿真实验对比分析了本文方案与文献[17,24,28-30]方案的实际性能。实验基于密码函数库JPBC(Java Pairing-Based Cryptography),采用A 型奇异曲线y2=x3+x进行仿真。实验的硬件环境为Intel Core i7,2.7 GHz 处理器、操作系统为Windows 11 的笔记本电脑。在实验中,属性数n的取值范围为[0,100],满足访问策略的属性数 |I|的取值范围为[0,100]。
系统初始化时间开销如图2 所示。在系统初始化阶段,文献[28]方案的时间开销随属性数线性增长,而本文方案的时间开销一直处于常数状态,并且开销非常低,只有10 ms。当n=100 时,文献[28]方案的时间开销为672 ms,而本文方案和文献[17,24,29-30]方案的时间开销分别为10 ms、27 ms、21 ms、47 ms 和35 ms。因此,本文方案在系统初始化阶段具有明显的优势。
在加密阶段,对比方案中只有本文方案支持在线和离线加密,因此将这两部分结合在一起统称为加密阶段进行对比,其时间开销如图3 所示。本文方案与文献[24,28-30]方案的时间开销都随着属性数的增加而增加。相比之下,本文方案只涉及3|I|E,与文献[17]方案的计算开销相近,而文献[24,28-30]方案不仅涉及大量的指数运算,还涉及大量的散列运算,所以本文方案计算开销的增长速度最低。
图3 加密阶段的时间开销Fig.3 Time overhead of encryption stage
搜索陷门生成时间开销如图4 所示。在搜索陷门生成阶段,文献[17,29-30]方案的时间开销明显高于本文方案,且时间开销与属性数呈线性增长,而本文方案的计算开销是23 ms 且恒定不变,相比之下,本文方案在此阶段的计算更高效。
图4 搜索陷门生成阶段的时间开销Fig.4 Time overhead of search trapdoor generation stage
由于本文方案和文献[17,24,28-30]方案的搜索和部分解密操作均在一个算法中,因此将这两部分结合在一起进行比较,搜索和部分解密时间开销如图5 所示。在此阶段,本文方案的时间开销与文献[17,29]方案相近。当|I|=100时,文献[17,29]方案的时间开销分别是1 207 ms 和1 219 ms,而本文方案是1 178 ms,显然本文方案更优。
图5 搜索和部分解密阶段的时间开销Fig.5 Time overhead of search and partial decryption stage
用户撤销阶段时间开销如图6 所示。在用户撤销阶段,文献[24,28-29]方案三者的时间开销都随着属性数的增加而增加。相比之下,本文方案的计算开销只涉及一个nE,所以增长速度最低。当n=100 时,文献[24,28-29]方案的时间开销分别是1 584 ms、2 385 ms 和1 761 ms,而本文方案的时间开销为619 ms,相比之下,本文方案的时间开销只有对比方案的39%、25%和35%。
图6 用户撤销阶段的时间开销Fig.6 Time overhead of user revocation stage
综上所述,本文方案仅在搜索和部分解密阶段的计算开销接近文献[17,29]方案,在其他阶段具有一定的优势,整体开销也低于其他方案。特别是在搜索陷门生成阶段,本文方案的计算开销是恒定的常数级,极大减轻了可信中心和用户的计算负担,更适用于资源受限的IoMT 系统。
5.4 存储开销对比
存储开销主要对公开参数、密钥、关键字索引、搜索陷门和密文的长度进行对比。其中|G|、|GT|、|Zp|分别表示群G、GT、Zp上的元素长度。表3 分别给出了本文方案与文献[17,24,28-30]方案在系统公共参数、属性私钥、转换密钥、搜索陷门与密文上的存储开销对比。
表3 几种方案的存储开销比较Tab.3 Storage overhead comparison of several schemes
从表3 可以看出,本文方案中系统公共参数所需的存储开销是恒定的,只需要|G|+|GT|,明显小于对比方案。本文方案在属性私钥上的存储开销只与文献[24]方案相近,而文献[28-30]方案的存储开销几乎是本文方案的2 倍。本文方案在转换密钥上的存储开销同样低于文献[24,28]方案。最后,在密文上的存储开销,本文方案与文献[28]相近,相比之下,略高于文献[29-30]方案。综上所述,本文方案最优。
6 结语
本文提出了一种支持用户撤销的可搜索电子健康记录共享方案,该方案采用在线/离线加密、外包解密、用户撤销等密码学技术,在保障用户隐私和数据安全的同时提高了效率。安全性分析表明,本文方案在DBDH 假设下是选择明文攻击安全的。理论和实验分析表明,本文方案满足IoMT 系统的效率和实际实施要求。在IoMT 系统的复杂环境下,本文方案可能还缺乏一定的灵活性,未来可以考虑为医院中的不同科室提供协同数据访问功能,并对协同次数做出限制,以确保患者EHR 的安全性。