智慧城市中安全医疗数据共享
本文提出一种面向智慧城市移动医疗保健社交网络的安全数据共享与协作方案,结合CP-ABE和IBBE加密机制,实现细粒度访问控制与隐私保护。通过代理重加密技术,支持跨医疗与社交云的数据协作,并将计算开销外包至云端,降低移动设备负担。安全性和性能分析表明,该方案具备机密性、抗共谋性与高效性。
智慧城市移动医疗保健社交网络中的安全与隐私保护数据共享与协作
黄勤龙,1,2王立成,1,2和杨义先1,2
1北京邮电大学信息网络安全中心,网络与交换技术国家重点实验室,北京100876,中国
2北京邮电大学灾难备份与恢复国家工程实验室,北京100876,中国
通讯应致黄勤龙;longsec@bupt.edu.cn
2017年5月18日收到;2017年7月6日接受;2017年8月3日出版
学术编辑:杨庆
版权所有©2017黄勤龙等。本文为一篇在知识共享署名许可协议下发布的开放获取文章,该许可允许在任何媒介中不受限制地使用、分发和复制,只要正确引用原始作品。
引言
作为一种新兴范式,智慧城市利用物联网、移动通信和大数据分析等多种有前景的技术,提供智能服务并为当地居民创造舒适的生活[1]。智慧城市是一个多领域协作的城区,通过分析上下文实时信息实现可持续成果,从而为移动医疗社交网络(MHSN)带来巨大机遇[2]。
MHSN扩展了传统集中式医疗系统,在该系统中,患者待在家中或医院环境中,由医疗中心的专业医师负责提供医疗服务。随着智慧城市中可穿戴设备和体感传感器的显著发展,作为医疗保健用途的移动社区平台,MHSN提高了医疗效率,并高度重视社交互动[3],同时帮助患者在处理某些紧急情况或帮助转发数据和分享患者感受方面。
与传统以医院为中心的医疗保健相比,MHSN不仅在识别严重疾病的早期阶段效率低下,而且受限于有限的医疗信息[4],而MHSN能够实现对智慧城市中患者的持续健康监测和及时诊断。它依赖可穿戴设备和医疗传感器来测量患者的健康状况,并将健康数据发送至处理单元,供医生进一步诊断和分析,同时便于访问患者的历史综合健康信息。此外,佩戴体感传感器以持续监测其健康状况的患者通常会在户外行走,频繁地移动位置[5]。然而,由于个人健康和社会数据存在漏洞,MHSN可能面临一系列安全和隐私威胁。所收集的私人信息存储并处理于诚实但好奇的健康和社会云服务器,在存储和处理阶段可能会直接暴露[6, 7]。
此外,攻击者可以拦截患者之间的会话以获取他们的健康和社会数据。因此,MHSN中的基本安全和隐私要求,包括机密性和访问控制,应得到满足[8–10]。
智能医疗是MHSN中可实现的另一项功能,通过实时分析传染性,可提供高效诊断和健康状况预警,例如传染病分析[11]。众所周知,传染病可通过人与人接触在人群中迅速传播。一种传统的疾病防控方法是将易感人群隔离一段时间。然而,这种方法往往并不理想,因为与患者频繁接触或具有较强社交关系的人群从生物学和社会学角度来看更容易被感染。通常情况下,传染病的传播在很大程度上取决于用户的社交接触和健康状况。具体而言,有效的传染病分析可考虑若干关键因素,即被感染患者的易感性和接触用户的免疫强度。然而,患者的健康和社会数据由多家独立的服务提供商(如医院和社会网络供应商)收集。因此,这些服务提供商之间的协作是MHSN中实现增强型感染分析的关键挑战。
1.1. 我们的技术
为了保护患者的数据隐私并实现数据可用性,必须采用加密技术,使健康和社会数据对不可信云服务器不可见。任何未经数据所有者授权的用户都应无法访问个人健康和社会数据,并且不同不可信云服务器之间的协作应通过授权实体来实现。否则,患者可能不愿意共享其健康和社会数据,从而导致感染分析无法进行。事实上,基于属性的加密(ABE)和基于身份的广播加密(IBBE)是广泛采用的加密算法[12]。特别是CP‐ABE在概念上更接近传统的访问控制模型,可用于对加密数据实施细粒度访问控制。通过使用CP‐ABE,健康数据可以与访问策略一起受到保护,只有具备满足访问策略的一组属性的人员才能访问数据。
IBBE方案是一种密码机制,其中数据所有者可以一次将其加密数据广播给多个接收者,并且用户的公钥可以是任何有效字符串,例如电子邮件、唯一标识符和用户名。结合这两种机制,可用于在医疗系统和社交网络中实现数据保护。在本文中,我们提出了一种在MHSN中的安全的健康与社会数据共享与协作方案。我们方案的主要贡献如下:
(1)我们利用基于属性的加密和基于身份的广播加密实现了安全且具有隐私保护的健康数据与社交数据共享技术,分别用于保护私有数据的机密性。
(2)我们基于代理重加密(PRE)提供了一种来自不同独立云服务器的安全数据协作构造,该构造允许数据所有者授权的医疗分析人员访问重加密的健康数据和社交数据,以增强数据分析。
(3)我们将大部分健康数据加密和解密计算从资源受限的移动设备外包到医疗云,并且医疗分析器的解密成本较低。广泛的安全性和性能分析结果表明,我们的方案是安全且高效的。
1.2. 组织结构
本文结构如下:我们在第2节回顾相关工作。在第3节介绍预备知识,并在第4节给出系统模型、系统定义和安全定义。详细的构造在第5节中给出。然后,我们在第6节和第7节分别分析我们的方案的安全性和性能。最后,我们在第8节对本文进行总结。
2. 相关工作
个人健康记录(PHRs)是包含患者健康和医疗信息的电子记录,涉及患者不愿披露的隐私信息。因此,PHR的安全保护多年来一直备受关注并成为研究热点[13]。张等人[14]提出了一种基于同意的访问控制机制来实现PHR安全与隐私保护,其中同意只能由授权用户基于PRE生成。目前,将基于属性的加密(ABE)应用于保护PHR的研究兴趣日益增加。ABE是一种有前景的一对多加密技术,可用于实现数据共享中的灵活且细粒度的访问控制[15],该技术最初由Sahai和Waters作为模糊基于身份的加密(IBE)的一种新方法提出[16]。其特点在于通过私钥和密文之间的访问策略和归属属性,实现对加密数据的访问控制机制[17]。
Narayan等人[18]提出了一种用于PHR系统的基于属性的基础设施,其中每个患者的PHR文件使用密文策略属性基加密的广播变体进行加密。Li等人[19]提出了一种新颖的基于ABE的通用框架,用于在云计算环境中以患者为中心的安全共享PHR。Au等人[20]设计了一个基于CP‐ABE的PHR云环境安全共享通用框架,并部署了基于属性的代理重加密(ABPRE)机制,使得针对医生A的密文可以转换为针对医生B的密文。然而,CP‐ABE方案的主要问题在于其复杂计算带来的高计算开销。这一问题在MHSN中资源受限的可穿戴设备或移动传感器面前会更加严重,因为在采用ABE算法时需要执行繁重的计算任务以实现细粒度数据访问控制。为了降低计算开销方面,刘等人[21]提出了一种外包医疗记录访问控制系统,通过将加密计算移至离线进行,从而保持在线计算任务非常低。叶等人[22]提出了一种面向云中健康信息访问控制的解密外包框架,利用云服务提供商检查属性是否满足密文中的访问策略,从而引出了张等人[23]提出的外包加密与解密方案。
智能医疗是智慧城市中的一项智能服务,包含MHSN中的多种健康相关应用,如家庭护理和紧急报警[24]。王等人[25]设计了一种基于IBE的医疗云安全系统框架,其中助理医生可在数据所有者授权下,基于基于身份的PRE(IBPRE)访问健康数据以进行增强分析。特别是,通过将收集的社交数据与实时健康数据结合分析,可实现精确的感染分析。医疗与社交网络服务提供商之间的安全协作是智能医疗面临的关键挑战,因为不同的服务提供商可能采用不同的技术来保护数据隐私。张等人[11]提出了智慧城市的MHSN中安全与隐私的一些挑战,并提出了首个医疗与社交网络服务提供商的安全数据协作框架。然而,该方案未给出具体的构造实现。梁等人[26]提出了PEC,一种基于属性的加密的MHSN应急呼叫方案,该方案结合位置数据与健康数据,确保紧急信息被发送给附近的医生。江等人[27]提出了EPPS,一种基于属性的加密的个人健康信息共享方案,通过将移动社交网络与医疗中心相结合,使具有地理邻近性的患者可组成小组,在授权医生参与下交换健康状况、医疗经验及治疗方案。但在该方案中,医疗中心的医生必须为每个属性持有多个属性私钥,以对接不同组中的患者。此外,上述两个方案均未考虑利用健康和社会数据进行数据协作(如传染病分析)。
3. 预备知识
3.1 双线性对
设G0和GT是两个阶为素数p的乘法群。双线性映射是一个函数e:G0 × G0 → GT,具有以下性质:
(1) 可计算性。对于任意g, h ∈ G0,存在一个高效算法来计算e(g, h) ∈ GT。
(2) 双线性。对于所有g, h ∈ G0以及a,b ∈ Zp,我们有e(g^a, h^b) = e(g, h)^ab。
(3) 非退化性。如果g是G0的生成元,则e(g, g)也是GT的生成元。
3.2 密文策略基于属性的加密
CP‐ABE是一种用于一对多安全通信的密码学原型,由以下算法[17]组成。
(1) Setup(1^λ)。设置算法以安全参数λ为输入,输出公钥PK和主私钥MK。
(2) KeyGen(PK, MK, S)。密钥生成算法以公钥PK、主私钥MK以及属性集合S为输入,输出属性密钥AK。
(3) Enc(PK, M, T)。加密算法以公钥PK、消息M和访问策略T为输入,输出密文CT。
(4) Dec(PK, AK, CT)。解密算法以公钥PK、属性密钥AK和带有访问策略T的密文CT为输入。如果S ∈ T,则输出消息M。
3.3 基于身份的广播加密
IBBE可以看作是IBE的扩展,允许将一条消息一次性加密给多个接收者。IBBE的定义如下[28]。
(1) Setup(1^λ, N)。设置算法以安全参数λ和接收者集合的最大规模N为输入,输出公钥PK和主私钥MK。
(2) KegGen(PK, MK, ID)。密钥生成算法以公钥PK、主私钥MK和用户身份ID为输入,为该用户输出私钥SK_ID。
(3) Enc(PK, M, U)。加密算法以公钥PK、消息M和接收者身份的集合U为输入;该算法输出针对U的密文CT。
(4) Dec(PK, CT, SK_ID, ID)。解密算法以公钥PK、密文CT、私钥SK_ID和身份ID为输入;若ID ∈ U,则该算法输出消息M。
4. 所提方案
4.1 系统模型
在MHSN中,健康数据与社交数据融合促进了授权感染分析的新范式。我们的方案专注于这些数据的安全共享与协作。如图1所示,我们的方案的系统模型包括中央机构、医疗云、社交云、用户、医疗服务提供者和医疗分析器。
(1) 中央机构 。中央机构是一个完全可信的方,负责生成系统参数以及为每个用户生成私钥。
(2) 医疗云 。医疗云是一个半可信方,提供健康数据存储服务。它还负责帮助移动医疗传感器加密健康数据,并为医疗服务提供者解密密文,以及为医疗分析人员重加密密文。
(3) 社交云 。社交云也是一个半可信方,提供社交数据存储服务,并负责为医疗分析人员重新加密社交密文。
(4) 数据所有者 。数据拥有者通过移动医疗传感器产生大量健康数据,并通过定义访问策略将这些数据上传至医疗云,同时将其社交数据上传至社交云以实现共享。
(5) 用户 。用户是密文的接收者,如果其为数据拥有者所定义的预期接收者,则能够解密密文。
(6) 医疗服务提供者 。医疗提供商是存储在医疗云中的健康密文的预期接收者。若某医疗服务提供者的属性集合满足密文中的访问策略,他便能够从密文中解密患者的健康数据。
(7) 医疗分析器 。医疗分析器是健康密文和社交密文的授权接收者,用于数据协作与分析。

