APP下载

支持多授权中心与属性变更的云访问控制方案

2018-08-17小东

计算机工程 2018年8期
关键词:二叉树私钥密文

小东,,, ,

(西北师范大学 计算机科学与工程学院,兰州 730070)

0 概述

近年来,云服务器依靠其强大的计算能力和巨大的存储空间等优势得到了业界的广泛使用。基于密文策略的属性加密(Ciphertext policy Attribute-based Encryption,CP-ABE)作为实现云存储数据访问控制的关键技术之一[1-3],已经成为云计算安全领域的研究热点。

传统的CP-ABE系统都是基于单授权机构[4-5],存在安全和性能上的瓶颈问题。为了解决单授权机构存在的密钥托管问题,文献[6]提出一种基于属性加密的云存储方案,用户密钥生成的过程中使用两方计算协议解决了密钥托管问题,但却增加了额外的计算开销。随着数据发送方和数据用户需求的动态变化,云环境下的属性变更也成为云计算领域内的研究热点和难点问题之一。文献[7]基于CP-ABE提出了一种资源共享方案,在该方案中属性变更时需要同时更新系统公共参数和用户私钥,因此,该方案计算开销较大且访问控制不灵活。文献[8]提出一种多云服务提供者环境下用户密钥撤销方法,利用单调张成矩阵和CP-ABE访问控制机制撤销部分属性失效的用户解密密钥,但该方案仅仅支持用户的整体变更,无法实现局部属性变更,缺乏灵活性,并且用户密钥由单一的授权机构生成,适用范围具有一定的局限性。文献[9]提出一个基于多授权机构的属性变更方案,解决了单授权机存在的安全隐患和权限过大等问题[10-12],但该方案要求授权机构和用户进行协商,造成的延时不适合即时管理。文献[13]提出一种基于二叉树的属性密钥更新方案,但密钥维护效率低且无法实现抗串谋攻击。文献[14]提出一种抗串谋攻击的属性变更方案,但存在密文的长度过长等缺陷。

针对上述方案存在安全和性能上的问题,本文引入逻辑二叉树和代理重加密技术,提出一种新的云访问控制方案。该方案使用固定密文加密算法,将密文长度固定为常数,以节省密文的存储空间;将用户解密任务部分外包,减少用户计算开销;同时用户利用线性秘密共享方案自由设定访问控制策略,以达到资源灵活访问的目的。

1 预备知识

1.1 双线性映射

设G和GT是阶为素数p的循环群,G的一个生成元为g,e:G×G→GT是一个满足以下性质的双线性映射[15]:

2)非退化性:e(g,g)≠1,其中1为GT中的单位元;

3)可计算性:对任意g1,g2∈G,存在有效的算法计算e(g,g)。

1.2 线性秘密共享方案

设参与者的集合为P={P1,P2,…,Pk},访问结构表示为(M,ρ),其中,M是一个l行m列的矩阵,ρ是一个将矩阵中行元素{1,2,…,l}到参与者P的函数,一个线性秘密共享方案[16](Linear Secret Sharing Scheme,LSS)包含以下2个算法。

1.3 判定性q-parallel BDHE假设

设G和GT是阶为素数p的循环群,生成元g∈G,随机选取元素a,s,b1,…,bq∈Zp,判定性q-parallel BDHE (Bilinear Diffie-Hellman Exponent)问题[15],给定一个多元组:

(g,gs,ga,…,g(aq),g(aq+2),…,g(a2q)),

∀1≤j≤q:(gs·bj,ga/bj,…,g(aq/bj),g(aq+2/bj),…,

g(a2q/bj)),

∀1≤j,k≤q,j≠k:(gasbk/bj,…,g(aqsbk/bj))

如果不存在一个多项式时间算法能以一个不可忽略的概率,判断T的输出是T=e(g,g)aq+1s还是GT中的随机元素,则称判定性q-parallel BDHE假设成立。

2 本文方案

2.1 方案介绍

在本文方案中,中央认证机构(Central Authority,CA)负责产生公共参数,并向注册用户发送与身份标识gid相关的密钥。不同属性授权机构(Attribute Authoritiy,AA)管理不相交的属性子集,根据用户的属性为用户生成私钥组件,同时生成所管辖区域内包含所有用户的二叉树,并对未撤消的用户执行密钥更新操作。数据属主(Data Owner,DO)根据其设定的访问结构对数据文件进行加密,加密后上传密文保存在云服务器上。云服务器(Cloud Servers Provider,CSP)对收到的数据文件进行存储及更新等操作,同时帮助符合访问结构的用户解密密文。

2.2 算法定义

