APP下载

混合云环境下基于属性的密文策略加密方案

2016-07-19陈亮杨庚屠袁飞

计算机应用 2016年7期
关键词:密钥解密加密

陈亮 杨庚 屠袁飞

摘要:针对现有云存储的数据和访问控制的安全性不高,从而造成用户存储的敏感信息被盗取的现象,结合现有的基于密文策略属性加密(CPABE)方案和数据分割的思想,提出了一个基于混合云的高效数据隐私保护模型。首先根据用户数据的敏感程度将数据合理分割成不同敏感级别的数据块,将分割后的数据存储在不同的云平台上,再根据数据的安全级别,进行不同强度的加密技术进行数据加密。同时在敏感信息解密阶段采取“先匹配后解密”的方法,并对算法进行了优化,最后用户进行一个乘法运算解密得到明文。在公有云中对1Gb数据进行对称加密,较单节点提高了效率一倍多。实验结果表明:该方案可以有效保护云存储用户的隐私数据,同时降低了系统的开销,提高了灵活性。

关键词:

访问控制;混合云;云存储;数据分割;属性;敏感级别

中图分类号: TP309.2 文献标志码:A

0引言

云计算(cloud computing)是一种非常有前景的计算模式,其建立在虚拟化、并行与分布式计算以及面向服务的体系结构上。云计算可以降低企业的成本,以及减少硬件设施的搭建,云用户可方便、灵活定制自己需要的服务、应用及资源,并且云具有强大的计算和存储能力。云存储作为云计算的重要组成部分,已经在国际上得到广泛关注和发展,很多公司都提供了开放的云存储业务。通过低成本的节点存储设备,提供大规模的存储服务,但现有的公有云存储提供商对于用户数据的隐私保护比较有限,这也是用户无法完全信任云存储服务提供商的原因。

基于属性加密(AttributeBased Encryption, ABE)的想法由Sahai等[1]于2005年提出。它把身份标识被看作是一系列的属性。Goyal等[2]于2006年提出了密钥策略的基于属性加密方案(KeyPolicy Attribute Based Encryption, KPABE),引入访问控制树的概念,并把访问控制树部署在密钥中,来限制用户解密密文,实现了对密文的细粒度共享。Bethencourt等[3]于2007年首次提出密文策略的基于属性加密(CiphertextPolicy AttributeBased Encryption, CPABE),在该方案中,用户的私钥是根据用户的属性集合生成的,密文策略则以访问树的形式部署在密文中,这种方式和KPABE方式相反,当且仅当用户的属性集合满足密文中密文策略时,用户才能解密。在ABE系统中,通过属性集合表示用户的身份,其中的属性集合由一个或多个属性构成。从用户身份的表达方式来看,基于属性加密的属性集合具有更强、更丰富的表达能力。

鉴于云存储服务商能为了商业利益,私自获取用户的敏感信息,对于这种服务提供商不完全可信的情况,引入密文机制的访问控制是十分必要的。同时,利用传统的加密技术将加密后的数据托管到云存储系统中,会带来较大的系统开销。针对上述问题,本文结合了数据分割的思想[4],并采用CPABE加密的方法,提出了一个基于混合云环境下的高效数据隐私保护模型,该模型具备灵活的访问权限管理能力;同时也减小了加密数据在云端存储的系统开销,提高了用户数据存储的性能和安全性。

1相关工作

Shamir[5]早在2005年提出了一种新的加密访问控制方法:基于身份的加密方案。在基于身份加密方案中,作者提出了模糊身份(Fuzzy Identity)的概念,并结合该概念设计了一个基于模糊身份的加密(Fuzzy Identity Based Encryption)方案。模糊身份是指一组由描述性属性构成的集合,这些属性是通过生物识别技术采集和处理后的特征值。在解密过程中,当且仅当解密者与加密者属性集合交集中属性的个数大于一个特定值时,解密者才可以解密。模糊身份是指一组由描述性属性构成的集合,这些属性是通过生物识别技术采集和处理后的特征值。在解密过程中,当且仅当解密者与加密者属性集合交集中属性的个数大于一个特定值时,解密者才可以解密。

