APP下载

一种支持细粒度属性变更的云访问控制方案

2018-08-17谭跃生

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

谭跃生,,

(内蒙古科技大学 信息工程学院,内蒙古 包头 014010)

0 概述

近年来,随着计算机网络快速发展与更新,云计算技术在人们日常生活和工作中的地位日益重要。如何对开放式云环境进行有效的管理是当前研究中一个热门的话题。目前大多数云访问控制主要在属性基加密(Attribute-based Encryption,ABE)[1]技术上进行研究,核心思想是为用户分配不同的属性从而决定不同的访问权限。然而,属性的频繁更换不仅会造成系统的巨大开销,在变更的过程中也会对数据安全产生威胁。如何在保障云数据安全的前提下灵活高效地改变用户访问权限,成为当前云计算领域最受关注的难题之一。

在属性变更的研究中,根据变更执行者的不同提出了ABE的两种变更模式:直接变更[2]和间接变更[3]。在属性直接变更中,发送方通过生成用户的变更列表来确定系统用户密钥的变化;文献[3]在ABE基础上,以低开销、影响范围小等优势实现了直接变更,但此方案无法实现局部的属性变更,局限性大;文献[4]利用合数阶双线性映射群实现了属性的部分变更,然而公钥参数与用户数量进行关联造成公钥过长。在间接变更算法[5]中;文献[6]在用户属性和数据密文中设置终止时间,若用户解密请求晚于终止时间则无效,但该方案必须在规定的时间内进行重加密,不仅影响系统的整体工作效率,还需要第三方保持在线;文献[7]在CP-ABE基本框架中加入完全可信的授权机构,使用户和授权机构共享密钥,但在正常运行的情况下方案要求授权机构和用户进行协商,不适合即时管理;文献[8]提出二叉树(KEK)关联用户的基本构想,为树中每个节点分配节点密钥,每个用户掌握与自己对应的节点链上的密钥,从而实现属性组密钥的生成运算,但是该方案密钥维护效率低且无法实现抗串谋攻击;文献[9]根据KEK树提出了一种属性变更方案,达到了抗串谋攻击的目的,然而此方案在解密时密文过长;文献[10]提出一种基于LKH++树的细粒度属性撤销算法ALKH,通过针对属性建立一个树形结构,根据关联属性密钥的更新完成属性的变更,此方法需要对系统域内所有属性建立树,增加用户存储量。

在现有的属性变更方案中,普遍存在灵活性差、粒度较粗等问题。为此,本文在文献[11]提出的CP-ABE模型基础上,借鉴文献[12-13]属性撤销方案的设计思想,并结合KEK树架构和文献[14]对ALKH算法的改进方法,提出一种灵活的属性变更方案(ALKEK-CPABE),通过引入逻辑二叉树改变组密钥来实现属性的即时撤销。

1 预备知识

1.1 双线性映射

选择随机大素数p,给出2个阶为p,生成元为g的乘法循环群G0和G1。定义映射e:G0×G0→G1,有如下性质:

2)非退化性:∃g∈G0,使e(g·g)≠1。

3)可计算性:存在有效的方法计算e(g·g)。

1.2 访问结构

设P={P1,P2,…,Pn}是系统所有属性的集合,A是包含在P的非空集合,那么将表达式定义为A∈2{P1,P2,…,Pn}/{φ}。访问结构A作为一个判断条件:假设A是单调的,若∀B,当B∈A,B⊆C同时满足时,则C∈A。

1.3 Shamir门限秘密共享方案

将Shamir门限方案定义为(s,t),其主要思想是将共享的秘密k随机分割成s份,其中任意不少于t(1≤t≤s)份可以通过Lagrange插值重构出k,而任何不大于t-1份分割的数据都不能重构出k。根据Lagrange插值的原理,即秘密分享中心生成阶为t-1的多项式y=f(x),并由其中t个节点(x1,y1),(x2,y2),…,(xt,yt)唯一确定。

1)秘密分割

(1)秘密分享中心将被分享的秘密k>0分割成s份并发送给t个参与方qi(1≤i≤t),随机选择s-1个系数a1,a2,…,as-1,定义随机多项式:f(x)=as-1xs-1+as-2xs-2+…+a1x+a0。

