贾瑞龙,曹亚州,苗俊青,赵 沛,2
(1.克孜勒苏柯尔克孜自治州人民医院,新疆 克孜勒苏柯尔克孜 845350;2.南京医科大学第一附属医院,南京 210000)
云计算和物联网的巨大潜力使得互联医疗设备[1-2]和传感器提供高效医疗服务。在医疗保健系统中,诸多硬件设备 (智能手机、平板电脑、RFID、传感器、植入式医疗设备)将连接到互联网,助力于提供信息和服务。相关信息以电子病历形式记录下来,并上传到云端进行共享[3]。实际上,当在云中存储或处理数据时,数据所有者失去了对数据的控制。由于健康记录存储着非常敏感的信息,因此在云中共享和存储电子病历仍然是一个巨大的隐患。
基于属性的加密(ABE)[4-6]分为即密钥策略 ABE (KP-ABE)和密文策略ABE(CP-ABE), CP-ABE在EMR系统中非常有用。现有的CP-ABE方案大多使用双线性映射,并生成大尺寸的密钥和密文。密钥和密文的大小与所涉及的属性成线性关系,而双线性对的数量与属性的大小成正比。
本文利用POSET创建基于组的访问结构的方法,减少了加/解密过程中双线性对的数量,从而大幅减少加/解密运算负担。G-CP-ABE模型融合了对称加密和CP-ABE方案[7-9],有效地实现了数据的保密性和访问的隐私性。
在EMR数据外包的访问策略构建中,采用CP-ABE方案使得外包数据的计算效率成为一个真正的挑战。CP-ABE加密涉及许多昂贵的双线性对操作,并且双线性对的数量随属性的数量线性增加。该研究揭示了改进和优化现有解决方案以提高CP-ABE性能的机会。目前,优化技术广泛存在,并且这些技术在工程应用的各个领域发挥着巨大的作用。现有的工作大多都集中在通过直接采用CP-ABE在密文中嵌入访问策略,或者将计算外包给第三方。这两种方法都不适用于大型EMR表,因为双线性配对操作的数量与属性的数量和访问树的深度成正比。鉴于这些挑战,提出的安全框架旨在使用基于POSET的组访问策略[10-11]来减少双线性配对。此外,EMR表使用更快的对称加密进行加密,并且访问策略嵌入到密钥密文中,从而显着减少了总体加密和解密时间。
假设g为G1的发生器。通常,G1为椭圆曲线,G2为有限域。用e描述一个双线性映射,e:G1×G1→G2。双线性映射e具有以下属性:
1)双线性:对于G1中所有的p和q以及Zp中的a和b,有e(pa,qb)=e(p,q)ab;
2)非简并性: 在G1中存在p和q使得e(p,q)≠1;
3)可计算性:对于G1中所有p和q,均可计算e(p,q)。
双线性映射e的计算具有对称性,即e(pa,pb)=e(p,p)ab=e(pb,pa)。
假设{1,2,…,n}为一个数组,如果对于任意集合B,C,有B∈A,B⊆C,C∈A,则集合A⊆2{1,2…n}是单调的。
单调访问结构是由2{1,2…n}个非空子集组成的集合A。A中的集称为授权集,而不是A中的集称为未授权集。在本文中,组是属性,访问结构是属性的授权集。
CP-ABE包含四种基本算法:设置、密钥生成(KeyGen)、加密和解密。令U为描述数据属性和用户属性的通用属性集。
1)设置:以隐式安全参数作为输入,生成公钥PK和主密钥MK。
2)密钥生成(MK,S)→SKS:密钥生成将主密钥MK和一组属性S作为输入,并将与S关联的密钥输出到SKS。
3)加密(PK,M,A)→C:数据所有者执行加密,该算法将输入作为公钥PK、消息M和在U上定义的访问结构A。根据A进行加密,并输出密文CT(假设密文包含访问结构A)。
4)解密(PK,C,SKS)→M:数据用户运行解密算法,解密算法将公钥PK、密文C和用户密钥SKS作为输入。如果SKS满足访问结构A,则输出原始消息M。
运行设置算法并向对手交付公钥PK。
阶段1:对手对一组属性S1,S2,…,Sq1进行重复密匙操作。
对手提交两条消息M1和M2,其中|M1| = |M2|。同样,对手提交的质询访问结构为A*,其中阶段1中的所有Si都不满足A*,挑战者猜测一个随机的b位,并使用一个CT*向对手加密Mb。
阶段2:以Si不满足A*的限制重复阶段1。
对手输出b的猜测位为b′∈{0,1},若b′=b,则对手获胜。
CP-ABE的安全模型可以很容易地扩展,以管理选定的密文攻击。
隐私感知安全框架Group CP-ABE (G-CP-ABE)被用于管理外包给云的EMR的访问控制。该架构使医疗系统能够处理物联网设备产生的海量数据,以实现对病人的监护与管理。由于所收集的数据是非常敏感和私人的健康信息,因此该模型可确保数据的机密性和访问的隐私性。图1显示了系统中的主要实体。
图1 G-CP-ABE体系结构
可信中心(TCA) :根据真实的属性集,使用唯一的组密钥初始化每个组。
EMR数据所有者:为每个组定义访问结构,并在执行加密之前上载到EMR云。
EMR云:云服务提供商被视为半可信实体,它提供存储和其他数据交易服务。
数据用户:数据用户想要访问云中的EMR,可以从云中下载EMR,并根据满意的组访问结构进行解密。
物联网设备(传感器、心电监护仪、呼吸监视器及其他等植入式医疗设备)持续监测患者的健康状况,并将这些信息发送到服务器。内部服务器聚合、处理,并将这些数据作为EMR上传。
数据所有者可以创建和管理少量组,因为对于任何医疗保健系统,系统的用户都可以很轻松地预定。假设该体系结构遵循集中式组管理。用(C,≤)表示层次结构组组织,其中≤为C上的偏序。显然(C,≤)是一个偏序集(POSET)。组表示用户集合,任何两个组都是不相交的。任何一个偏序集都可以表示为一个访问图G=(V,E),其中顶点表示组,边表示从上一个到下一个的连接性。G为一个有向无环图。下面给出组访问结构的详细信息。
如表1中的EMR表所示,表中有五个字段,基于“与”门创建的访问结构如图2所示。
表1 医院中的EMR
图2 访问树结构示意图
访问树中的每个内部节点都是阈值门,叶节点是一个属性。如果x是叶节点,则使用parent(x)表示节点x的父级,使用att(x)表示x的属性。根据为组创建定义的POSET构建树T。
例如,为表1定义了4组,即G1、G2、G3和G4。根据树T树,每个组有G1={A,B,C,D,E},G2={A,D,E},G3={B,C},G4={D,E}个属性集。根据POSET的定义,G2≤G1表示G1的访问权限大于G2。在这里,G1是可以查看所有属性的最大根组。每个组都可以查看其属性及其子组的属性。
由于使用CP-ABE对整个数据库进行加密涉及许多昂贵的双线性对操作[12-16],从而导致较高的计算开销,因此使用对称加密对EMR数据库进行加密。对称加密所需的计算时间小于CP-ABE。因此,提出的G-CP-ABE分为两个加密阶段。在阶段1中,EMR数据库使用健壮的对称加密(AES-256位密钥)进行加密,而在阶段2中,使用CP-ABE对用于对称加密的密钥进行加密。因此,两级加密大大减少了计算时间和计算开销。
基于访问树T,选择对称加密的随机密钥。以图2中的访问树为例,键值选择为G4←k1,G3←k2,G2←(k1,k3),G4←(k1,k2,k3)。该分配意味着数据库的字段{D,E}使用k1加密,{B,C}使用k2加密,{A}使用k1加密。密钥表的构造如表2所示。
表2 秘钥表
密钥表指示组之间的部分排序。组G4只能解密密钥k1,并且可以解密和查看属性{D,E},而组G1可以解密所有密钥,并且可以查看数据库的所有属性。按照POSET的构造,创建修改后的访问树,如图3所示。
图3 修改后的访问树
根据表2中的密钥表绘制访问树。与图2所示的原始访问树相比,修改后的访问树对叶节点的数量进行了优化。由于双线性对的数量与叶节点的数量成正比,因此叶节点数量的减少是非常有利的。在实际情况中,EMR表有许多属性,修改后的访问树结构使G-CP-ABE能够更快地执行加密和解密。CP-ABE的解密时间在很大程度上取决于访问树中叶节点的数量,计算时间明显缩短。
当用户希望搜索一个或多个数据字段时,应该将对应于组标识的密钥SKS发送到云服务器。如果密钥SKS满足各个组的访问结构,则服务器返回加密的数据库表。数据用户运行解密算法以获得所需的解密密钥。
然后,EMR所有者使用CPABE方案对密钥表K进行加密,并将访问策略嵌入到密钥表的密文中。密钥表的属性是随机对称密钥。随机密钥的数量总是有限的,因为它直接取决于组的数量。对于表1的数据,组数为4,秘钥数为3。因此,秘钥的数量总是小于或等于组的数量。结果,属性的数量减少了。由于双线性配对操作的数量和加密密钥的长度取决于表中属性的数量,所以属性的减少总是会减少提供性能增强所涉及的计算。另外,不加密原始表,而是使用CP-ABE对简化后的小密钥表进行加密,从而最小化总的加密和解密时间。
解密过程相对简单。数据用户从EMR云下载密文文件C。该文件有两部分。第一部分存储密钥表K的密文,用户对这一部分进行解密,获得所需的匹配组属性集的相应对称解密密钥。。
用户的私钥由给定的组属性集标识。使用一个希函数H:{0,1}*→G0,将属性的二进制表示映射到一个随机的组元素。属性集合被定义为U={A1,A2,…,An}。除了CP-ABE方案的各个阶段之外,所提出的G-CP-ABE方案还包括对称密钥设置、对称加密和对称解密功能。当数据量较大时,CP-ABE会产生更多的计算开销。因此,对称加密是实现计算效率的较好选择。
设置(1m,U)→(PK,MK):TCA运行Setup算法,选择素数为p和生成器为g的双线性组G0,设置安全参数为m,并在Zp中选择两个随机元素α,β。算法输出公钥PK和主密钥MK如下:
PK={G0,g,h=gβ,e(g,g)α}
(1)
MK={gα,β}
(2)
密钥生成(PK,MK,S)→SKs:密钥生成算法将S作为输入组属性集并输出秘密密钥SKS,并用该集合进行标识。该算法为S中的每个属性i随机选择r∈Zp和ri∈Zp。密钥计算如下:
SKS= (D=gα·hr,∀i∈S:Di=gr·H(i)ri,Di′=hri)
(3)
此时,每个属性集都最少有一个属性,最多有m个属性,其中m表示使用的随机密钥的总数。属性数越少,越能减少CP-ABE密钥的计算量和长度。由于修改后的访问树具有较少数量的属性,因此G-CP-ABE花费的密钥生成时间更少。使用修改后的访问树,可以大大减少求幂运算的次数。
数据所有者调用子例程加密(PK,K,A)。其中,PK为公钥,K为对称密钥集,A为组访问结构。该算法输出密文C2。数据使用者只有在拥有正确的属性集时,才可以访问相应的解密密钥。数据所有者从Zp中选择m个随机数x1,x2,…,xm,然后计算Ci1和Ci2(i=1,2…m)。
Ci1=ki·e(g,g)α.xi,Ci2=gxi
(4)
由于m是有限小的,所以G-CP-ABE的指数运算次数很少,该算法为访问树中的每个节点y选择多项式qy。节点信息是从上到下随机选择的。对于每个节点y,多项式的阶数设置设为ky-1,其中ky为该节点的阈值。从根节点R开始,数据所有者设置qR(0)=x1,并选择其他点来定义多项式qR。多项式中的点由两种类型的节点组成:层次节点和从访问树中随机选择的节点。设置qy(0)=qparenty(index(y))。考虑叶节点L的集合,然后数据所有者对L中的每个叶节点z计算Ci1(z)和Ci2(z),如下所示:
Ci1(z) =hqy (0),Ci2=H(att(y))qy(0)
(5)
此时,集成密钥集密文。对称加密还针对每个属性子集使用m个密钥进行迭代执行,最后上传的密文为{C1,C2}。
解密(C,SKS):数据用户迭代调用这个子例程。与CP-ABE类似,定义了一个递归函数解密节点(C2,SKS,y),它采用C2(G-CPE密文)、用户密钥SKS和一个节点y。
如果节点y是叶节点,则i=att(y),如果i在S中,则:
如果i不在S中,则将DecryptNode(C2,SKS,y)设置为null。如果y不是叶节点,那么对于z=child(y)的每个节点z,运行DecryptNode(C2,SKS,y)并将结果存储在Fz中。设Sx为子节点z的任意kx大小的集合,使得Fz不为空。如果不存在这样的节点,则表示该节点不满足并返回null。否则,计算下式:
如果S满足访问树,则设置:
Ai=DecryptNode(C2,SKS,Yi)=e(g,g)γ·β·qyi(0)=
e(g,g)γ·β·Si(i=1,2…k)
接下来,可以这样计算e(g,g)αSi:
CP-ABE的解密时间取决于用户拥有的属性数量。在此,由于使用POSET组结构创建访问树,因此在G-CP-ABE中分配给用户的属性数量较少。因此,G-CP-ABE具有更好的解密性能。
基于层次结构,节点可以确定后继节点(子节点)的密钥,但反之则不成立。如果Si是当前节点,则依次确定e(g,g)αSi,e(g,g)αSi+1,…,e(g,g)αSi+m并获得密钥{ki,ki+1…km}。现在,目标组用户可以解密并查看密钥表中的属性{Ai,Ai+1…Am}。
(10)
通过添加一个默认组策略来处理紧急情况,如图4所示。
图4 紧急情况下的访问树更新
添加一个虚拟属性,并将应急组作为访问树的根组。现在,根组有权查看所有属性。根组是使用时间参数创建的,并且在句点之后无效。然后,删除根并保留原始的访问树。修改后的密钥表如表3所示。
表3 修改后的密钥表
组的创建和管理由数据所有者本身作为访问结构创建的一部分来完成。假设使用简单的组管理,因为CP-ABE可以防止串通攻击。
提出的方案可确保对外包给云的医疗记录的隐私和更好的访问控制。假设端到端通信是通过SSL、TSL或任何其他安全协议安全加密的。当且仅当其属性与嵌入在第二个密文中的访问策略匹配时,每个用户可以解密这些记录。
在决策双线性密钥交换算法 (DBDH)的假设下,所提出的EMR访问控制策略在组访问策略安全模型中是安全的。
为了验证安全性分析,使用CP-ABE 工具包(斯坦福大学)和基于Java配对的密码库实现了G-CPABE。该实验采用具有1024位离散日志安全性的A型配对。使用高级加密标准(AES)对EMR表进行加密,而ABE密文是加密的AES密钥。在3.64 GHz Intel Core i7处理器,Ubuntu 14.04、14 GB RAM的处理器上进行了实验。
在仿真初始阶段,该模型建立了基于POSET的访问结构,并对属性进行了分组(如图2和图3所示)。属性的分组创建了一种数据库的逻辑垂直分区。每个逻辑分区都使用随机对称密钥加密。G-CP-ABE不是使用单个对称密钥,而是使用多个密钥对数据库的每个逻辑片段进行加密,以提供更高的安全性。CP-ABE的加密时间与访问树中的叶节点数量成正比。仿真中使用的属性数为{5、10、15、20、25、30、35、40、45和50}。同时,通过改变EMR表中的记录数来进行实验。
用于AES加密的密钥根据组访问结构存储在密钥表中(见表2)。然后使用CP-ABE方案对密钥表进行加密。密钥生成时间是根据所创建组的键表中的子集数量来度量的。图5所示的结果表明,密钥生成时间与各组密钥结构中子集的数量成线性关系。由于修改后的访问树中的叶子节点减少,因此该方法的密钥生成时间更短。
图5 密钥生成时间与密钥表中的子集
访问结构只考虑“与”门,以确保所有属性都参与访问策略的创建。测量访问树中的级别对加密时间的影响,结果如图6所示,表明加密时间随访问树中级别的数量线性增加。
图6 加密时间与访问树的深度
所提出的模型通过使用基于POSET的组结构来减少访问树的深度,从而显着减少了总体加密时间。使用不同数量的记录进行仿真,加密时间随记录数量的增加而线性增加。结果如图7所示。使用基于POSET的组访问结构对原始访问树进行优化。优化过程减少了访问树中的叶节点数量,从而改进了密钥生成、加密和解密性能。
图7 加密时间与EMR记录的数量
结合AES和CP-ABE加密标准,提出了一种新的具有显著计算增益的细粒度访问结构G-CP-ABE。POSET通过对用户进行分组来创建访问结构,并将属性分配给组而不是个人。G-CP-ABE的主要优点是与现有作品相比具有最小的双线性对。安全性分析和实验分析表明,改进的G-CP-ABE性能使该方案适用于云和资源受限的物联网设备。