APP下载

云计算中具有两层次撤销的安全数据共享方案

2018-08-03赵司宇

关键词:发送给挑战者密文

赵司宇 蒋 睿

(东南大学信息科学与工程学院, 南京 210096)

云存储是云计算中最重要的服务之一,它允许用户将数据上传到云端来共享给其他用户.常用于保护数据安全性的方法是将数据上传至云端之前进行加密,只有拥有有效密钥的用户才能成功解密.Sahai等[1]提出了基于属性的加密方案(ABE),该方案是使用一组属性来表示用户身份的新型公钥加密方案.在现实中,每个人都有许多属性,每个属性表示人的某一特征.可看出,ABE是一种新型的基于身份的加密方案(IBE)[2],可以实现灵活且细粒度的数据访问控制.

ABE可分为2类:采用密钥嵌入策略的基于属性的加密方案 (KP-ABE)和采用密文嵌入策略的基于属性的加密方案 (CP-ABE).Goyal等[3]最早提出了KP-ABE,在该方案中,数据拥有者使用一组属性加密密文,并且将用户的属性访问策略嵌入到用户密钥中.仅当密钥中的访问策略符合密文中的属性时,对应的用户能够成功解密消息.之后,Bethencourt等[4]提出了CP-ABE,在该方案中,数据拥有者将他们的访问策略嵌入在密文中,并且有一个密钥分发中心(KGC)来管理用户的属性以及为用户分配签入了对应属性的密钥.仅当密钥中的属性满足访问策略时,密文能够成功解密.此外,KGC也能够实现细粒度的密钥管理与分发.CP-ABE已经成为云存储中最合适的访问控制技术之一.

在CP-ABE中,用户访问数据的权力通过对用户属性的分配和撤销来实现动态变化.属性撤销最初由Bethencourt等[4]提出.撤销方案共有2种:一种被称为直接撤销,如文献[5],它列出一个撤销列表并直接撤销列表上用户的访问权力,但这种方法在效率和灵活性上存在限制;另一种被称为非直接撤销[6],又称属性撤销,它通过更新用户的属性得以实现,使得属性不再能够满足访问策略的用户失去访问权力,然而如何提高撤销用户属性的效率也是一个瓶颈.

属性撤销对安全性通常有2个要求:前向安全,即新加入系统的用户只要属性满足访问策略就能够解密以前被上传的属性文件;后向安全,即防止访问权力已经被撤销的用户依旧能够解密数据文件.Ruj等[7]提出了一个能够进行匿名认证的方案,然而这一方案在前向安全方面有漏洞.文献[8]方案中,共谋攻击会威胁到后向安全.文献[9]提出了一个细粒度且高效的方案,然而已经被撤销的用户可以通过截取信息或进行共谋攻击来威胁方案的后向安全.文献[10]也由于不能抵抗共谋攻击而在后向安全方面存在漏洞.文献[11]能够同时提供前向和后向安全并抵抗共谋攻击,然而方案存在运行效率不高的问题.

密钥托管问题也是一个常见问题,如文献[12-13],由于用户密钥仅由一个机构生成,该机构可能滥用这些密钥.Chow[14]提出了一个匿名方案能够解决密钥托管问题,然而该方案难以进行细粒度控制.文献[15]给出了一个解决密钥托管问题的方法2PC,但该方法不能抵抗共谋攻击.文献[16]提出了一个分配方案来解决密钥托管问题,然而这一方案的访问树仅能包含与门.文献[17]中的方案能够解决密钥托管问题,并使用权重属性来优化对不同用户之间特权的表达,但该方案不能进行属性撤销,且攻击者能够在用户密钥传输时窃听或截获这些密钥,除非这些密钥在安全信道上传输.

本文提出了一个云环境下具有两层次撤销的安全数据共享(SDSS-TLR)方案.该方案能够抵抗用户与用户之间、用户与云服务器之间的共谋攻击,通过2个不同实体生成密钥来解决密钥托管问题,保证包括了前、后向安全的安全撤销,在仅有用户登记阶段使用安全信道传输信息的条件下实现安全的密钥分发.此外,SDSS-TLR方案中有2种不同层次的撤销.该方案能通过管理用户属性或列出撤销用户列表来控制用户解密密文的权力.

1 预备知识

1.1 定义

定义1(双线性对)[18]定义G0和G1是有着相同素数阶p的乘法循环群,定义e:G0*G0→G1是满足如下性质的映射:

2) 非退化性 对∀g0,g1∈G0{1},e(g0,g1)≠1;

3) 可计算性 对∀g0,g1∈G0,e(g0,g1)可以在群G1中得到有效的计算.

定义2(拉格朗日多项式)[4]对k+1个不同的点(x0,f(x0)),(x1,f(x1)),…,(xk,f(xk)),通过如下方法构建的多项式f(x)是唯一经过这些点的多项式:

设F为0-1函数,它对于区分上述2个向量的优势为ε=Pr[F(e(g,g)abc)=0]-Pr[F(e(g,g)z)=0],当ε在一个多项式的时间内可忽略时,DBDH假设成立.

设F为0-1函数,它对于区分上述2个向量的优势为ε=Pr[F(gab)=0]-Pr[F(gc)=0],当ε在一个多项式的时间内可忽略时,DDH假设成立.

1.2 访问策略树[4]

SDSS-TLR方案中使用如下形式的访问策略树来表示嵌入在密文中的访问策略.在访问策略树中,每个叶节点代表一个属性,每个非叶节点z则代表一个子节点数为nz,对应多项式为qz(x),门限值为kz,即由(nz,kz,qz(x))共同表达的门限.其中多项式形式为qz(x)=akz-1xkz-1+…+a1x+a0.对于门限值kz,有0

2 SDSS-TLR方案结构

2.1 系统模型

在SDSS-TLR方案中有5种不同的实体,包括证书分发机构(CA)、密钥分发中心(KGC)、云服务器(CS)、数据拥有者和用户,它们的结构关系如图1所示.

1) CA是一个全局可信的机构,常为受委托发放证书的第三方公司或组织.它接受用户的登记,随后将证书分发给合法的用户,用户以此在系统中证明他们的身份.

图1 系统模型

2) KGC是一个独立管理用户身份的机构,可以是位于某一地点、得到授权的机关或组织.当KGC通过证书了解用户的身份后,它将对应的用户属性分配给用户,生成相应的用户密钥并在撤销阶段生成用于属性撤销的组件.KGC还将属性公钥公开.

3) CS被用来存储数据文件.它也可以进行计算,如生成全局参数、生成密钥和重加密密文.

4) 数据拥有者将密文上传到CS.他们首先选择他们的访问策略,将策略以属性表达,生成访问策略树.随后,他们使用访问策略树加密消息并上传.

5) 用户可以下载密文并尝试通过他们的密钥进行解密.

2.2 安全模型

本方案安全模型建立在诚实但是好奇的KGC,CS和有挑战性的用户的基础上.KGC诚实但是好奇意味着它会正确地执行密钥生成函数并将正确的密钥发送给用户,但它会试图获取密文的内容;CS诚实但是好奇则意味着CS会正确地执行密钥生成函数并保存密文,但会泄露生成的信息或获取外部信息,以此试图获取密文的内容.其中KGC不能参与共谋攻击.

在安全模型中包括挑战者和对手,其中对手能够查询信息,从而尝试威胁方案的安全性,挑战者则能运行方案中的各种算法,从而生成密文、密钥等组件以回应对手的查询.由于对手可以试图威胁密文和密钥的安全性,本文分别针对密文和密钥的安全性设置了密文内容猜测和密钥参数猜测2个安全模型,分别通过一个游戏实现.在密文内容猜测模型中,对手试图解密密文,对手可以与合法用户或CS进行共谋,从而获取密文以及不能直接解密密文的密钥.在密钥参数猜测模型中,对手则试图构造属于自己的密钥,从而完成对密文的解密;对手可以与合法用户或CS进行共谋,获取不能直接解密密文的密钥.

定义5(密文内容猜测模型)

初始化: 挑战者运行系统初始化算法来生成算法中使用的参数,然后将它们保留或发送给对手.

阶段1:对手将一组(uid,Suid) 发送给挑战者,其中Suid是一个属性集合.然后,挑战者运行密钥生成函数,针对每一组用户身份通识符和属性集生成对应的密钥SK={D,D2,Di,1,Di,2,∀j∈Si,Dj},发回密钥来回应对手对密钥的查询.

挑战: 对手选择2个长度相同的不同消息m0和m1,然后将它们发送给挑战者.随后,挑战者选择一个访问策略Α*,阶段1中已查询的密钥均不能满足Α*.最后,挑战者抛出一枚硬币,随机得到一个值b:如果硬币正面向上,b=1;反之,b=0.根据得到的值,挑战者通过Α*加密消息mb,生成一组密文CT={C1,C2,∀y∈Y,Cy,1,Cy,2},然后将它发送给对手.