(2)随机选取t个互不相等且非零的元素x1,x2,…,xt,令yi=f(xi),其中1≤i≤t。

(3)将产生的多项式节点(xi,yi)(1≤i≤t)发送给t个参与方,公开xi并保留yi。

2)秘密重构

2 算法定义及安全模型

ALKEK-CPABE方案模型主要由系统管理员(Manager)、数据的拥有者(Data Owner,DO)、云存储提供商(Cloud Service Provider,CSP)、系统用户(User)和可信属性权威机构(Trusted Authority,TA)5个实体组成。

2.1 算法定义

ALKEK-CPABE的基本定义由初始化(Setup)、数据加密(Encypt)、密钥生成(KeyGen)、组密钥生成(GKeyGen)、密文重加密(reEncrypt)、私钥更新(upGKeyGen)、数据解密(Decrypt)7个算法所组成:

1)初始化Setup(1k):TA利用安全参数k初始化运算获得系统的公钥pk和主密钥mk。

2)私钥生成KeyGen(pk,mk,ω):TA输入公钥pk、主密钥mk以及各User所拥有的属性集合ω,计算得出私钥sk并发送给系统用户。

3)明文加密Encrypt(pk,m,T):DO以公钥pk、明文消息m以及访问控制策略T作为算法输入项,进行加密运算生成密文CT发送给Manager。

4)属性组密钥生成GKeyGen(ω1,ω2,…,ωn):Manager输入属性集合ω={ω1,ω2,…,ωn},根据逻辑二叉树τ推算出组密钥Ei(1≤i≤n),并将其发送给User。

5)密文重加密reEncrypt(Ei,CT):Manager利用第4步所得的Ei(1≤i≤n)和密文CT,运算得出重加密密文CT′并存储到CSP中。

6)私钥的更新upGKeyGen(Ei,sk):User将得到的Ei和与之对应的私钥sk进行更新运算得出相应的新私钥sk′。

7)密文解密Decrypt(sk′,CT′):由提出访问请求的User将更新后的私钥sk′和重加密密文CT′作为算法输入项,当属性集合与访问控制策略相符时,即满足ω∈T,解出明文消息m。

2.2 安全模型

在ALKEK-CPABE方案中定义选择明文攻击(Indistinguishablity under Chosen Plaintext Attack,IND-CPA)安全模型,在此模型中分敌手A与挑战者B两个角色。

准备阶段:敌手A向挑战者B发布所要挑战的访问控制策略T*。

系统初始化:B运行Setup(1k),输出公钥pk和主密钥mk并将pk发送给A,保留mk。

阶段2同阶段1,A继续向B发送询问报文。

若是在某个概率多项式时间内敌手赢得游戏的优势是可以被忽略的,则称ALKEK-CPABE方案满足IND-CPA安全。

3 ALKEK-CPABE方案

3.1 基本思想

本节在CP-ABE基础上,结合一种基于LKH++树的细粒度属性变更算法和KEK树的属性灵活撤销思想,在TA和User之间构建一个逻辑二叉树τ并随机生成树中的叶节点密钥,左孩子节点通过Hash函数运算得到父节点的密钥并将其发送给右孩子节点,从而使User能够推算出从叶节点到根节点路径上的所有节点密钥。针对于每一个属性组,当有用户加入或撤销时,仅需通过改变加密节点的密钥就可以完成,在高效的前提下实现属性细粒度灵活变更。ALKEK-CPABE方案流程如图1所示。

图1 ALKEK-CPABE方案流程

3.2 方案基本构造

ALKEK-CPABE方案过程如下:

1)系统初始化Setup:

(1)定义一个阶为p,以g为生成元的双线性映射群:e:G0×G0→G1。

(3)TA发布公钥pk={G1,g,h,Φ},保留系统主密钥mk={h,gα}。

2)私钥生成KeyGen:

3)数据加密Encrypt:

(1)从根节点R自上向下的顺序为访问控制策略T中的每一个节点x产生一个多项式qx。

4)组密钥生成GKeyGen:

V8=hash(P1),V4=hash(V8)

V2=hash(V4),V1=hash(V2)

图2 逻辑二叉树

5)密文重加密reEncrypt:

6)密钥更新upGKeyGen:

7)密文解密Decrypt:

