朱爱梅 黄毅
摘要:针对云计算访问控制中的加密问题,该文提出了一种改进的KAE的加密算法,通过对[Extract]和[Decrypt]的过程进行优化,并对其进行了证明。仿真实验中该文算法具有很好的加密效果,与基本的AES算法相比在读取时间,访问时间上都有较大的优势。
关键词:访问控制;云计算;加密
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)31-0029-03
作为一种21世纪的新兴的计算模式越来越受到人们的关注,这种新的计算模式具有资源共享,按需分配的特点,因此被广泛地运用到企业中。企业中的大部分中小企业可以通过借助云计算的平台方便地进行数据的存储和访问,这样可以有效减少云中小企业的运营成本。同时作为日常的人们使用云计算平台可以方便的获取资料等等。在不断的访问云计算数据库的过程中,安全问题就显得非常重要,虽然一些企业级的杀毒工具能够对出现的病毒,木马进行处理,但是很显然最主要的问题还是来自于访问控制,这是因为云计算涉及的用户存在不同的类型,这些用户自身参差不齐,导致了对于云计算访问存在很大的风险。因此云计算的安全问题就显得非常的重要。尤其是关系到云计算的访问控制就是重中之重了。
本文对云计算的访问控制的研究基础上,提出了一种改进的KAE加密算法来进行云计算下的访问控制模型。通过仿真实验说明本文的加密算法具有很好的加密效果适合云计算控制访问模型。
1 云计算访问控制模型简述
在云计算中的访问控制主要是指在云计算中需要对部分的用户进行授予权限,而禁止其他的用户获得权限,而访问控制模型是主要是从安全的角度出来来描述访问控制而建立的一种模型。目前,在云计算中使用比较多的访问控制模型主要分为三类,一类是自主访问控制,一类是强制访问控制,一类是基于角色的访问控制。所谓自主访问控制主要是对客体拥有权的主体对客体的一种访问权限的设置,并且可以在随后的时间范围内可以撤销。强制访问控制模型主要是设定客体中的信息具有敏感和访问信息的等级进行的一种强行设置的方法。基于角色的访问控制自主访问控制主要是只对某个客体拥有权的主体对该客体的一种访问权,并在随后的时刻对这些授权进行撤销。强制访问控制模型是根据客体中的信息敏感和访问信息的访问等级,对客体进行一种限制方法。基于角色的访问控制主要是指在控制模型中引入了“角色”的概念,将操作的权限直接给予用户,这样用户通过不同的角色来获得相应的操作权限。授予主要是引入了角色的概念,使得操作权限直接授予角色,用户使用角色来获得相应的操作权限。
2 基于改进的KAE算法的云计算访问控制模型
2.1 KAE算法
为了能够实现对云计算下的数据进行加密,增加访问控制模型的安全性,Chu提出了一种采用密钥聚合进行加密的机制,其根本思想是在映射函数中引入双线性的思想,可以有效地提高明文信息的加密程度。但这种机制的缺点是对信息需要额外的添加公钥加密,并且还在密文信息中添加一个额外的标致,这样就容易导致明文在进行加密后出现的密文会被分解为几个不同的部分组成,而这些私密密钥的拥有者却只有一个主密钥,很显然这些私密密钥都是从主密钥中分离出来的,分离出来的密钥就叫做聚合密钥(Aggregate Key,AK),因此使用这种密钥的加密算法叫做聚合密钥加密(Key Aggregate Encryption,简称KAE)算法.其组成部分如下:(1)每一个数据的拥有者都必须设定一个公共参数,以便其他的用户可以访问这个参数;(2)通过KAE中的[keyGen]函数生成一个公共密钥对;(3)数据拥有者发布的消息必须通过[Encrypt]函数来设定明文信息中的数据,以便能够有效的决定密文中的标识符;(4)数据的拥有者通过主密钥和私密密钥可以联合传给密文子集;(5)用户使用[Decrypt]函数通过聚合密钥对密文进行解密
2.2 算法分析
在KAE算法中,提出的聚合加密机制主要是为了能够将多个解密的密钥聚合为一个单独的密钥,这样做的目的是可以方便云计算用户只需要通过一个密钥就能够来解密所有的文件,从用户的角度出发最大程度的方便了用户的密钥管理,同时提高了资源的利用率和方便的资源的有效管理,但这里同样存在一个问题就是云计算的用户数量是不定的,因此可能会导致设定的公共参赛容量不断的变大,这样容易造成云计算系统的负担,增加系统成本。
2.3 优化KAE算法
KAE算法的复杂主要集中在有大量的双线性对的运算,因此在解密过程中双线性对的运算对算法的运行效率存在很大影响,特别是对细粒度的访问,使得结构变得非常庞大。设云计算用户中的角色的个数为[m],因此访问控制中的叶子节点数量为[x],因此导致叶子节点变得非常庞大,为了能够提高算法的性能,本文将尽可能的减少这种双性对的运算过程,假如访问控制树中的任意两个节点的叶子节点的属性存在相同,因此可以考虑合并,这样就能够相对减少线性对的工作量,结合KAE算法的特点,需要对[Extract]和[Decrypt]的过程进行优化。
2.3.1 算法步骤
步骤1:随机选择一个因子[s∈Zq]和一个随机向量[v∈Zhq],其中,[h]是访问叶子节点的个数
步骤2:计算[λx=Rx×v],其中[Rx]为[R]的一行
步骤3:随机选择一个向量[w∈Zhq]
步骤4:计算[wx=Rx×w]
步驟5:选择一个双线性素数[p]阶群[G],其中[Setup(1λ,n)]:
[2λ≤p≤2λ+1],[g∈G,α∈RZp] (1)
步骤6:计算[C0=Me(g,g)sC1,x=e(g,g)λxe(g,g)αxρxC2,x=gρxC3,x=gyπ(x)ρxgwx]
步骤7:设置[n]为最大密文的标记,[param=
[pk=v=gγMk=γ]
步骤8:对[Encrypt(pk,i,m)]进行优化:设定信息[m∈GT],指数[i∈{1,2,......,n}],随机选择一个[t∈RZp],计算得到的密文为:
[C=gt,(vgi)t,me(g1,gn)t]
步骤9:对进[Extract(Mk,S)]进行优化:对于[S]集通过计算得到:
[Ks=j∈Sgγn+1-j]
步骤10:[Decrypt(Ks,S,i,C)=c1,c2,c3]:当[i∈S],得到消息输出,如下:
[m=c3×e(Ks×j∈S,j≠ign+1-j+i,c1)]
因此对于数据信息的持有者来说,只需要了解[γ],就能得到如下结果
[e(c1,gn)γ=e(gt,gn)γ=e(g1,gn)t]
2.4 方案的安全性证明
本小节主要证明通过KAE中授权的用户才能访问存储在云计算服务器中的数据,同时云计算提供商不能随意地修改或者解密数据,从而能够访问存储在云中的数据。设定每一个用户拥有有且只有一组的解密与之匹配的属性集,因此对于设定的访问矩阵[R]所在的行[X']而言,存在线性约束[Cx∈Zq],使得[x∈X'cxRx={1,0,0,1}]。
由于[dec(x)=C1,xe(H(u),C3,x)e(skπ(x),C2,x)=e(g,g)λxe(H(u),g)ωx],因此存在
[Πx∈X'dec(x)=x∈X'(e(g,g)λxe(H(u),g)ωx)cx=e(g,g)s]
所以:
[C0/x∈X'dC0/e(g,g)S]
从上面的公式中可以发现不存在矩阵中的相关行的属性,无法[x∈X'cxRx={1,0,0,1}]成立,因此无法达到控制的目的
3 实验说明
本文选择的平台为Linux ubuntu,硬件配置是CPU为酷睿2.0,内存为4G,硬盘为500G,操作系统为Windows Server2003。图1显示了本文算法在不同的私密密钥个数下的情况,用户通过私密密钥生产用户主密钥的时间,从图中可以发现伴随着私钥个数的不断地增大所生成的时间而呈现上升的趋势。图2显示了在访问控制策略用户数量下的本文算法的加密时间,从图中可以发现,伴随着用户数量的增大,加密时间逐渐增大。图3显示了两种加密算法下的数据读取的速度,从中发现伴随着文件的逐渐增大,本文的读取速度在逐步减少,图4中显示了两种加密算法下的数据访问时间,从中发现伴隨着文件逐步增大,本文算法的读取时间相对稳定。
4 结束语
本文针对云计算访问控制的问题采用了优化的KAE算法,并对算法中的两个实现过程进行了改进,仿真说明中将本文算法与AES算法进行相比,获得了比较好的效果,进一步说明了本文算法能够有效地适应云计算下的访问控制,具有一定的应用价值。
参考文献:
[1] 刘青.云计算环境中基于策略的多用户全同态加密方法[J].广西大学学报:自然科学版,2016,41(3):786-795.
[2] 胡绍忠.同态加密技术在云环境数据传输中的应用[J].科技通报,2012,28(12):91-92.
[3] 高煌红.云计算数据存储安全的研究[D].浙江工业大学,2014.