雾计算中支持外包与撤销的属性基加密方案

2020-05-18 11:06黄凤鸣涂山山
计算机工程 2020年5期
关键词:密文解密密钥

黄凤鸣,涂山山,孟 远

(北京工业大学 信息学部,北京 100124)

0 概述

近年来,由于移动物联网设备数量的爆发式增长,海量的数据、设备的移动性以及实时处理的要求对云计算提出了严峻的挑战。由于云计算的静态条件以及云服务器与终端用户之间的物理距离限制,云计算不适用于范围广泛的移动应用,移动应用程序的数据处理必须在地理上分布的数据中心进行,为解决这些问题,雾计算技术应运而生[1-2]。

雾计算是一种极具研究前景的新型计算范式,它将云计算扩展到网络边缘,可以实现云计算和物联网设备之间的平滑融合,具有低时延、位置感知、支持终端设备的移动性、支持物联网设备的异构性以及卸载云计算[3-4]等特点。随着物联网设备的增长,数以亿计的海量数据对云计算提出了严峻的要求,雾计算可以处理一些低计算要求的数据,因而减缓了云计算的任务处理压力,满足了移动应用实时处理的要求。

然而,由于雾计算是云计算的重要扩展,因此继承了云计算的许多安全问题和隐私挑战,其中的主要问题如下:云计算中传统的数据加密技术不能直接应用到雾计算;传统的数据加密技术运算复杂,不适用于雾计算中计算资源有限的物联网设备;传统的访问控制技术粒度太粗,不具有雾计算中终端设备多样性的特点。

基于以上问题,文献[5]提出了基于属性的加密(Attribute-Based Encryption,ABE)的解决方案,基于属性的加密机制将属性这一概念引入到密码体制中,各个实体都可以通过一系列的属性进行描述,加密者不需要知道用户的具体身份信息,只需在加密时将属性或访问结构嵌入到密文中,解密者在进行解密时,只有当用户的属性满足定义的访问结构时才能解密成功,由此实现了对密文细粒度的访问控制。然而在实际应用中,常常涉及用户权限变更和属性到期的情况,因此在基于属性的加密机制中实现属性撤销是一个亟待解决的问题。

为满足雾计算中权限变更的需要,本文提出一种基于CP-ABE的属性撤销方案。该方案通过细粒度的访问控制与安全的数据传输,以实现雾计算网络中的安全通信。

1 相关工作

基于属性的加密技术由文献[5]提出并以其显著的优势迅速成为广大科研者的关注热点。属性基加密是一种公钥加密机制,其关键思想是在密文中嵌入一系列的属性或访问控制结构,解密者在解密时,用于描述身份特征的属性必须满足定义的访问结构时才能解密成功。文献[6-8]根据访问控制结构所在的位置不同,又将ABE划分为基于密钥策略的属性加密方案(Key Policy Attribute-Based Encryption,KP-ABE)和基于密文策略的属性加密方案(Ciphertext Policy Attribute-Based Encryption,CP-ABE)。文献[9]将属性加密方案应用到雾计算中,来实现雾节点和云服务器之间的安全密钥共享,但针对属性撤销问题没有做出解释。

在实际应用中,由于用户权限会发生变更,这就要求系统能够根据实际需要对属性进行一定的管理,主要包括更新和删除等。近年来在关于ABE的方案中,侧重点大多在于怎样实现表达更为丰富的访问策略,而没有重点考虑加密机制中属性撤销问题[10]。目前比较流行的两种撤销模式由文献[11]提出,分别是直接撤销模式和间接撤销模式。文献[12]将代理重加密技术引入属性撤销中,其核心思想是利用版本号来标识系统主密钥的演进过程,同时系统公钥、用户私钥和密文都与版本号相关,但代理者需要实时在线。文献[13]提出属性群密钥的概念,系统会依照撤销列表产生相应的群密钥,群密钥当中含有撤销需要用到的信息,只有合法用户才能获得群密钥,但其复杂的计算开销不适合物联网环境中资源有限的设备,无法直接用于雾计算。文献[14]提出了通过为每个用户的私钥设置版本号实现用户属性的撤销,但撤销粒度太粗。