利用User对DO所定义的T进行递归运算,输入sk′和CT′,若满足ω∈T,即T(ω)=1时,则能够解密m,否则,解密失败返回⊥。定义递归运算DecryptNode(CT,sk,x)。若x是T的叶子节点,则有:

e(g,g)r·qx(0)

计算:

e(g,g)r·qx(0)

当ω满足T时,即TR(ω)=1时,则计算:

A=Decrypt(CT,sk,R)=

e(g,g)r·qR(0)=e(g,g)r·s

解出明文消息,即m=C′/(e(C,D′)/A)。

3.3 属性变更

当用户加入或撤销某些属性时,Manager根据用户所有叶子节点的位置情况,重新寻找其最大子树的根节点运行GKeyGen和upGKeyGen算法完成组密钥的更新。

1)属性加入:

设某属性ωi用户组为{P1,P2,P3,P4,P7},如图3所示,通过结合三部分数据即V2、V14、Ui得出ωi的组密钥Ei={V2‖V14‖Ui}。

图3 属性加入示意图

2)属性撤销:

图4 属性撤销示意图

3)用户整体变更:

用户的整体变更分为2种情况:用户加入和用户撤销。对于情况1可以看做是为一个新用户分配部分属性;情况2则是将老用户的所有属性全部撤销。因此,用户的整体变更从微观上讲也可以归纳为属性变更。然而,这里涉及到系统向前向后安全性问题,需要对此进行重新定义。

图5 用户撤销示意图

2)利用更新后的叶子节点密钥,通过Hash运算重新对其所在路径上的节点生成新的密钥链。

3.4 安全性证明

Pr [Q(g,ga,gb,gc,e(g,g)abc)=1]-

Pr[Q(g,ga,gb,gc,e(g,g)θ)=1]≥ε。

定理1假设DBDH成立,如果有敌手能够在多项式的时间内以可以被忽略优势ε的情况下求解DBDH问题,那么该方案满足选择明文攻击安全的。

证明:若存在敌手A能够用算法Q可以赢得这次游戏过程,即输入(g,ga,gb,gc,Z=e(g,g)θ),算法Q决定等式Z=e(g,g)abc是否成立。

A和B执行IND-CPA游戏如下:

初始化:敌手A向挑战者B发布所要攻击的访问控制策略树T*。

阶段1:

D=g(α′+r)/β′=g(ab+br′-ab)/β′

Dj=gr·H(ω(j))rj=gbr′-ab·H(ω(j))rj

2)运行upGKeyGen得到ω*的组密钥Eω*。

挑战阶段:

C′=mu·e(g,g)α′·s1;C=gβ′·s1

阶段2:同阶段1,A继续向B发送询问报文。

猜测:A输出u′∈{0,1}。

1)若u=u′,那么Z=e(g,g)abc,即A获得真实的密文,则A的优势定义为:

Pr[u=u′|Z=e(g,g)abc]=1/2+ε

2)若u≠u′,那么Z=e(g,g)θ,即A无法获得任何明文信息,则Pr[u≠u′|Z=e(g,g)θ]=1/2。因此:Pr[Q(g,ga,gb,gc,e(g,g)abc)=1]-Pr[Q(g,ga,gb,gc,e(g,g)θ)=1]≥ε成立。

在以上的挑战过程中,如果没有敌手能够以不可忽略的优势在多项式时间内完成,那么本文所提出的ALKEK-CPABE方案符合选择明文攻击安全。

4 方案对比分析

4.1 安全性分析

定理2方案具有向前向后安全性。

定理3方案具有抗串谋攻击性。

4.2 复杂性对比

本节在计算复杂性和用户存储量2个方面进行分析。为了能够直观对比,在这里指定所应用的二叉树的方案均为满二叉树。假设n为每个属性组中所拥有的用户数量,文献[15]所提出的IKE方案使用(n,t)门限秘密共享方案分发组密钥。计算复杂性对比如表1所示。

表1 计算复杂性对比

从表1可以看出,本文方案通过引入逻辑二叉树τ使其属性初始化、属性变更和用户存储量呈对数增长,减少了这3个方面的开销。

1)由于构建了逻辑二叉树,在初始化时用户仅需通过解密节点密钥,因此本文方案计算复杂度为O(lbn)。