后来文献[6]中首次将ABE算法分类,并定义为基于密钥政策的ABE(KPABE)和基于密文政策的ABE(CPABE)算法,但是并没有能够给出相应的加密算法。文献[7]提出了第一个CPABE方案,但是在该方案中,加密者通常把访问策略与密文一起发送给用户,因此获得密文的用户就能够知道访问策略,但有时访问策略本身就是敏感信息,需要保密。尤其是在云计算环境下,由于用户和资源的大规模多源性,保护访问策略的隐私越发重要,许多学者也对此进行了研究。

Nishide等[6]和YuChase文献7的作者姓氏为Chase,而不是Yu,这二者不匹配,请作相应调整。要注意文献在正文中的依次引用顺序。[7]扩展了文献[8]中的CPABE方案,实现了访问策略的隐藏,但是这两个方案都只支持一个与门的多值策略。文献[9]采用了与k匿名相似的方法,即策略匿名的方法,结合图论中语法树的概念,对Nishide等[6]的一个CPABE方案进行扩展,保护了访问策略的隐私。攻击者只能得到一个可能策略的大集合,而不能确定哪一个策略是实际用到的。该方案可以结合多个与门,能够表达多种布尔结构构成的访问策略。文献[10]利用线性整数密钥共享(Linear Integer Secret Sharing, LISS)矩阵表示访问结构。LISS适合任意的访问结构,且比LSSS表示的花费小,该方案在判定双线性DeffieHellman(Decisional Bilinear DeffieHellman, DBDH)假设下是选择性安全的。这一方案在判定线性型(Decision Linear, DLinear)假设和DBDH假设下是选择安全的。

本文首先根据数据的敏感等级将其分割成不同敏感程度的数据集,分别存储于混合云的不同域中:可将敏感数据存储在私有云中,并利用CPABE加密;而将非敏感数据存入公有云当中,根据数据的安全需求利用不同强度的加密算法进行加密(例如:基于数据染色的加密方案、微型加密算法(Tiny Encryption Algorithm, TEA)、分组对称加密算法等)。私有云和公有云中各自保存一部分信息,所以隐私外泄的可能性也会降低。随着云的发展,用户属性将越来越多,数据量也将越来越大,如果用CPABE算法来加密所有数据,将造成巨大的系统开销。故此方案只利用CPABE处理相对较小的敏感数据,大大减小了系统的开销。此外,在解密敏感数据时采用“先匹配后解密”的方法,在私有云中根据匹配结果来决定是否进行解密,匹配失败则不解密,从而降低了系统的整体运算量,提升了效率。最后,用户仅接收来自于私有云和公有云的信息,并进行简单的数据处理,所有复杂的数据计算过程交由云来完成,这不仅提高了处理速度,而且提高了安全性。

2背景知识

2.1双线性映射

选取两个阶数为p的乘法循环群,其中p是一个大素数,g是生成元,定义映射e:G×G → GT,若满足以下3个性质。

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)。

则称这个映射为一个有效的双线性映射。由于e是一个对称操作,所以e(ga,gb)=e(g,g)ab=e(gb,ga)。

2.2复杂性假设

1)DBDH假设。首先定义a,b,c,z∈R Zp,另外g∈R G是一个生成元。本文认为若在没有明显优势的情况下以多项式时间内从组[g,ga,gb,gc,gz]中区分出[g,ga,gb,gc,e(g,g)abc]是不可能的,则认为在G中DBDH假设成立。

2)DLinear假设。首先定义z1,z2,z3,z4,z∈R Zp,另外g∈R G是一个生成元。本文认为若在没有明显优势的情况下以多项式时间内从组[g,ga,gb,gc,gz]中区分出[g,ga,gb,gc,e(g,g)abc]是不可能的,则认为G中DLinear假设成立。

2.3访问结构