文献[15]提出了将属性基加密技术中的解密操作外包的新范式。文献[16]提出了一个CP-ABE隐私保护方案,该方案允许便携式设备将加密和解密操作外包给云服务提供商,而无需泄露数据,但是加密的计算开销会随着数据所有者访问结构的复杂性而增加。文献[17]介绍了一种基于属性的加密通用结构,其中具有可验证的外包解密,为用户留下了数量不变的简单计算来解密密文。文献[18]将解密外包给雾节点,但没有实现加密外包。文献[19]提出将加解密过程中复杂的操作转移到云服务器中,但该方案不适合于雾计算。

本文提出一种基于“云-雾-终端”的三层系统模型,将传统云计算中的属性加密机制引入到雾计算中,保证了数据传输的机密性,实现依据雾节点的身份验证和访问控制。由于用户属性动态变化的问题,给出一种基于CP-ABE的属性撤销机制,依据属性组密钥,实现属性的即时撤销,有效保证方案的可用性。本文通过将部分加解密运算外包给雾节点,减轻了终端设备的计算负担,提高了系统的计算效率,并且通过仿真实验对计算开销进行了有效分析,证明了本文提出的方案相比现有方案具有高效性和可靠性。

2 系统模型

本文提出了“云-雾-终端”的三层系统模型,并在此基础上引入了属性中心来实现属性撤销。

本文的系统模型如图1所示,此模型由云服务器、雾节点、属性中心以及终端设备(包括数据提供者和用户)实体组成。

图1 本文系统模型

在本文模型中,雾节点为超级基站,其与终端设备之间通过无线网络连接,而其他实体之间是光纤连接。其各个实体的功能如下:

1)属性中心。属性中心负责生成系统公钥PK和主密钥MK,公钥PK公开,属性中心自己保存MK。生成PK和 MK后,属性中心可以为用户进行授权。

2)云服务器。云服务器提供数据存储和管理功能,包括数据存储服务器和数据管理服务器两部分。当有属性撤销事件发生时,可以通过重新加密密文,来阻止撤销用户的访问。

3)雾节点。雾节点承担了部分加解密工作,数据拥有者将部分加密操作外包给雾节点,用户将部分解密操作外包给雾节点,以此来减轻终端设备的计算负担。

4)数据拥有者。数据拥有者为需要加密的数据定义一个访问策略,规定哪些用户可以访问,定义授权用户的范围,定义访问策略之后即可加密隐私数据。

5)用户。用户在访问数据时,可以通过雾节点从云服务器下载数据并解密,只有符合访问策略的用户可以访问数据,未授权以及相关属性撤销的用户不可以访问数据,实现了细粒度的访问控制。

3 核心算法

本文方案包括初始化(Setup)、密钥生成(KeyGen)、加密(Enc)、重加密(Re-Enc)、解密(Dec)和属性撤销(Attribute Revocation)6个步骤。具体算法流程如下:

1)初始化(Setup)

首先属性中心运行Setup算法,生成阶为素数p、生成元为g的双线性群G0和双线性映射e:G0×G0→GT,然后生成随机数h∈G0、α,β∈Zp以及哈希函数H:{0,1}*→G0,最后输出公钥PK和主密钥MK分别为:

PPK=(g,h,gα,gβ,hβ,e(g,g)αβ)

(1)

MMK=(α,β)

(2)

2)密钥生成(KeyGen)

密钥生成算法包括私钥生成算法和属性组密钥生成算法两部分。

(1)私钥生成(SKGen)

属性中心运行SKGen算法,选择一个随机数γ∈Zp,这是分配给每个用户的唯一秘密数,然后属性中心为每个属性j∈S选择随机数ε∈Zp和rj,其中,S为用户的属性集,输出私钥SK和外包私钥SK′分别为:

SSK=(D=g(α+γ)β)

(3)

(4)

用户的外包密钥SK′发送到雾节点,用户只存储SK。

(2)属性组密钥生成(AGKGen)

云服务管理器为全体用户生成二叉KEK树,如图2所示。在KEK树中,每个节点vj被设置一个随机数KEKj∈Zp,每个用户ut被分配给树的叶节点。

图2 KEK树

每个用户ut接收到从其叶节点到树的根节点的路径密钥PATHt。例如,u2的路径密钥为PATH2={KEK9,KEK4,KEK2,KEK1}。

3)加密(Enc)

加密算法包括雾节点加密算法和数据拥有者加密算法两部分。首先数据拥有者定义一个访问策略Ta,并将Ta发送给雾节点,然后运行雾节点加密算法。

(1)雾节点加密(Fog.Enc)