4.2 系统定义
基于系统模型,我们的方案包含以下算法。
(1) Setup(1^λ, N)。中央机构以安全参数λ和接收者集合的最大规模N作为输入,输出系统公钥PK和主密钥MK。
(2) AKeyGen(PK, MK, S)。中央机构以PK、MK以及用户或医疗服务提供者的属性集合S作为输入,输出属性密钥AK。
(3) SKeyGen(PK, MK, ID)。中央机构以PK、MK以及用户或医疗分析器的身份ID作为输入,输出用户的秘密密钥SK。
(4) Cloud.Encrypt(PK, T)。医疗云以PK和访问策略T作为输入,输出外包的健康密文CT′。
(5) Health.Encrypt(PK, m_h, CT′)。医疗数据拥有者以PK、健康数据m_h和外包的健康密文CT′为输入,输出健康密文CT_h。
(6) Cloud.Decrypt(PK, CT_h, AK′)。医疗云以PK、健康密文CT_h和外包的属性密钥AK′为输入,如果AK′中的属性满足密文中的访问策略,则输出部分解密的健康密文CT_r。
(7) Health.Decrypt(CT_r, AK)。医疗服务提供者以部分解密的健康密文CT_r和属性密钥AK为输入,输出健康数据m_h。
(8) Social.Encrypt(PK, m_c, U)。社交数据所有者以PK、社交数据m_c和接收者身份集合U为输入,输出社交密文CT_c。
(9) Social.Decrypt(PK, CT_c, ID, SK)。社交接收者以PK、社交密文CT_c、接收者身份ID及其私钥SK为输入,若ID和SK有效,则输出社交数据m_c。
(10) Health.ReKeyGen(PK, AK, ID′)。医疗数据拥有者以PK、属性密钥AK和医疗分析器的身份ID′为输入,输出健康重加密密钥RK_h。
(11) Health.ReEnc(CT_h, RK_h)。医疗云以健康密文CT_h和健康重加密密钥RK_h为输入,输出重加密后的医疗密文RT_h。
(12) Social.ReKeyGen(PK, SK, ID′)。社交数据所有者以PK、私钥SK和医疗保健分析器的身份ID′并输出社交重加密密钥RK_c。
(13) Social.ReEnc(CT_c, RK_c)。社交云以社交密文CT_c和社交重加密密钥RK_c作为输入,输出重加密后的社交密文RT_c。
(14) Analyzer.Decrypt(RT_h, RT_c, SK′)。医疗保健分析器以重加密后的健康密文RT_h、重加密后的社交密文RT_c和私钥SK′为输入,输出健康数据m_h和社交数据m_c。
在注册阶段,中央机构运行Setup算法以生成系统公钥和主密钥。同时,它还使用AKeyGen和SKeyGen算法为系统中的用户生成属性密钥和私钥。对于健康数据,医疗云首先运行Cloud.Encrypt算法,通过访问策略对数据进行加密,然后数据所有者运行Health.Encrypt算法完成加密。在访问健康数据时,医疗云首先使用Cloud.Decrypt算法对密文进行部分解密,随后用户可使用Health.Decrypt算法恢复数据。对于社交数据,数据所有者运行Social.Encrypt算法,针对接收者集合对数据进行加密,用户则可使用Social.Decrypt算法恢复社交数据。此外,数据所有者可分别运行Health.ReKeyGen和Social.ReKeyGen算法,生成包含其自身属性密钥和私钥的重加密密钥。收到重加密密钥后,医疗云和社交云将运行Health.ReEnc和Social.ReEnc算法,将初始密文转换为重加密的密文。因此,医疗分析器可运行Analyzer.Decrypt算法,对重加密的医疗与社交密文进行解密。
4.3 安全定义
在我们的方案中,我们假设医疗云和社交云是诚实但好奇的,这意味着它们会执行计算和存储任务,但可能会试图获取关于私有数据[29]的信息。具体而言,安全模型涵盖以下方面。
(1) 数据机密性 。应防止未授权用户(即数据所有者未指定的预期接收者)访问健康和社会数据。医疗分析器在未经数据所有者授权的情况下,不应能够访问重加密后的数据。
(2) 细粒度访问控制 。数据所有者可以自定义表达性强且灵活的访问策略,以确保只有属性满足这些策略的医疗提供商才能访问健康数据。
(3) 抗共谋性 。如果用户集合中的每个用户的属性单独都无法满足密文中的访问策略,则对密文的访问不应成功。
5. 构造
5.1 系统初始化
中央机构运行Setup算法以选择一个双线性映射 e: G0 × G0 → GT,其中G0和GT是两个具有素数阶p的乘法群,g是G0的生成元。然后,中央机构选择最大接收者数量N,随机选取 g、h、u、V、w ∈ G0以及 α、β ∈ Zp,并选择密码学哈希函数 H1: {0, 1} → Z p,H2: GT → G0,最后输出系统公钥PK = (g, g^β, e(g, g)^α, h, u^α, V, V^α, …, V^(αN), e(u, V), w) 和主私钥MK = (u, α, β)。
5.2 密钥生成
中央机构运行AKeyGen算法以选择一个随机数γ ∈ Zp,该随机数是分配给每个用户的唯一密钥。然后,中央机构为每个属性选择随机数 ε_j ∈ Zp、φ ∈ Zp 和 rj,其中S是用户的属性集合,并输出属性密钥AK。
$$
AK = \left( D = g^{(\alpha + \gamma)/\beta}, D_1 = g^\gamma h^\varepsilon, D_2 = g^\varepsilon, D_3 = g^{1/\varphi}, D_4 = g^{\varphi\alpha}, D_5 = w^{\varphi\alpha}, { \tilde{D} j = g^{\gamma H_1(j) r_j}, \tilde{D}’_j = g^{r_j} } {j \in S} \right)
$$
对于系统中的每个用户,中央机构运行SKeyGen算法以选择一个随机的π ∈ Zp并为具有身份ID的用户输出私钥SK。
$$
SK = \left( K = g^{1/(\alpha + H_1(ID))}, K_1 = u^{1/\pi}, K_2 = V^\pi, K_3 = w^\pi \right)
$$
5.3 安全的健康数据共享
5.3.1 健康数据加密
数据所有者的移动医疗传感器可以收集多种实时健康数据(例如血压、心率和脉搏),用于进一步的诊断或专家分析。在将数据上传至医疗云之前,数据所有者首先选择一个随机的HK ∈ Zp,并使用对称加密算法通过HK对健康数据m_h进行加密,记为C = SE_HK(m_h)。然后,数据所有者定义一个访问策略T,以确保只有满足此策略的用户才能访问数据,并随后发送至医疗云。
然后,医疗云运行Cloud.Encrypt算法执行外包加密。对于访问策略树T中的每个节点x,医疗云选择一个多项目式px。这些多项式的选取方式如下,从根节点R开始自顶向下进行。对于树中的每个节点x,将多项式px的次数dx设为该节点阈值kx减一,即dx = kx − 1。从根节点R开始,算法随机选择一个s ∈ Zp,并令p_R(0) = s;然后随机选择多项式p_R的另外d_R个点以完全确定该多项式。对于任何其他节点x,设置 p_x(0) = p_parent(x)(index(x)),并随机选择dx个其他点以完全定义px。
令Y为T中叶节点的集合;医疗云输出一个外包密文CT′作为
$$
CT’ = \left( T, C’ 3 = g^s, C’_4 = h^s, C_7 = { \tilde{C}_y = g^{p_y(0)}, \tilde{C}’_y = H_1(attr_y)^{p_y(0)} } {y \in Y} \right)
$$
健康云将密文CT′返回给数据所有者。数据所有者运行Health.Encrypt算法,随机选择 t ∈ Zp,并使用HK计算 C1 = HK ⋅ e(g,g)^αt,以及计算C2 = g^βt, C3 = C′3 ⋅ g^t, C4 = C′4 ⋅ h^t, C5 = (D4)^t, C6 = (D5)^t。
最后,数据所有者输出密文CT_h作为
$$
CT_h = \left( T, C = SE_{HK}(m_h), C_1 = HK \cdot e(g,g)^{\alpha t}, C_2 = g^{\beta t}, C_3 = g^{s+t}, C_4 = h^{s+t}, C_5 = g^{\varphi \alpha t}, C_6 = w^{\varphi \alpha t}, C_7 = { \tilde{C} y = g^{p_y(0)}, \tilde{C}’_y = H_1(attr_y)^{p_y(0)} } {y \in Y} \right)
$$
5. 构造(续)
5.3.2 健康数据解密
如果医疗服务提供者的属性满足访问策略T,则他可以通过通知医疗云并获取对称密钥来成功解密CT_h。医疗云运行Cloud.Decrypt算法,结合密文以及来自医疗服务提供者的外包属性密钥AK′ = (D1, D2, {D̃j, D̃′j}j∈S)。医疗云首先运行DecryptNode算法,该算法可描述为一种递归算法。此算法以密文CT_h、AK′和访问树T中的节点x作为输入。
(1) 如果节点x是叶节点,则令z = attr_x并按如下方式计算。如果z ∈ S,则
$$
\text{DecryptNode}(CT_h, AK’, x) = \frac{e(\tilde{D}_z, \tilde{C}_x)}{e(\tilde{D}’_z, \tilde{C}’_x)} = \frac{e(g^{\gamma H_1(z) r_z}, g^{p_x(0)})}{e(g^{r_z}, H_1(attr_x)^{p_x(0)})} = e(g,g)^{\gamma p_x(0)}
$$
如果z ∉ S,则DecryptNode(CT_h, AK′, x) = ⊥。
(2) 如果节点x是一个非叶节点,算法DecryptNode(CT_h, AK′, x)的执行过程如下:对于x的所有子节点n,调用DecryptNode(CT_h, AK′, n),并将输出存储为Fn。令Sx为任意大小为kx的子节点集合n,使得Fn ≠ ⊥成立。如果不存在这样的集合,则该节点不满足条件,函数返回⊥。否则,该函数定义了j = index(n)和S′x = {index(n): n ∈ Sx},并返回结果
$$
F_x = \prod_{n \in S_x} F_n^{\Delta_{j,S’ x}(0)} = \prod {n \in S_x} \left(e(g,g)^{\gamma \cdot p_{\text{parent}(n)}(\text{index}(n))}\right)^{\Delta_{j,S’_x}(0)} = e(g,g)^{\gamma p_x(0)}
$$
如果访问策略树T被S满足,则我们将访问树T的整个评估结果设为F,使得
$$
F = \text{DecryptNode}(CT_h, AK’, R) = e(g,g)^{\gamma p_R(0)} = e(g,g)^{\gamma s}
$$
然后,医疗云计算
$$
B = \frac{e(D_1, C_3)}{e(D_2, C_4)} = \frac{e(g^\gamma h^\varepsilon, g^{s+t})}{e(g^\varepsilon, h^{s+t})} = e(g,g)^{\gamma(s+t)}, \quad A = \frac{F}{B} = \frac{e(g,g)^{\gamma(s+t)}}{e(g,g)^{\gamma s}} = e(g,g)^{\gamma t}
$$
最后,医疗云将部分解密的健康密文CT_r = (C = SE_HK(m_h), C1 = HK ⋅ e(g,g)^αt, C2 = g^βt, A = e(g,g)^γt)发送给医疗服务提供者。在收到来自医疗云的CT_r后,医疗服务提供者运行Health.Decrypt算法以获得对称密钥。
$$
HK = \frac{C_1 \cdot A}{e(C_2, D)} = \frac{HK \cdot e(g,g)^{\alpha t} \cdot e(g,g)^{\gamma t}}{e(g^{\beta t}, g^{(\alpha + \gamma)/\beta})}
$$
因此,可通过应用对称解密算法使用HK对SE_HK(m_h)进行解密,医疗服务提供者即可访问数据所有者的健康数据用于诊断。
5.4 安全的社会数据共享
5.4.1 社交数据加密
对于表示为mc的私有社交数据,数据所有者运行Social.Encrypt算法对其进行加密,然后将密文外包至社交云。首先,数据所有者选择一个接收者身份集合U(其中|U| ≤ N),并随机选取一个用于基于对称加密算法加密数据的会话密钥CK ∈ Z p。数据所有者随机选取k ∈ Z p,并输出一个社交密文CT_c。
$$
CT_c = \left( C = SE_{CK}(m_c), C_1 = CK \cdot e(u, V)^k, C_2 = V^{k \cdot \prod_{ID_i \in U} (\alpha + H_1(ID_i))}, C_3 = V^{\pi k}, C_4 = w^{\pi k}, C_5 = u^{-\alpha k} \right)
$$
5.4.2 社交数据解密
具有身份ID的用户运行Social.Decrypt算法来解密社交密文。如果ID ∈ U,用户计算
$$
I = \left( e(C_5, V^{\Delta_\alpha(ID,U)}) \cdot e(K, C_2) \right)^{1 / \prod_{ID_i \in U \land ID_i \neq ID} H_1(ID_i)} = e(u, V)^k
$$
其中
$$
\Delta_\alpha(ID,U) = \alpha^{-1} \cdot \left( \prod_{ID_i \in U \land ID_i \neq ID} (\alpha + H_1(ID_i)) - \prod_{ID_i \in U \land ID_i \neq ID} H_1(ID_i) \right)
$$
然后,用户使用I计算会话密钥。
$$
CK = \frac{C_1}{I} = \frac{CK \cdot e(u, V)^k}{e(u, V)^k}
$$
最后,用户使用对称加密算法通过会话密钥恢复消息mc。
5.5 授权数据分析
5.5.1 医疗数据重加密
为了分析医疗保健数据,医疗数据拥有者运行Health.ReKeyGen算法来选择一个医疗分析器的身份ID′,随机选取t′, b ∈ Zp,并使用属性密钥AK计算以下内容:
$$
R_1 = D_3 \cdot w^b = g^{1/\varphi} \cdot w^b, \quad R_2 = V^{t’ \cdot (\alpha + H_1(ID’))}, \quad R_3 = H_2(e(u, V)^{t’}) \cdot g^b
$$
然后,医疗数据拥有者输出健康重加密密钥RK_h = (R1, R2, R3)。当接收到重加密密钥后,医疗云运行Health.ReEnc算法对初始医疗密文进行重加密。医疗云计算
$$
C’_1 = \frac{C_1}{e(R_1, C_5)} = \frac{HK \cdot e(g,g)^{\alpha t}}{e(g^{1/\varphi} \cdot w^b, g^{\varphi \alpha t})} = HK \cdot e(w^b, g^{-\varphi \alpha t})
$$
最后,医疗云输出重加密后的医疗密文。
$$
RT_h = \left( C’ = C = SE_{HK}(m_h), C’_1 = HK \cdot e(w^b, g^{-\varphi \alpha t}), C’_2 = R_2 = V^{t’ \cdot (\alpha + H_1(ID’))}, C’_3 = R_3 = H_2(e(u, V)^{t’}) \cdot g^b, C’_4 = C_6 = w^{\varphi \alpha t} \right)
$$
5.5.2 社交数据重加密
社交数据也用于分析医疗保健信息,例如传染病。数据所有者运行Social.ReKeyGen算法来选择一个医疗保健分析者的身份ID′,随机选取k′, l ∈ Zp,并使用私钥SK计算以下内容:
$$
R_1 = K_1 \cdot w^l = u^{1/\pi} \cdot w^l, \quad R_2 = V^{k’ \cdot (\alpha + H_1(ID’))}, \quad R_3 = H_2(e(u, V)^{k’}) \cdot V^l
$$
然后,数据所有者输出社交重加密密钥RK_c = (R1, R2, R3)。接着,社交云接收到该重加密密钥后,运行Social.ReEnc算法对初始社交密文进行重加密。社交云计算
$$
C’_1 = \frac{C_1}{e(R_1, C_3)} = \frac{CK \cdot e(u, V)^k}{e(u^{1/\pi} \cdot w^l, V^{\pi k})} = CK \cdot e(w^l, V^{-\pi k})
$$
最后,社交云输出重加密后的社交密文。
$$
RT_c = \left( C’ = C = SE_{CK}(m_c), C’_1 = CK \cdot e(w^l, V^{-\pi k}), C’_2 = R_2 = V^{k’ \cdot (\alpha + H_1(ID’))}, C’_3 = R_3 = H_2(e(u, V)^{k’}) \cdot V^l, C’_4 = C_4 = w^{\pi k} \right)
$$
5.5.3 授权解密
对于重加密的健康与社交密文,具有身份ID′的医疗分析器运行Analyzer.Decrypt算法进行解密。对于健康数据,医疗分析器首先计算
$$
K’ = e(K, C’_2) = e(u^{1/(\alpha + H_1(ID’))}, V^{t’ \cdot (\alpha + H_1(ID’))}) = e(u, V)^{t’}
$$
然后,医疗分析器计算
$$
Z = \frac{C’_3}{H_2(K’)} = \frac{H_2(e(u, V)^{t’}) \cdot g^b}{H_2(e(u, V)^{t’})} = g^b
$$
最后,医疗分析器计算健康密钥并恢复健康数据m_h。
$$
HK = C’_1 \cdot e(Z, C’_4) = HK \cdot e(w^b, g^{-\varphi \alpha t}) \cdot e(g^b, w^{\varphi \alpha t})
$$
对于社交数据,医疗分析器可以使用私钥计算V^l,然后计算会话密钥并恢复社交数据mc。
$$
CK = C’_1 \cdot e(V^l, C’_4) = CK \cdot e(w^l, V^{-\pi k}) \cdot e(V^l, w^{\pi k})
$$
因此,医疗分析人员在获得数据所有者授权后,可以访问重加密的健康数据和社交数据,以进行协作和分析。
6. 安全性分析
在我们的方案中,共享数据使用CP‐ABE和IBBE技术进行加密,由于DBDH假设成立,这些技术能够抵御选择明文攻击[23, 28]。我们对我们的方案的安全性进行如下分析[29]。
(1) 数据机密性 。健康数据使用访问策略进行加密,可确保不持有满足访问策略属性集的用户无法获取健康数据的机密性。在加密阶段,尽管医疗云为数据所有者执行加密计算,但其在没有属性密钥的情况下仍无法访问数据。在解密阶段,由于医疗云服务器的属性集无法满足密文中的访问策略,因此无法恢复值A = e(g,g)^γt,进而无法获得所需的健康密钥HK。因此,只有具备满足访问策略的有效属性的用户才能解密健康密文。社交数据使用随机对称密钥CK加密,随后CK通过IBBE进行保护。由于对称加密和IBBE方案是安全的,因此可确保未授权用户(其身份不在数据所有者定义的接收者身份集合中)无法获取外包社交数据的机密性。
(2) 细粒度访问控制 。细粒度访问控制允许在指定单个健康数据的差异化访问策略时具有灵活性。为了实施此类访问控制,我们利用CP‐ABE来保护健康数据的对称加密密钥。在我们的方案的健康数据加密阶段,数据所有者能够实施表达性强且灵活的访问策略,并加密用于加密健康数据的对称密钥。具体而言,访问树中定义的加密数据的访问策略支持包括与门和或门在内的复杂操作,能够表示任何所需的访问条件。
(3) 抗共谋性 。用户可能试图结合其属性密钥以访问他们 individually 无法访问的数据。在我们的方案中,中央机构为不同用户生成属性密钥;属性密钥与随机γ相关联,该随机值唯一地与每个用户相关联,使得不同属性密钥中的组件组合变得无意义。假设有两个或更多具有不同属性的用户联合起来以满足访问策略;他们在外包解密阶段无法计算F = e(g,g)^γs。因此,所提方案具有抗共谋性。
7. 性能分析
7.1 功能对比
我们在表1中列出了我们方案的关键特性,并将我们的方案与MHSN中的几种数据共享方案在健康数据保密性、健康数据访问控制、外包加密与解密、数据授权以及社会数据协作方面进行了比较。为了实现细粒度访问控制,这些方案大多采用了基于属性的加密技术。通过比较可以看出,只有EPPS[27]和我们的方案实现了健康数据的外包解密,以应对资源受限的移动设备或医疗保健传感器计算能力较低的问题。张等人[14]、王等人[25]、Au等人[20]以及我们的方案通过部署代理重加密机制(PRE)支持数据授权,使得半可信服务器可以在不获取任何明文的情况下,将密文重加密后提供给数据请求者用于研究和分析目的。此外,PEC[26]将社交数据与医疗记录结合用于应急呼叫,EPPS[27]根据社交数据将移动患者划分为不同的组。然而,PEC[26]和EPPS[27]仅利用了社交数据中的位置信息,忽略了社交网络中其他有价值的数据,这使得深入医疗分析(例如传染病分析)所需的大规模社交数据应用变得不可能。
此外,健康和社会数据可能由采用不同加密技术(如ABE和IBBE)的不同独立服务提供商收集和保护。因此,为了实现这些服务提供商之间的数据协作,必须支持在不同服务提供商之间的数据授权。我们的方案提出了一种高效的CP‐ABE构造,支持外包加密与解密,以实现对健康数据的高效细粒度访问控制,并通过将ABE加密的健康数据和IBBE加密的社交数据转换为仅能被授权的医疗分析器(如专家)解密的IBE加密的数据,为不同服务提供商之间的协作提供了一种安全解决方案,因为IBE更适合在MHSN中的资源受限的移动设备上使用。
7.2 性能比较
我们通过将我们的方案与几种安全健康数据共享方案进行比较,分析了健康数据加密、解密、重加密密钥生成和重加密的性能效率;结果如表2所示。设Tr为一次配对的计算开销,T0为一次指数运算的计算开销,Tt表示在G0中的运算时间,Tt表示在GT中进行一次指数运算的时间,Nc表示密文中的属性数量,Nr表示重加密密文中的属性数量,Nu表示社交网络中接收者的总数。我们忽略简单的乘法、哈希以及对称加密和解密操作。
首先,我们讨论健康数据加密和解密的计算开销。由于叶等人[22]、EPPS[27]和Au等人[20]在加密阶段均在本地执行标准ABE算法,其加密计算开销分别为Tr + (2Nc + 1)T0 + Tt、(3Nc + 1)T0 + Tt和(3Nc + 2)T0 + Tt,这些开销随着访问策略中的属性数量线性增长。在我们的方案中,具有移动传感器的用户仅需执行5T0 + Tt来加密数据,该开销为常数,与王等人[25]相同,且低于这些方案。在数据解密阶段,Au等人研究[20]中的接收者使用与匹配属性对应的私钥递归解密健康密文,其计算开销为(2Nc + 1)Tr + NcTt。在叶等人研究[22]、EPPS[27]以及我们的方案中,大部分解密计算被外包至云服务器。特别是,在我们的方案中,用户仅需执行一次配对运算即可解密密文。
此外,在数据授权阶段,Au等人[20]采用ABPRE对授权用户的密文进行重加密,且重加密密钥生成和数据重加密的计算开销均与新访问策略的属性数量相关。我们的方案将ABE加密的健康数据转换为IBE加密的健康数据以用于分析目的,这两个阶段的计算开销分别为3T0 + Tt和Tr,为常数级且高效,如王等人研究[25]所示。
我们还评估了当不同服务提供商中的密文需要协同工作时,社交数据共享的计算开销。从表3可以看出,数据所有者端的社交数据加密开销基于IBBE为(Nu + 4)T0 + Tt。如果用户是目标接收者之一,他可以执行2Tr + (Nu − 1)T0 + Tt的开销来解密密文。此外,我们的方案在社交数据授权阶段也具有高效率,其中IBBE加密的社交数据可通过半可信社交云使用由数据拥有者生成的重加密密钥重新加密为IBE加密的数据。生成重加密密钥的计算开销为4T0 + Tt,半可信社交云需要Tr的开销来完成社交数据重加密。最后,经授权的医疗分析器需要执行2Tr以获取由IBE保护的社交数据或健康数据。
| 表1:MHSN中数据共享方案的功能比较 | ||||||
|---|---|---|---|---|---|---|
| 张等人[14] | 王等人[25] | Au等人[20] | 基于属性的加密应急呼叫方案[26] | 个人健康信息共享方案[27] | 我们的方案 | |
| 健康数据保密性 | PKE | IBE | CP‐ABE | CP‐ABE | CP‐ABE | CP‐ABE |
| 健康数据访问控制 | 基于同意的 | 基于身份的 | 基于属性的 | 基于属性的 | 基于属性的 | 基于属性的 |
| 外包加密 | — | No | No | No | No | Yes |
| 外包解密 | — | No | No | No | Yes | Yes |
| 数据授权 | Yes | Yes | Yes | No | No | Yes |
| 社会数据协作 | No | No | No | Yes | Yes | Yes |
| 表2:健康数据共享计算开销的比较 | ||||
|---|---|---|---|---|
| 方案 | 数据加密 | 数据解密 | 数据重新加密密钥生成 | 数据重新加密 |
| 叶等人[22] | Tr + (2Nc + 1)T0 + Tt | 2Tr + Tt | — | — |
| 个人健康信息共享方案[27] | (3Nc + 1)T0 + Tt | Tt | — | — |
| Au等人[20] | (3Nc + 2)T0 + Tt | (2Nc + 1)Tr + NcTt | (3Nr + 1)T0 + Tt | (2Nr + 2)Tr + NrTt |
| 王等人[25] | 2T0 + 2Tt | 2Tr | 3T0 | Tr + T0 |
| 我们的方案 | 5T0 + Tt | Tr | 3T0 + Tt | Tr |
| 表3:社交数据共享的计算开销 | |||||
|---|---|---|---|---|---|
| 数据加密 | 数据解密 | 数据重新加密密钥生成 | 数据重新加密 | 数据授权解密 | |
| (Nu + 4)T0 + Tt | 2Tr + (Nu − 1)T0 + Tt | 4T0 + Tt | Tr | 2Tr |
7.3 实验评估
我们在配备2.53GHz处理器和4GB内存的Intel Core 2 Duo处理器的Linux系统上进行实验。实验原型使用C语言编写,并借助cpabe工具包和基于配对的密码学库[30]实现。我们采用基于512位有限域上的超奇异曲线构造的配对友好型A类160位椭圆曲线群。高级加密标准(AES)被选为对称密钥加密方案。
通过将我们的方案与叶等人[22]、EPPS[27]、Au等人[20]以及王等人[25]进行比较,我们分析了数据加密和解密的时间开销。在数据加密阶段,这些方案中的数据所有者使用访问策略对文件进行加密,并将加密文件发布到云服务器。图2显示了此阶段数据所有者上的计算时间。加密时间在叶等人[22]、EPPS[27]和Au等人[20]中随着访问策略中的属性数量增加而增长,而在我们的方案中保持不变。

