云计算环境下数据安全关键技术研究
2017-10-10王继红
王继红
摘要 随着云计算技术的日益普及,云储存服务已得到普遍应用。云计算环境下,如何保证用户数据的隐私、数据的完整性以及数据的可控分享,一直是研究的热点。针对这一问题,本文对密文访问控制、模糊关键字检索和数据完整性验证的经典算法进行了探讨。
关键词 云计算;数据安全;算法
中图分类号 TP3 文献标识码 A 文章编号 2095-6363(2016)14-0068-01
云计算是网格计算出现之后的又一种新的计算模式,或者说是一种网格计算的商业实现。由于具有超大规模、虚拟化、高可靠性、通用型、高可扩展性、按需服务及其廉价等特点,同时由于云计算服务垄断在云计算服务提供商手中,因此,云计算环境下数据的安全已成为云计算研究领域关注的重点。
在云计算环境下,基于密码学方法实现的数据访问控制受到普遍关注,但受带有时间或约束的授权、权限受限委托等问题的限制。采用某些方法,如面向用户单独验证的数据可检索性证明(POR)方法、公开可验证的数据持有证明(PDP)方法等,云用户只需下载很少数据,便可以高置信概率判断远端大规模数据的正确性和完整性,从而避免从云端下载大量数据而付出的巨大通信代价。
1云计算环境下数据安全关键问题的经典算法
1.1密文访问控制算法
1)基于公钥算法的密文访问控制算法。公钥算法的基本原理是:存在加密和解密两个一一映射的算法,即,R=E(s,KE),其中,KE为加密密钥,s为明文,R为密文,E为将明文S采用加密密钥KF加密为密文R的加密算法,明文s和密文R的长度是不同的;S=D(R,KD),其中,KD为解密密钥,S为明文,R为密文,D为将密文R采用解密密钥Kn解密为明文s的解密算法。数据发布者可以将访问控制策略和数据一起发布到云存储中。数据发布者采用授权用户的公钥(加密密钥)对数据解密密钥进行加密,然后存储于云端。授权用户从云端取回密文后,采用其授权的私钥(解密密钥)来解密数据解密密钥。该算法由于大数运算的时间复杂度关系,实现起来较慢。
2)基于Hash算法的密文訪问控制算法。HASH算法的基本原理是:R=H(s)是一个多对一映射的算法,其中,S为明文,R为密文,H为将明文s唯一映射为密文R的算法,且S和R具有相同的长度。由于是多对一映射,不存在逆映射S=H-1(R)。该算法是通过构建偏序的密钥树,使密钥树中每个节点的密钥都能正向推出其子节点密钥,但子节点密钥不能反向推出其母节点的密钥。基于此,数据的加密可通过密钥树中不同节点的密钥来实现,从而赋予数据的不同访问权限。该算法中的密钥生成关系复杂,但密钥管理体系的效率低下。
3)基于CP-ABE算法的密文访问控制算法。该算法的访问控制主要由系统参数的生成、私钥的提取、用公钥加密得到密文和访问控制树、用私钥解密得到明文四个部分构成。服务器生成公钥PK和主密钥MK后,对明文M进行加密生成密文CT和访问控制树R。用户通过输入自己的属性集S,生成其私钥SK。对用户的密钥组件SK进行访问判定,最后由对称密钥算法AES对密文进行解密,得到明文M。该算法的缺点是,对于高敏感度的访问控制,计算复杂度特别庞大。
1.2支持密文的模糊关键字检索算法
1)基于穷举法的模糊关键字检索算法。用户事先为每个关键字构造模糊关键字集合,然后根据构造的关键字的模糊集合穷举出所有可能的单词,并计算出词与词之间的距离。基于这种模糊关键字集合结构,加密云数据上的模糊关键字算法,然后实现。
2)基于通配符的模糊关键字检索算法。采用WFSC技术,通过通配符的方式来产生模糊关键字集合,用一个通配符来代替列举出所有的字符,然后通过通配符的个数来标识文档的相似度并进行排序,最后将进行排序的密文返回给用户。
3)基于字典的模糊关键字检索算法。采用DFSC技术,把一个字典作为模糊关键字集合,所有的模糊关键词都属于这个字典。用这个字典来限制模糊关键字集合的规模。在加密云环境下,该算法利用基于DFSC的模糊关键字集合构造加密文件,在相同的条件下,DFSC方案的索引规模更小。
1.3数据完整性验证的算法
1)基于哈希树的数据完整性验证算法。基本思想是用户建立一个树形完整性检测结构(IC-树),并对需上传云端的数据文件设置一个随机索引,根据随机索引在IC-树的对应节点存储该数据文件的校验值。该算法在存储远端数据的常量级校验信息时,用户可以常量级的网络通信量和计算量验证数据的完整性。
2)基于BLS短签名和双线性对的数据完整性验证算法。该算法是一种基于改进的BLS短签名,以双线性对为验证手段,在没有第三方参与情况下实现完整性检测的算法。即用户选择一个随机数作为其私钥,并计算出公钥,然后用私钥对每个信息块签名,然后将签名集合、树根签名和信息构成的集合发送给服务器进行完整性检测;用户构建一个整数集合,对于集合中的每个元素,均选择一个相应的随机整数,组成一个“查询”二元组,该“查询”二元组为需查询信息块中的某个信息;然后将该查询信息发送给服务器进行完整性查询;收到用户发送的“查询”请求后,服务器通过计算,得出一个完整性证明;收到服务器返还的完整性证明,用户根据收到的信息计算根节点,并根据公司判断通过计算根节点值于本地存储的根节点值是否相符,从而验证数据的完整性。该算法可以快速实现远程、动态的对象数量的完整性检测,并能防止用户的隐私数据被窃取。
2结论
云计算环境下的数据安全是当前制约云计算发展的关键因素。本文介绍了云环境下用于保护数据安全的密文访问控制、支持密文的模糊关键字检索和数据完整性验证技术的经典关键算法。本文提到的经典关键算法只是针对现阶段云计算存在的问题而提出的解决方案,这些算法在一定程度上推进了云计算技术的进步,但对云计算中出现的新问题还没有进行考虑。因此,这些算法在面临云计算的新问题时有着很大的改进空间。endprint