雾节点运行Fog.Enc算法来执行外包加密。对于访问策略树Ta中的每个节点x,雾节点选择一个多项式px。从根节点R开始,从上到下选择px。对于树中的每个节点x,将多项式px的最高次数dx设置为比该节点的阈值kx-1,即dx=kx-1。

从根节点R开始,算法选择一个随机数s∈Zp,令pR(0)=s。对于任何其他节点x,设置px(0)=pparent(x)(index(x))。设Y为Ta中的叶节点集,雾节点输出部分密文CT′:

(5)

雾节点将CT′发送给数据拥有者。

(2)数据拥有者加密(Owner.Enc)

数据拥有者接收到部分密文CT′后,运行Owner.Enc算法。首先选择随机数t∈Zp和DK∈Zp,DK被用作对称密钥,使用对称加密算法对数据M进行加密,即C=SEDK(M)。然后计算C1=DK·e(g,g)αβt,C2=gt,C3=C′3·gβt和C4=C′4·hβt。最后,数据所有者输出密文CT:

CT=(Ta,C,C1,C2,C3,C4,C5)

(6)

数据所有者将密文CT发送给雾节点,雾节点将接收到的密文CT上传到云服务器上,然后云服务将对密文进行重新加密。

4)重加密(Re-Enc)

在分发数据前,云数据服务管理器首先使用属性组密钥Kλy重新加密密文:

(7)

在KEK树中,选择可以覆盖与用户集Gi关联的所有叶节点的最小根节点覆盖集KEK(Gi)。例如,如果Gi={u1,u2,u3,u4,u7,u8},则其最小根结点覆盖集KEK(Gi)={KEK2,KEK7}。

生成标头信息如下:

Hdr=(∀y∈Y:{Ek(Kλy)}K∈KEK(Gy))

(8)

其中,EK(Kλy)为对称加密算法。

5)解密(Dec)

解密算法包括雾节点解密算法和用户解密算法两部分。

(1)雾节点解密(Fog.Dec)

雾节点从云服务器下载密文后,运行Fog.Dec算法。首先从标头信息中获取属性组密钥Kj,然后更新其私钥如下:

(9)

运行DecryptNode算法,这是一种递归算法。该算法访问策略Ta中的节点x,密文CT″和外包密钥SK″作为输入。

如果节点x是叶节点,那么设置z=attrx。若z∈S,计算:

(10)

如果Z∉S,则DecryptNode(CT″,SK″,x)=⊥。如果节点x是非叶节点,则计算:

e(g,g)rβ·px(0)

(11)

其中,j=index(n),S′x={index(n):n∈Sx}。

如果属性集S满足访问策略Ta,则计算:

F=DecryptNode(CT″,SK″,R)=e(g,g)γβpR(0)=

e(g,g)γβs

(12)

然后,计算雾节点:

B=(e(D1,C3))/(e(D2,C4))=

(e(gγhε,gβ(s+t)))/(e(gε,hβ(s+t)))=

e(g,g)γβ(s+t)

(13)

A=B/F=e(g,g)γβ(s+t)/e(g,g)γβs=e(g,g)γβt

(14)

最后,雾节点发送部分密文T=(Ta,C,C1,C2,A)给用户。

(2)用户解密(User.Dec)

用户从雾节点接收到部分密文T后,运行User.Dec算法,得到对称密钥DK:

(15)

最终,应用对称加密算法可以解密出明文M。

6)属性撤销

(16)

标头信息更新如下:

(17)

此属性撤销过程可确保细粒度的访问控制,例如每个属性组中能够实现立即用户吊销。此外,它也可以通过在Hdr中选择性地发送更新的属性组密钥,实现立即属性撤销。因此,撤销可以在属性级别而不是系统级别完成[13]。

4 安全性与性能分析

4.1 安全性分析

属性基加密方案需要保证数据机密性、抗共谋性和前向/后向安全,基于此对本文方案的安全性进行分析。

1)数据机密性

首先使用访问策略对数据进行加密,如果用户不具备满足访问策略的一组属性,则可以保证数据的机密性。在加密阶段,尽管雾节点为数据提供者执行加密计算,但由于没有密钥,它仍然无法访问数据。在解密阶段,因为属性集不能满足密文中的访问策略,且它们不知道用户的D值,所以云服务器或雾节点无法恢复值A=e(g,g)γβt以进一步获得所需的对称密钥DK。因此,只有具有满足访问策略的有效属性的用户才能解密密文。