一个支持多授权中心与属性变更的云访问控制方案包含以下算法:

1)初始化算法:输入安全参数,输出系统主密钥MSK和系统公开参数GPRA。

2)CA的密钥生成算法:输入系统公开参数GPRA,输出CA的私钥rpskgid和公钥rppkgid。

3)属性密钥生成算法:输入系统公开参数GPRA和CA公钥rppkgid,输出属性私钥raskgid和公钥rapkgid。

4)组密钥生成算法:AA生成所管辖区域内包含所有用户的二叉树,并选择随机数AKk作为叶子节点密钥,用户利用哈希函数和叶节点密钥计算整条路径上的节点密钥,寻找能将属性att对应用户全部覆盖的最小子树,并根据最小子树计算出组密钥Ei。

5)加密算法:输入系统公开参数GPRA、CA公钥rppkgid、AA公钥rapkgid、访问结构(M,ρ)、数据文件mprofile、对称密钥Kprofile,输出相应数据密文CTprofile和密钥密文CM,ρ。

6)解密算法:输入用户属性私钥raskgid,输出数据文件mprofile。

3 具体方案

3.1 初始化

3.2 密钥生成

3.2.1 CA的密钥生成

3.2.2 属性密钥生成

3.2.3 组密钥生成

结合KEK算法[14]在AAk和用户之间构造一棵包含所有用户的逻辑二叉树,如图1所示,二叉树的叶子节点代表用户成员。

2)属性组密钥生成:AAk随机选择一个参数μi并公布。在图1中,若属性att1对应的用户集为{u1,u2,u4},在二叉树中寻找能将用户集{u1,u2,u4}覆盖的最小子树,并将根节点{c4,c11}的节点密钥作为组密钥,即属性att1的组密钥E1={c4‖c11‖μ1},同理能够计算出其他属性的组密钥Ei(1≤i≤n)。

图1 逻辑二叉树示意图

3.3 文件创建

文件创建方法如下:

1)DO为数据文件选择唯一的编号fid,利用对称加密算法E(如AES等)对数据文件mprofile进行加密,得到数据密文CTprofile=EKprofile(mprofile)。

3)DO上传{fid,CTprofile,CM,ρ}保存在云服务器CSP上。

3.4 文件访问

CSP收到用户对编号为fid文件的访问请求时,若用户的属性集合满足访问策略,这意味着存在常数ωi∈ZN,满足Σρ(i)∈ASgidωiλi=s。CSP对密钥密文进行预解密:

将{PDKEY,CTKprofile,CTprofile}发送给访问用户。

3.5 属性及用户的变更

当用户加入系统、离开系统或撤销某些属性时,属性授权机构AAk根据用户叶子节点所在的位置情况,重新寻找能将用户集覆盖的最小子树的根节点,利用重加密算法更新用户的属性私钥和重加密文件。下文以图1为例,阐述AAk实现属性的撤销与加入以及完成用户的加入与撤销。

3.5.1 属性变更

属性变更过程如下:

1)属性撤销

2)属性加入

3.5.2 用户变更

用户变更分为用户加入和用户撤销2种情况,其中用户加入可以归纳为属性加入,用户撤销可以归纳为属性撤销。同样以图1为例,进一步说明节点密钥的更新过程。

如图1所示,当用户u8离开系统时,需要修改u8所在路径上的节点c7、c3、c1的节点密钥,过程如下:

3)AAk完成更新的节点通过广播加密的方式将其节点密钥发送给其所在子树的叶节点。例如,能将叶节点u5、u6覆盖的最小子树的根节点为c6,那么将更新后的节点密钥AAk通过广播的方式将消息发送给这2个用户。同理,其他最小子树按上述方法完成节点更新。

3.6 未被撤销属性的用户密钥更新

3.7 密文更新

4 安全性分析与证明

4.1 安全性分析

4.1.1 多授权机构的安全性

在单授权机构中,属性密钥的生成交由单一的第三方机构管理。但是第三方机构一旦被攻破,则用户的所有密钥被泄露,整个系统将崩溃。本文新方案中属性密钥交由多个授权机构联合分发,用户使用来自多个授权机构的私钥组件对密文进行解密。若某个授权机构被攻破,非法用户只能获取该授权机构管理的所有属性私钥,但仍然无法解密密文,并且合法用户对密文的解密不受影响。因此,与单授权机构相比,多授权机构具有更高的安全性。

4.1.2 前后向安全性