阶段2: 对手通过将另一组(uid,Suid)发送给挑战者来查询若干密钥,挑战者再次运行密钥生成函数,将对应SK={D,D2,Di,1,Di,2,∀j∈Si,Dj}发送给对手.这些密钥也不能满足访问策略Α*.

猜测: 对手给出对于b的猜测b′.

对手在这场游戏中拥有优势ε=Pr[b=b′]-1/2.当该优势在多项式时间内可忽略时,意味着密钥安全性能够得到保证.

定义6(密钥参数猜测模型)

初始化: 挑战者运行系统初始化算法来生成算法中使用的参数,然后将它们保留或发送给对手.

挑战: 对手选择2个长度相同的参数ω0和ω1,将他们发送给挑战者.然后,挑战者抛掷一枚硬币,随机输出一个值b,将ωb作为参数应用在密钥生成函数中,从而生成密钥SK={D,D2,Di,1,Di,2,∀j∈Si,Dj}并将它发送给对手.

猜测: 对手给出对于b的猜测b′.

对手在这场游戏中拥有优势ε=Pr[b=b′]-1/2.当该优势在多项式时间内可忽略时,意味着密钥安全性能够得到保证.

3 SDSS-TLR方案

本文提出的SDSS-TLR方案有5个阶段,包括系统初始化、密钥生成、数据加密、数据解密和撤销.

3.1 系统初始化

3.2 密钥生成

CS通过与KGC交互生成部分密钥组件,每一步使用文献[21]中的Schnorr协议来确保消息的完整性.密钥生成步骤如下:

① KGC计算出(gβ)ri=griβ,然后将它发送给CS.

② 收到消息后,CS使用公钥gβ来计算(gβ)α=gαβ并得到gαβgriβ=g(α+ri)β.

③ KGC计算出A=g(α+ri)βH(uid)riβ,然后将它发送给CS.

用户在收到KGC和CS发来的密钥组件后,将它们组合得到用户密钥.密钥为SK={D,D2,Di,1,Di,2,∀j∈Si,Dj}.

3.3 数据加密

3.4 数据解密

用户i首先计算出与KGC的共享密钥xi=e(Di,2,PSK)=e(H(uid)γ,gτ),随后输入密钥中与属性j相关的部分和密文中与属性j所对应的部分以计算得到

e(H(uid)ri,gqy(0)+γ)e(g,g)ri(qy(0)+γ)

(1)式中,DecryptNodey可利用递归算法计算得到.对于z=parent(y)的全部子节点Sz,Sz中拥有的属性数量满足门限值kz的用户可以算出DecryptNodeparent(y)的值, 即

DecryptNodez=

e(g,g)ri(qparent(y)(index(y))+γ)Δj(0)=

e(H(uid)ri,gqz(0)+γ)e(g,g)ri(qz(0)+γ)

(2)

式中,Δj(0)是定义2中拉格朗日多项式代入0得到的值;qparent(y)(index(y))+γ和index(y)等价于定义2中的f(xj)和xj.

通过上述相同的方法,当用户能够计算出Sparent(z)中满足门限值kparent(z)的DecryptNode时,用户能够得到DecryptNodeparent(z).

因此,如果一个用户所拥有的属性满足访问策略树的要求,该用户能够从底部到根部计算出根节点的节点值X=DecryptNodeR=e(H(uid)ri,gs+γ)·e(g,g)ri(s+γ).然后,该用户能够计算出与CS的共享密钥zi=e(D2,PSK)=e(H(uid)α,gτ),以此解密密文:

3.5 撤销

用户层次的撤销则被用于解决一些用户因滥用他们解密密文的权力而需要被撤销的情况.它无视用户属性,直接撤销用户解密密文的权力,效果等同于撤销这些用户的全部属性,更加简单、直接.在该方法中,KGC列出了一个需要被撤销的用户的列表,然后更新密文和不在列表上的用户的密钥.

4 安全性分析

4.1 选择性安全

本节将证明SDSS-TLR方案在2.2节中的安全模型下能够抵抗选择明文攻击(CPA).

定理1 SDSS-TLR能够抵御CPA.

对访问策略树Α*中涉及到的属性j,挑战者输出密钥{Dj=gdtiH(j)dticvjH(uid)dti}.对访问策略树Α*中未涉及到的属性j,挑战者输出密钥 {Dj=gdtiH(j)dtivjH(uid)dti}.