所有者的加密时间在叶等人[22]、EPPS[27]和Au等人[20]中随访问策略中的属性数量增加而增长,而在我们的方案中保持不变。在数据解密阶段,图3显示了医疗提供商在解密密文时的计算时间与密文中访问策略的属性数量之间的关系。与Au等人[20]相比,可以看出叶等人[22]、EPPS[27]和我们的方案的解密时间几乎相同,均为常数,因为大部分繁重的解密操作已被委托给云服务器。

此外,我们评估了健康数据重新加密阶段和健康数据授权解密阶段的计算时间开销,结果分别如图4和图5所示。我们将我们的方案与以下方案进行了比较:Au等人[20]利用ABPRE来支持PHR安全共享的通用框架,以及王等人[25]采用IBPRE的方法。我们可以观察到,随着属性数量的增加,Au等人[20]的实验结果大致呈线性关系。在我们的方案中,数据所有者为授权的医疗分析人员生成重加密密钥,使得基于ABE的密文可以被重加密为基于IBE的密文,然后使用私钥进行解密,该私钥与访问策略中的属性数量无关,如王等人[25]所述。


结论
本文中,我们聚焦于智慧城市的MHSN中安全的健康数据与社交数据共享及协作,并提出一种基于属性的加密的详细构造方案IBBE。我们的方案允许数据所有者通过将基于属性的加密保护的健康数据和基于身份的广播加密保护的社交数据重新加密为基于身份的加密保护的数据,从而授权医疗分析人员访问数据,为不同服务提供商之间的协作提供了可行的解决方案。为了降低资源受限的移动设备的计算开销,我们的方案采用了外包加密与解密构造,可将大部分计算开销委托给云服务器。最后,我们在MHSN中将我们的方案与现有方案进行了性能分析和实验。结果表明,我们的方案是安全且高效的。
更多推荐
所有评论(0)