2)新用户的加入或撤出系统时,仅由Manager为User产生一个新的更新密钥Vtmp,而User也仅是完成一次更新密钥的解密,故用户变更计算的复杂度为O(1)。

3)当发生属性变更时,User只需推出解密时用到的节点密钥,所以,属性更换的复杂度为O(lbn)。

4)根据τ的构建原理可知,父节点的密钥是由左孩子节点进行Hash函数运算所得,因此对于左孩子节点上用户的存储量为1;对于右孩子节点,它还需保存父节点密钥。整体来说,用户存储量在⎣1,lbn」范围内不等,总体小于lbn。由此可以看出,本文所提出的方案在属性变更用户的计算复杂性和存储压力要小于其他方案。

4.3 参数对比

在现有的属性撤销机制中,根据访问控制策略的不同主要分为线性秘密共享(LSSS)和访问树两类。本节给出了ALKEK-CPABE方案与文献[4]方案的参数对比,如表2所示。其中,l表示整体的系统属性域中的属性个数,r表示需要参与属性变更的用户数量,t表示在Encrypt和reEncrypt算法中出现的属性个数,k表示用户的属性域大小。

表2 属性撤销机制

4.4 仿真实验分析

本节通过仿真实验与文献[4,17]所提出的属性变更方案在系统初始化、属性变更和密文解密3个方面的效率进行综合分析。实验环境搭建在VMware虚拟机上,实验代码基于cp-abe-0.11库[18]编写。使用配置为IntelCore2 Duo 2.92 GHz,2 GB内存的虚拟机作为服务器模拟可信授权机构,操作系统为Ubuntu12.04。使用配置为IntelCore2 Duo 800 GHz,1 GB内存的几台虚拟机作为客户端模拟用户,操作系统为Window7。实验中通过统计虚拟机的反应时间来计算时间消耗。

系统初始化:3种方案的初始化时间都是随着系统属性域呈线性增加,如图6所示,由于文献[17]需要进行密钥对的协商,因此时间的消耗在初始化和加密阶段都要高于本文方案,文献[4]是建立在合数阶双线性映射群基础之上的,并额外生成2个随机数进行二元运算,造成公钥过长,因此,该方案的初始化效率介于2种这方案之间。

图6 系统初始化时间对比

属性变更:如图7所示,由于文献[17]方案在变更过程中不需要在密钥对中进行协商更新,只进行组密钥的替换,因此时间消耗随属性数量的增加基本持平,文献[4]方案在加密时引入用户撤销列表,属性变更牵扯涉及的变更用户,故时间消耗依然偏高。本文方案利用访问树结构的访问控制策略,时间消耗随着属性增加呈对数增长,并且属性变更过程中Manager仅需接受根节点密钥并进行重加密,因此,在属性变更效率方面整体高于另外2个方案。

图7 属性变更时间对比

密文解密效率对比如图8所示,由于文献[4]是将恢复明文所需的信息片段与用户绑定,在解密时需要线性秘密重构,增加了解密开销;本文方案在解密方面只需多进行一步双线性映射运算,因此效率要高于前者;在访问策略方面将属性关联到二叉树中,随着属性域的增加解密开销上升较缓,属性数量越多,其优势越明显。

图8 密文解密时间对比

通过以上实验综合对比可知,本文所提出的ALKEK-CPABE方案在系统初始化、属性变更和密文解密方面的效率都是最优的,能够在拥有着巨大属性域的云计算环境中得到更广泛的应用。

5 结束语

本文提出一种支持细粒度属性变更的云访问控制方案。该方案可根据需求任意加入或撤出属性,并在变更时保证数据向前向后的安全性,实现属性变更的细粒度化。同时方案将哈希函数加入到逻辑二叉树中,使用户只需保存与其对应的叶子节点和部分节点的密钥,减少了用户存储的压力。下一步将继续优化逻辑二叉树,减少用户在解密时的开销。

猜你喜欢

二叉树密文解密
基于双向二叉树的多级菜单设计及实现
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
炫词解密
二叉树创建方法
解密“一包三改”
一种基于SVM 的多类文本二叉树分类算法∗
炫词解密
数据结构与虚拟仪器结合教学案例
——基于二叉树的图像加密
一种基于密文分析的密码识别技术*