挑战: 对手选择2个有相同长度的不同消息m0和m1,然后将它们发送给挑战者.然后,挑战者抛掷一枚硬币,随机输出一个值b,再运行数据加密算法,得到

{C1=mbΩ,C2=gβs, ∀j∈S,Cy,1=gqy(0)+γ,Cy,2=H(j)vj(qy(0)+γ)}

阶段2: 与阶段1类似,对手选择一组(uid,Suid)发给挑战者来查询密钥.这些密钥均不能满足访问策略树Α*.

猜测: 对手输出对b的猜测b′=0或1.

若对手给出正确的猜测b′=b,挑战者认为密文是有效的,因此猜测λ′=0.而当Ω=e(g,g)cde时,密文是有效的.因此,基于挑战者针对DBDH假设有优势ε,挑战者游戏获胜的概率为Pr[b′=bλ′=0]=1/2+ε.若对手给出错误的猜测b′≠b,挑战者猜测λ′=1.当Ω=e(g,g)z时,由于Ω是随机选得的,密文是无效的,对手对于找出正确的结果没有优势,因此挑战者游戏获胜的概率为 Pr[b′≠bλ′=1]=1/2.由此可知,挑战者全局游戏获胜的概率为

(3)

它在多项式时间内是可以忽略的.通过这一游戏,可知对手不能在多项式时间内以不可忽略的优势攻破SDSS-TLR方案,因此SSDS-TLR方案针对CPA是安全的.

4.2 安全的密钥分发

本节将证明SDSS-TLR方案可以进行安全的密钥分发.该方案能够抵御共谋攻击,解决攻击者在密钥传输中的窃听和密钥托管问题.

引理1 SDSS-TLR方案中的密钥能够保证安全性.

初始化: 挑战者运行初始化算法,生成公共参数{G0,G1,e,H,g,p}发送给对手并对每一属性j随机选择参数δj∈G0.

猜测: 对手输出对b的猜测b′=0或1.

若对手给出正确的猜测b′=b,可以认为密钥是有效的,即Z=gcd.因此,基于挑战者针对DDH有优势ε,挑战者游戏获胜的概率为Pr[b′=bλ′=0]=1/2+ε.若对手给出错误的猜测b′≠b,可认为密钥是无效的,即当Z=ge时,由于Z是随机选取的,密钥是无效的,对手对于找出正确的结果没有优势,因此挑战者游戏获胜的概率为 Pr[b′≠bλ′=1]=1/2.由此可知,挑战者全局游戏获胜的概率为

(4)

它在多项式时间内是可以忽略的.通过这一游戏,可知SDSS-TLR方案中的密钥能够保证安全性.

定理2 SDSS-TLR方案能够抵抗用户之间、用户与CS之间的共谋攻击.

此外,由于CS只能够生成密钥中的部分组件,它仅通过自己无法解密密文.对无效的用户,CS无法赋予他们正确的ruid.因此,由引理1可知,CS无法让无效的用户生成属于他们的有效密钥,即SSDS-TLR方案能够抵御用户与CS之间的共谋攻击.

定理3 SDSS-TLR方案能够在公共信道上进行安全的密钥传输.

证明 为了应对窃听KGC与用户之间或CS与用户之间传递的密钥的攻击者,SDSS-TLR方案设定一个用户i与KGC之间的共享密钥xi,用户i与CS之间的共享密钥zi,将它们包含在通过公共信道传递的密钥中.用户发送给KGC和CS的用来生成共享密钥xi和zi的部分在用户登记阶段通过安全信道传递给了KGC和CS.因此,攻击者们无法得到共享密钥,由引理1可知,即使攻击者窃听到了密钥,由于没有共享密钥,他们也无法得到有效的解密密钥.因此,SDSS-TLR方案在公共信道上也能够保证安全的密钥传输.

定理4 SDSS-TLR方案能够防止密钥托管问题.

证明 KGC能够轻易地从CS处获取密文.然而,即使KGC拥有部分主密钥和用户唯一的参数ruid,由于密钥中的部分组件由KGC和CS共同生成且仅由CS传递,KGC无法获得用户的全部密钥.因此,由引理1可知,KGC无法自己生成全部的用户密钥.此外,由引理1可知,共享密钥zi能够防止KGC窃听得到CS传输的密钥组件.因此KGC无法得到全部的用户密钥.综上可知,SDSS-TLR方案能防止密钥托管问题.