访问结构就是一个树形结构。在这个树中所有非叶子节点都是带有阈值的门限方案,叶子节点表示属性。对树中每个非叶子节点定义子节点数量和门限值。在本文中,访问结构(又叫作CPABE的密文政策)是一个返回0或1的值给属性集L的规则W,通常用L=W表示L满足W,而L不满足W则表示为L≠W。

在本文中采用的访问结构由一个支持多属性和通配符的简单的“与门”来完成,文中的访问结构如同文献[11]中采用的一样。通常给定一个属性列表L=[L1,L2,…,Ln]和一个密文政策W=[W1,W2,…,Wn],当Li=Wi或者W=※(※表示该通配符在密文政策中表示“无所谓”)对所有的1≤i≤n成立时,表示L=W,否则L≠W。

2.4CPABE算法的一般形式

传统的CPABE算法包含了4个部分:Setup、Encrypt、KeyGen、Decrypt,这4个部分分别实现了系统的生成、文件加密、生成私钥、文件解密的过程。具体描述如下。

Setup此步骤中除了输入隐蔽的安全参数,不输入任何其他数据,生成公钥PK和主密钥MK作为输出。

Encrypt(PK,M,A)加密算法输入公钥PK,待加密的文件M和包含全局属性的访问结构A。算法将对M进行加密,产生的密文CT作为输出,密文只有当用户的属性满足其访问结构时才能够被访问。假定密文暗中包含了访问结构A。

KeyGen(MK,S)密钥生成算法输入主密钥MK和一个用户的属性集S,输出与之对应的私钥SK。

Decrypt(PK,CT,SK)解密算法输入公钥PK,包含访问结构A的密文CT,属性集S产生的私钥SK。若属性集S满足访问结构A,解密算法将解密密文CT,并且返回原文件M。

3本文提出的方案

3.1系统方案

目前主要存在3种方式的云:公有云、私有云和混合云。在公有云中,数据可能存储在云中的任何地方,虽然可以通过加密的方式来保护数据安全,但是也有可能泄露用户的一些敏感信息,比如CPABE的访问结构是明文的,这就存在安全隐患。在私有云中,基础设施掌握在顾客手中,数据与进程也驻留在客户的私人网络中,因此具有比公有云更高的安全性。

本文提出的混合云存储架构,如图1所示。企业网络的内部包括数据用户和私有云存储系统,并且由企业用户来进行管理。而私有云存储系统调用服务接口与公有云存储进行通信,将相应数据存放在公有云存储空间中。这些公有云存储和企业管理的私有云存储共同构成了一个混合云存储系统,为用户提供高效安全的云存储服务。

然而由于经济因素,私有云的规模受到一定限制。与此相对,公有云具有的可扩展、低成本、易于实施的特点,令其更加适合存储较大规模的数据。所以本文最终采用了混合云的解决方案。

数据拥有者选择上传数据,并在数据敏感程度的基础上定义敏感级,并且根据计算敏感级的方法[12]称为敏感值级别(Levels of Sensitive Values, LSV),定义出数据的敏感级别,利用数据分割的思想,将原始数据集,分为敏感与非敏感部分,如图2所示。

同时,也可以考虑利用人工方法进行敏感数据的划分,首先为数据源添加敏感属性,对已知数据的不同敏感程度进行取值,数据属主上传数据可根据属性值的等级进行分类,再上传到不同的云端。

如图3所示,系统由4类实体组成:数据属主、用户、私有云、公有云。

在方案设计中,数据属主将数据分割后的敏感数据存储在私有云端并用CPABE算法进行加密,只有属于CPABE的授权集合才能解密小数据块,这样就连数据管理者也不能解密数据,这使得用户无须担心第三方可信程度,这使得数据拥有者可以指定数据的使用者。同时用中、低强度加密算法给非敏感数据块进行加密并进行分块存储在公有云端,本文利用一种对称加密算法(Advanced Encryption Standard,AES)[13]进行加密,同时利用Hadoop框架进行处理。

