针对云存储数据共享特性安全问题,我们提出了一种基于可信第三方密文策略属性加密技术的云存储共享方案,利用可信第三方有效地解决了用户端负载量过大、密钥分发与管理负担等问题,采用密文控制访问技术,保证了数据在不完全可信云环境下的安全性。

一、密文策略属性相关知识

1、CP-ABE相关术语定义

(1)属性:设P={p1,p2,…,pn}为所有属性的集合,则每个属性4是P的一个非空子集,A∈{P1,P2….,PN},那么n个属性可以鉴别2n个用户。

(2)访问结构:访问的结构丁是全集{P1,P2,…,Pn}的一个非空子集,T∈2{P1,P2,…,Pn}。T代表一个属性判断条件:在T中的属性集合称为授权集,不在F中的属性集合称为非授权集。

(3)访问结构树:用来描述每一个访问结构,如图1,树的每个节点代表一个属性项,每个内部节点代表一个门关系,可以是AND(n of n)、or(l ofn)以及n ofm(m>n)等。

加密技术之密文策略属性

2、CP-ABE算法

CP-ABE算法的主要步骤如下:

(1)Setup,生成主密钥MK和公开参数PK。

(2)CT=Encrypt( PK,M,T),使用PK、访问结构T和加密数据明文M,加密后的密文为CT。

(3)SK=KeyGen( MK,A),使用MK和用户属性集A生成用户的私钥SK。

(4)M=Decrypt( CT,SK),使用私钥解密密文CT得到明文M。

二、安全假定

(1)可信第三方是完全可信的;

(2)云服务提供商(Cloud Service Provider,CSP)是不完全可信的,不完全可信说明CSP不会随意泄露其服务端的数据,会向可信第三方提供其用户准确的属性集,而且可能会窥探数据内容。

(3)具有访问权限的用户不会有意泄露自己的个人信息和密文相关信息给其他的用户或CSP。

三、加密技术之密文策略属性方案实现

1、主要思想

在实际应用中,由于CP-ABE算法是非对称,算法效率不高,不适合直接对大规模数据文件进行加密,因此,在加密过程中数据所有者首先使用对称加密算法加密源文件得到数据密文和密文密钥,然后把数据密文、数据密文密钥和访问结构发送给TTP,TTP根据不同的权限的访问结构使用CP-ABE加密数据密文密钥得到相应的密钥密文,然后把密钥密文发送给CSP,用户向CSP提出申请访问权限,得到数据密文、密钥密文和签名,向TTP发送自己的属性证书,从而得到私钥。利用私钥解密密钥密文得到数据密文密钥,再对数据密文进行解密访问数据文件,当数据所有者需要对文件进行更新时,只需重新生成一份数据密文发送给CSP,若需要更改访问策略时,只需要把更新后的访问结构发送给可信第三方,而由可信第三方来完成剩下的工作,降低了数据所有者重新生成密钥和分发密钥的时间代价,其基本架构如图2所示。

加密技术之密文策略属性

2、系统架构

本方案中各个实体间的通信通道默认是安全的。

1)加密文件

生成并存储3DES算法的密钥K3d,数据所有者将文件F用K3d进行加密得到加密后的密文Cf,因为CSP虽然是可信但是好奇,不能将K3d与0同时存储在云端,防止CSP窥探数据内容,数据所有者将Cf、K3d以及访问结构丁(包括只读访问结构N和读写访问结构L)发送给rrP。

2)生成密钥密文

rrP从用户得到K3d与访问结构丁,并初始化CP-ABE算法生成主密钥MK和公开参数PK,一个RSA公私钥对Ksign/KVerify用于对加密后的数据进行签名/验证,为了控制访问权限,假设只读权限的访问结构为Tro,则对应密文为CTr=Encrypt(PK,{ K3d,rify},Tro).假设读写权限的访问结构为T、则对应密文为CTn=Encrypt( PK,{K3d,fy,Ksign},L),密钥,SK与用户属性相关联,当用户属性满足访问结构Tr0或L时,才能对密钥密文CTr0或CTrw解密,Ksign对密文Cf签名得到SIGf,并把Cf、SIGf、CT与CTny上传至CSP。

3)访问文件

(1)读数据

用户首先向CSP获取文件F读权限的请求,云端返回Cf、SIf以及CTro接着向TrIP发送自己的属性证书AC.TTP动态生成密钥SK=KeyGen( MK,AC)并返回给用户,用户通过SK解密CTro得到K3d和K,首先使用Kr验证签名SIGrf的正确性,最后使用为d解密0得到文件F。

(2)写数据

用户首先向CSP获取文件F读写权限的请求,云端返回Cf、SIGf以及CTrw.接着向Trp发送自己的属性证书AC.TrIP动态生成密钥SK=KeyGen( MK,AC)并返回给用户,用户通过SK解密CTn、T得到K3d。rify和Ksign.首先使用K0rify验证签名SIGf的正确性,其次用K3r解密0得到文件F,写入数据后,用K3d加密F得到Cf,用Ksign对Cf加密得到SIGf,最后将Cf与SIGf上传至云存储服务器。

4)访问权限控制

数据所有者更改访问权限时,只需更改访问结构,并将更改后的访问结构丁发送给TTP,TTP及时更新访问结构TTP及k,若用户的权限被撤销,则其私钥SK=KeyGen(MK,AC)将不能再解密CT或CTn、T,因而保证了文件F的安全。

小知识之云存储

云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。