2)抗共谋性

在本文方案中,属性中心为不同的用户生成私钥,私钥和随机数γ有关,与每个用户都有唯一的关联,使得不同私钥中的组件组合毫无意义。假设2个或多个具有不同属性的用户组合在一起以满足访问策略,他们无法在外包解密阶段计算F=e(g,g)γβs。因此,该方案具有抗共谋性。

3)前向和后向安全

在基于属性的加密算法中,后向安全意味着应该阻止任何持有属性(满足访问策略)的用户在他持有属性之前访问先前交换的数据的明文。另一方面,前向安全意味着禁止任何丢弃属性的用户访问其丢弃属性后交换的后续数据的明文,除非用户持有的其他有效属性满足访问策略。在本文方案中,由于不满足访问策略的用户无法解密密文,因此保证了后向安全。属性被撤销后,密文经过重加密得到更新,被撤销用户无法恢复出属性组密钥,因此无法解密密文,从而保证了前向安全。

4.2 计算开销分析

因为本文方案算法的执行时间主要分布在指数运算和双线性对运算上,乘法运算量可以忽略不计,所以接下来将分析指数运算和双线性对运算的计算量。各个算法的计算开销如表1所示,其中,n表示属性的总个数,G代表一次双线性对运算,E代表一次指数运算。

表1 4种算法的计算开销

本文实验在ubuntu16.04操作系统下进行,使用处理器为2.40 GHz,Intel Core i5的计算机,利用Charm加密库来包装基于斯坦福配对的密码学(PBC)。Charm加密库是一个开源库,执行基于配对的密码系统的核心数学函数。本文的仿真实验是在具有对称双线性对的椭圆曲线y2=x3+x下对提出的算法和现有算法进行分析比较,并在10~50中选择属性数量。

KeyGen算法的运行时间与用户的属性集合中元素个数的关系如图3所示。随着用户的属性集合中元素个数的增加,算法的运行时间也不断增加。由于本文提出的方案需要在KeyGen阶段生成外包私钥以及属性组密钥,因此其运行时间比文献[13]方案长。

图3 KeyGen算法计算时间与属性个数的关系

Enc算法的计算时间与属性个数的关系如图4所示。在Enc算法中,本文方案将部分加密工作外包给雾节点,因此其运行时间是常数级别,与访问策略中的属性个数无关,而在文献[13]方案中,Enc算法的运行时间与访问策略中的属性个数呈现线性关系。

图4 Enc算法计算时间与属性个数的关系

ReEnc算法的运行时间与用户的属性集合中元素个数的关系如图5所示。在ReEnc算法中,本文方案与文献[13]方案的运行时间相差不大,都随着属性个数的增加而增加。

图5 ReEnc算法计算时间与属性个数的关系

Dec算法的计算时间与属性个数的关系如图6所示。由于在Dec算法中本文方案将部分解密工作外包给雾节点,因此其运行时间是常数级别,与访问策略中的属性个数无关,而在文献[13]方案中,其运行时间与访问策略中的属性个数呈现线性递增关系。解密相较于加密更频繁,由图6可知,本文方案的解密时间处于毫秒级,充分体现了本文方案的高效性。通过实验结果可以看出,由于本文方案将部分加解密操作外包给雾节点,计算开销总体较低,优于文献[13]方案,更适合于终端计算资源有限的设备,满足物联网环境的应用需求。

图6 Dec算法计算时间与属性个数的关系

4.3 通信开销

图7 Enc算法的通信时间与数据大小和传播距离的关系

图8 Dec算法的通信时间与数据大小和传播距离的关系

5 结束语

针对雾计算环境下属性基加密机制中访问权限撤销管理困难的问题,本文提出基于CP-ABE的属性撤销方法。通过将部分加解密运算外包给雾节点,减轻终端设备的计算负担,提高系统的运算效率。仿真实验结果表明,相比现有属性基加密方案,本文方案可靠性更高,满足实际雾环境中属性撤销的应用需求。由于本文仅采用单属性中心进行授权,工作量较大,因此下一步将对多授权中心问题进行研究。

猜你喜欢
密文解密密钥
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
基于模糊数学的通信网络密文信息差错恢复
炫词解密
解密“一包三改”
密码系统中密钥的状态与保护*
炫词解密
TPM 2.0密钥迁移协议研究
一种对称密钥的密钥管理方法及系统
一种基于密文分析的密码识别技术*