在新方案属性变更管理机制中,当撤销用户一个或多个属性时,属性授权机构依据组密钥更新的方法计算出新的组密钥,并利用新的组密钥更新未被撤销属性的用户的私钥。根据哈希函数的不可逆性,即使在知道父节点密钥的情况下也无法推出孩子节点密钥。因此,撤销属性的用户无法得到更新后的组密钥。同理,在为用户加入一个或多个属性时,用户无法通过更新后的组密钥推算出更新前的组密钥。因此,新方案满足前向后向安全性。

4.1.3 抗串谋攻击安全性

数据属主设定访问结构,并根据访问结构对数据文件进行加密,因此,只有满足访问结构的用户才能计算出e(g,g)αs。假设多个未授权用户的属性集合并在一起才能满足访问结构,因此不同用户的身份标识gid不同,生成属性私钥组件不相同,所以无法计算出e(g,g)αs,从而无法恢复出明文。因此,新方案具有抗串谋攻击性。

4.2 安全性证明

定理如果判定性ε假设成立,则新方案在随机预言模型下满足选择明文攻击安全。

证明:由4.1.1节的多授权机构的安全性分析可知,如果单授权机构满足选择明文攻击安全,那么多授权机构也能够满足。因此,多授权机构系统的安全模型可看作单授权机构系统的安全模型来证明[9-10]。假设敌手A存在不可忽略的优势ε攻破本文方案,那么存在一个挑战者C利用A求解(M*,ρ*)假设。 C和A进行如下游戏:

1)初始化。A将挑战的访问结构(M*,ρ*)发送给C,M*是l*×n*的矩阵,其中l*,n*≤q。

下面描述C如何执行随机预言机H,H是由C控制。如果H被A询问,则C按如下方式应答。

3)询问阶段1。C对A发起的一系列询问进行如下的响应:

gα′·gaq+1·g-aq+1·ga·rS·

于是有:

(3)C将raskgid*添加到列表中并发送给A。

4)挑战。A将2个等长的消息m1、m2发送给C,C随机选取b∈{0,1},并进行如下回答:

5)查询阶段2。类似于阶段1。

6)猜测。A最后输出对b的猜测b′。若b′=b,那么C输出1,表明T=e(g,g)aq+1·s;否则,C输出0,表明T是GT的随机值。

5 效率分析

将文献[6,8-9]方案与本文提出的新方案进行对比,结果如表1所示。其中,3+2Sc表示加密文件时选取的相关属性集,3+2Sc表示与私钥相关的属性集,3+2Sc表示用户属性集,3+2Sc表示一次指数运算操作,3+2Sc表示一次双线性对运算操作,3+2Sc表示3+2Sc群中单个元素的大小,n表示每个属性所拥有的用户数量。为了能够直观对比这里指定所应用二叉树的方案均为满二叉树。

表1 不同方案之间的性能比较

由表1可知,本文方案与文献[6,8]均采用线性秘密共享的访问结构,支持任意灵活的访问控制策略,但文献[6,8]2个方案都是单授权机构系统,适用范围有一定的局限性。与大部分的CP-ABE方案类似,文献[6,8-9]的密文长度与属性集合线性相关,而新方案将密文长度固定为常数,与属性个数无关。新方案与文献[6]均采用外包解密技术,将文件解密计算任务部分委托给云服务器执行,大大降低了用户的解密计算开销,但文献[6]并未涉及属性变更机制。与文献[8-9]相比,在本文方案中当用户加入或撤出系统时,用户仅需要完成一次更新密钥的操作,故用户变更计算复杂度为O(1);当发生属性变更时,用户只需计算最小子树的根节点密钥,则属性变更计算复杂度为O(lbn)。由此得出,本文方案在文件加/解密和用户/属性变更方面具有较高的性能。

6 结束语

本文结合线性秘密共享方案和固定密文加密等技术,提出一个支持多授权中心与属性变更的云访问控制方案。将哈希函数加入到逻辑二叉树中,用户只需依据组密钥完成密钥更新,即可实现属性变更的细粒度化,确保其权限的及时更新。采用解密外包服务技术,将用户解密的部分计算任务委托给社交网络平台执行,大幅提升了用户的解密效率。但是本文方案仅在随机预言模型下可证安全的,因此,下一步将设计在标准模型下安全的支持属性变更的云访问控制方案。

猜你喜欢

二叉树私钥密文
一种针对格基后量子密码的能量侧信道分析框架
CSP真题——二叉树
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
基于模糊数学的通信网络密文信息差错恢复
基于改进ECC 算法的网络信息私钥变换优化方法
二叉树创建方法
一种基于虚拟私钥的OpenSSL与CSP交互方案
一种由层次遍历和其它遍历构造二叉树的新算法
云存储中支持词频和用户喜好的密文模糊检索