4.3 安全撤销

本节将证明SDSS-TLR方案能够同时保证撤销的前向与后向安全.

定理5 SDSS-TLR方案能够保证撤销的安全性.

证明 对于有属性需要被更新的用户,他们可以获得密钥更新密钥KUKj=H(j)ri(vj′-vj)来更新与属性相关的组件.这些密钥更新密钥与用户的唯一参数ruid绑定.因此,被撤销的用户即使能够窃听得到未被撤销的用户的密钥更新密钥,他们也无法得到属于自己的有效密钥更新密钥.而对于用户层次的撤销,由于每个未被撤销用户的密钥更新密钥KUK2=H(uid)γ′-γ都是唯一的,被撤销的用户也无法通过其他未被撤销的用户的密钥更新密钥,得到属于自己的有效密钥更新密钥.

4.4 安全性比较

表1是对文献[7,9,17]中的方案和SDSS-TLR方案的综合性比较.从表中可看出,SDSS-TLR方案满足所有安全性目标,相对于其他方案在安全性上更具备优势.

表1 安全性比较

5 效率分析

下面对本文的SSDS-TLR方案与文献[7,9,17]中方案的存储开销进行对比,如表2所示.表中,p为群G0,G1中的元素尺寸;naid为离散KGC方案中一个KGC管理的密钥数量;na为整个系统中属性的数量;nu为整个系统中用户的数量;nA为离散KGC方案中KGC的数量;na,uid为整个系统中一个用户被分配的属性数量;l为密文相关的属性数量;k为分层的访问策略树平均每个属性所拥有的层数.

表2 每个实体的存储开销

1) 将4种方案的KGC存储开销进行对比,忽略文献[7,9]中分别由每个KGC管理naid个属性的情况,这4种方案在KGC的总存储开销上区别不大,其中本文和文献[9]的总存储开销略高于文献[7,17].在 本文方案中,由于KGC需要给每个属性存储vj,KGC的开销与属性总数na成线性关系,且系数为1.此外,由于KGC为用户生成密钥,KGC需要存储与用户绑定的ruid和用户的公钥,因此开销与用户的数量nu成线性关系,且系数为2.KGC还需要存储2个主密钥和CS公钥的一个组件.

3) 将4种方案的用户存储开销进行对比,本文方案的存储开销与文献[7,17]中方案几乎相同,少于文献[9].在本文方案中,用户的存储开销来自于他们的密钥.每个密钥由5个组件组成,其中4个与用户直接相关,另一个与拥有的属性相对应.因此,用户的存储开销与他们拥有的属性na,uid成线性关系,系数为1.此外,用户需要存储一个主密钥.文献[9]中,由于密钥由不同的KGC生成并分发,开销也与KGC的数量nA成线性关系.

4) 将4种方案的CS存储开销进行对比发现,本文方案开销最小.在本文方案中,CS的存储开销主要来自密文,它由4个组件组成,其中2个与访问策略树中的属性相关,因此SDSS-TLR方案存储开销与密文相关的属性个数l成线性关系,系数为2.

6 结论

1) 本文给出了一个安全分发密钥的方法,它不同于常见的通过安全信道来传输密钥的方法,而是使安全信道仅用于在登记阶段传递用户证书与信息,在其他阶段,用户密钥均通过公共信道传输.此外,由于密钥由2个不同的实体产生,密钥托管问题能够得到解决.

2) 本文中SDSS-TLR方案能够保证数据的安全性,能够抵抗用户与用户之间、用户与CS之间的共谋攻击和其他多种攻击,也能够保证安全且细粒度的撤销,使得前向与后向安全同时得到保障.

3) 本文中SDSS-TLR方案能够完成2种不同层次的撤销:属性层次的撤销和用户层次的撤销.属性层次的撤销采用常见的属性撤销方法,通过细粒度地控制用户拥有的属性来决定用户解密密文的能力;用户层次的撤销则无视用户属性,能够给出一个用户撤销列表来直接撤销这些用户解密密文的权力,等效于撤销这些用户全部属性,更加简单、直接.

猜你喜欢

发送给挑战者密文
“挑战者”最后的绝唱
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
闪电远击侠“挑战者”2
挑战者 敢闯敢创激发无限可能
一种基于密文分析的密码识别技术*
公告
关注微信,分享资讯,免费获取电子阅读卡
关注微信,分享资讯,免费获取电子阅读卡
我的录梦机