该模式应用于大数据场景中,一方面混合云可以使得大数据在其整个处理过程中提高速度,利用云架构,解决了大规模云访问控制请求处理问题;另一方面属性隐藏的加密技术可以起到安全与隐私保护的功能,诸如应用于数据发布时的匿名保护,社交网络中的匿名保护等。对于移动端的设备,如智能手机、平板电脑(PAD)等,由于采用云的方式,用户可以随时随地地通过移动设备方便地进行数据的访问,因此本方案可以运用于教育系统、医疗系统、社交网络等环境之中。

3.2方案详述

本系统主要包含以下几个步骤:系统建立、生成密文、为用户授权、访问文件。以下详细介绍各个步骤。

3.2.1系统建立

这个步骤主要相当于传统的CPABE算法中的Setup步骤,系统中公钥和主密钥的生成主要由私有云来完成。

算法Setup(1λ)。

输入:系统安全参数λ。

输出:公钥PK,主密钥MK。

3.2.2生成密文

数据属主首先将敏感数据M上传至私有云,由私有云进行加密,一方面利用云计算大大提高了数据加密的速度,另一方面,由于这里的私有云由企业内部管理,可以认为它可以很好地保证数据机密性。这个步骤用到了Encrypt算法,将文件进行加密。

算法Encrypt(PK,M,W)。

输入:系统公钥PK,由数据属主上传的数据文件M,密文政策W。

输出:密文CTW。

3.2.3为用户授权

私有云会为拥有相应属性(集)的用户进行授权,为其生成私钥,并传送给用户。这个步骤采用KeyGen算法,用于产生私钥。

算法:KeyGen(PK,MK,L)。

输入:公钥PK,主密钥MK,用户属性集L。

输出:私钥SKL。

3.2.4访问文件

用户首先将自己从私有云接收到的私钥进行匹配:若匹配通过,且私有云收到用户通过匹配的确认后,为用户解密数据,再将解密完的信息M1发送给用户;若匹配失败,私有云不执行解密操作,发送给用户一个随机值。此阶段采用Decrypt算法。

算法:Decrypt(PK,CTW,SKL)。

输入:公钥PK,密文CTW,私钥SKL。

输出:明文M。

1)匹配阶段。检查L是否满足W:

CΔe(g,C0)=e(C^0,D^0∏ni=1DΔ,i)e(∏ni=1Ci,t,Δ,DΔ,0)(1)

其中Li=vi,t。若L满足,通知私有云该用户匹配通过;否则返回随机值给用户,并通知私有云该用户匹配失败。

2)解密阶段。私有云首先确认用户匹配是否通过,若确认通过,私有云则根据式(2)进行解密处理:

∏ni=1e(Ci,t,0,Di,0)e(C^i,t,0,D^i,0)∏ni=1e(C1,Di,1)e(C^1,D^i,1)=M1(2)

其中Li=vi,t。私有云将解密结果M1返回给具有访问权限的用户。

用户根据式(3)做最后一步的计算,得到明文:

M=×M1(3)

这样就完成了对敏感数据在私有云进行CPABE算法加解密的整体流程,其中包括了对用户访问权限的确认等过程。最终用户从公有云中下载数据并解密组装为非敏感数据块,和已经解密完成的敏感数据块进行拼接,传送给用户。

3.3方案的正确性证明

4安全性分析

首先这里的私有云是由企业内部管理的,即私有云服务商遵循协议,忠实地执行合法用户的操作请求,也不会窥探用户的私密文件。此外,公有云服务商是半可信的,也就是说可能窥探用户私密文件,所以不传输敏感的文件给公有云服务商。同时认为数据属主、私有云服务商、公有云服务商以及用户之间的通信信道是完全安全的。此方案的安全模型可以定义为包含一个敌手A和一个挑战者S的游戏,其中敌手A可以看作是一个用户,挑战者S即为本文系统中的混合云,以下是该游戏的具体方案。

1)启动。敌手A首先提交两个挑战的密文政策W0,W1。

2)建立。挑战者S选择一个充分大的安全参数λ,然后运行Setup算法来得到主密钥MK和相应的公钥PK,挑战者自己保留主密钥MK,并且把公钥PK发送给敌手。

3)查询阶段1。除了散列查询,敌手A另外还发出一个如下的多项式时间界限内的查询来产生密钥:

敌手A提交一个属性集L,若(L满足W0且L满足W1)或者(L不满足W0且L不满足W1),挑战者S把密钥SKL给敌手A,否则将输出任意参数。

4)挑战。一旦敌手A认定查询阶段1已经结束,A将从文件空间中输出两个等长的文件M0,M1,以这两个文件来挑战密文政策W0,W1。若能够查询到L中存在一个密钥使得L满足W0且L满足W1同时成立,则可以得到M0=M1。挑战者随机的选择一个二进制数v∈{0,1},然后计算CTW*v=Encrypt(PK,Mv,W*v),然后把CTW*v传送给敌手A。

5)查询阶段2。和查询阶段1一样。

6)猜测。敌手A输出一个猜测的二进制数v′∈{0,1},如果v′=v,则敌手A赢得该游戏。敌手A在该游戏中的优势定义为:

Adv(A)=Pr[v′=v]-1/2

其中Pr[v′=v]表示v′=v的概率,即敌手A猜中v的概率。若在没有明显优势下,敌手能够在多项式时间内破解该游戏的概率是非常小的,则采用的CPABE算法将被认为是安全的。

5实验仿真及分析

5.1实验平台

硬件平台包括1个Master节点和3个Slave节点,Master节点负责工作的监控和调度,Slave节点负责分布式的存储数据文件和计算任务,其配置均为:CPU为Intel Core i34160 3.6GHz,内存为8GB,硬盘为1TB,软件平台为CentOS Linux(32bit) 5.11,Java 1.8.0_40,Hadoop版本为Hadoop2.7.0。本环境可用于对非敏感数据进行AES加密。

对于敏感部分数据加密进行CPABE加密算法,其算法建立在开源代码库PBC(PairingBased Cryptography Library)[14]上,它提供了椭圆曲线生成、计算等多种类型的双线性匹对。

5.2实验分析

本方案无需考虑第三方服务商是否可信,因为服务供应商不参与数据加密的密钥产生与管理,完全由数据拥有者对其用户进行访问授权,用户属性匹配系统属性集,则可进行解密,反之不可以。与此同时,由于原数据被分成两个部分存储,即使攻击者获取其中一部分,也无法使其数据完整,从而保证了数据的安全性。

对于用户解密来说,对系统属性集的匹配测试是必不可少的,如图4,本文CPABE方案与文献[14]的属性匹配进行时间开销的比对。在用户属性集相同的情况下,可以看出文献[14]方案的属性匹配时间开销随全集属性数目的增多而变大,而利用CPABE加密,则匹配时间开销趋于平缓,这样在用户匹配解密时效率上得到了较大提高。

公有云端的非敏感加密,这里对1Gb的文件采用Mapreduce框架进行加密。如表1,随着Map数目的不同,总体加密时间随之变化,Map为1时,表示单节点运行,加密时间较长,随之Map的增多,加密时间得到得到降低,可以看出,公有云强大的计算处理能力,提高了庞大数据加密的效率。

随着用户的不断增多,CPABE算法的属性集合中的属性个数也会增加,随之而来的加解密时间也会增加,本文基于数分割的思想,将数据分为不同敏感级别的数据分储在不同环境,具有很好的扩展性和高效性。

6结语

由于现有云计算存储中心数据和访问控制的安全性无法得到有效保障的弊端,本文结合数据敏感分级和分割的思想,将文件分割为不同敏感级别的数据块分别存储在公有云和私有云中,兼顾了安全性与性能开销,增加了云存储应用的灵活性;同时根据CPABE算法的特点对相对较小的敏感数据进行加密,降低了系统的整体运算量,减小系统的开销。由于在用户访问并解密CPABE加密的文件时,需要进行两次双线性匹对运算,速度相对较慢,在未来的学习研究中,可着重针对双线性匹对算法进行优化,进一步提高加解密的效率。

参考文献:

[1]

SAHAI A, WATERS B. Fuzzy identitybased encryption [C]// EUROCRYPT05: Proceedings of the 24th Annual International Conference on Theory and Applications of Cryptographic Techniques. Berlin: Springer, 2005: 457-473.

[2]

GOYAL V, PANDEY O, SAHAI A, et al. Attributebased encryption for finegrained access control of encrypted data [C]// CCS06: Proceedings of the 13th ACM Conference on Computer and Communications Security. New York: ACM, 2006: 89-98.

[3]

BETHENCOURT J, SAHAI A, WATERS B. Ciphertextpolicy attributebased encryption [C]// SP07: Proceedings of the 2007 IEEE Symposium on Security and Privacy. Washington, DC: IEEE Computer Society, 2007: 321-334.

[4]

徐小龙,周静岚,杨庚.一种基于数据分割与分级的云存储数据隐私保护机制[J].计算机科学,2013,40(2):98-102.(XU X L, ZHOU J L, YANG G. Data privacy protection mechanism for cloud storage based on data partition and classification [J]. Computer Science, 2013, 40(2): 98-102.)

[5]

SHAMIR A. Identitybased cryptosystems and signature schemes [C]// Proceedings of CRYPTO 84 on Advances in Cryptology. Berlin: Springer, 1985: 47-53.

[6]

NISHIDE T, YONEYAMA K, OHTA K. Attributebased encryption with partially hidden ciphertext policies [J]. IEICE Transactions on Fundamentals of Electronics Communications & Computer Sciences, 2009, 92A(1): 22-32.

[7]

CHASE M. Multiauthority attribute based encryption [C]// TCC 2007: Proceedings of the 4th Theory of Cryptography Conference on Theory of Cryptography. Berlin: Springer, 2007: 515-534.

[8]

YU S, REN K, LOU W. Attributebased content distribution with hidden policy [C]// NPSec 2008: Proceedings of the 2008 4th Workshop on Secure Network Protocols. Piscataway, NJ: IEEE, 2008: 39-44.

[9]

MLLER S, KATZENBEISSER S. Hiding the policy in cryptographic access control [C]// STM 2011: Proceedings of the 7th International Workshop on Security and Trust Management. Berlin: Springer, 2012: 90-105.

[10]

BALU A, KUPPUSAMY K. An expressive and provably secure ciphertextpolicy attributebased encryption [J]. Information Sciences, 2014, 276(4): 354-362.

[11]

ZHANG Y, CHEN X, LI J, et al. Anonymous attributebased encryption supporting efficient decryption test [C]// ASIA CCS13: Proceedings of the 8th ACM SIGSAC Symposium on Information, Computer And Communications Security. New York: ACM, 2013: 511-516.

[12]

HUANG X Z, LIU J Q, HAN Z, et al. Privacy beyond sensitive values [J]. Science China Information Sciences, 2015, 58(7): 1-15.

[13]

付雅丹,杨庚,胡持,等.基于MapReduce的并行AES加密算法[J].计算机应用,2015, 35(11):3079-3082.(FU Y D,YANG G, HU C, et al. Parallel algorithm for AES encryption on MapReduce [J]. Journal of Computer Applications, 2015, 35(11): 3079-3082.)

[14]

ANGELO D C. Pairingbased cryptography library [EB/OL]. [20151214]. https://crypto.stanford.edu/pbc/.

[15]

NISHIDE T, YONEYAMA K, OHTA K. Attributebased encryption with partially hidden encryptorspecified access structures [C]// ACNS 2008: Proceedings of the 6th International Conference on Applied Cryptography and Network Security. Berlin: Springer, 2008: 111-129.

猜你喜欢

密钥解密加密
幻中邂逅之金色密钥
幻中邂逅之金色密钥
炫词解密
保护数据按需创建多种加密磁盘
炫词解密
炫词解密
谷歌禁止加密货币应用程序
BitLocker密钥恢复二三事
加密与解密
一种新的动态批密钥更新算法