本文分析了加密检索技术在云存储应用中的重要意义,综合分析了当前加密检索和相关技术研究现状和存在问题。
云计算是一种通过网络以按需、易扩展的方式获取所需服务的在线网络服务交付和使用模式,它是分布式计算的一种形式。是网络上的服务以及提供这种服务的数据中心的软硬件集合。云计算是并行计算、分布式计算和网格计算的演进。云计算的实现形式包括软件即服务、效用计算、平台即服务、基础设施即服务。目前云计算已经有部分应用,如Google公司的GoogleDocs,另外微软、Amazon也有类似的云计算服务设施。
云计算主要目标是提供高效的计算服务。云计算基础设施之一是提供可靠、安全的数据存储中心。因此,存储安全是云计算领域的安全话题之一。为解决数据隐私的保护问题,常见的方法是由用户对数据进行加密,把加密后的密文信息存储在服务端。当存储在云端的加密数据形成规模之后,对加密数据的检索成为一种迫切需要解决的问题。
在加密信息检索的相关研究工作中,对加密信息的检索有单用户线性搜索、基于关键词的公钥搜索、安全索引等几种算法。这几种算法可以快速地检索出所需信息,但其代价较高,不适用大规模数据检索的情况,而且,在云存储中,检索时相关的文档较多,对其进行相关排序是进一步需要解决的问题,以上几种算法均不能解决问题。
通过保序加密可以利用文档中的词频信息对文档依相关度进行排序,提高了检索准确率和返回率。然而在文档中某些关键词出现的频率非常高,指代性不强,这一类词称为常用词,常用词的存在歪曲了文档和实际查询相关度。而准确反映文档、查询相关度的向量空间模型无法直接应用。全同态加密提供可以对密文进行操作的加密算法。而且通过全同态加密,一方面可以保证密文信息不被统计分析,另一方面可以对加密信息进行加法和乘法运算,同时保持其对应明文的顺序。
1.云存储应用中的加密存储技术
大规模高性能存储系统安全需求,特别是云存储应用中,可扩展和高性能的存储安全技术,是推动网络环境下的存储应用(如云存储应用)最根本的保证,已经成为当前网络存储领域的研究热点。云存储应用中的存储安全包括认证服务、数据加密存储、安全管理、安全日志和审计。
访问控制服务实现用户身份认证、授权,防止非法访问和越权访问。主要功能包括:用户只能对经管理员或文件所有者授权的许可文件进行被许可的操作;管理员只能进行必要的管理操作,如用户管理、数据备份、热点对象迁移,而不能访问用户加密了的私有数据。
加密存储是对指定的目录和文件进行加密后保存,实现敏感数据存储和传送过程中的机密性保护。安全管理主要功能是用户信息和权限的维护,如用户帐户注册和注销等,授权用户、紧急情况下对用户权限回收等。
安全日志和审计是记录用户和系统与安全相关的主要活动事件,为系统管理员监控系统和活动用户提供必要的审计信息。
对用户来说,在上述4类存储安全服务中,存储加密服务尤为重要。加密存储是保证用户私有数据在共享存储平台的机密性核心技术。
随着存储系统和存储设备越来越网络化,存储系统在保证敏感数据机密性的同时,必须提供相应的加密数据共享技术。保护用户隐私性要求存储安全建立在对存储系统的信任基础之上。必须研究适用于网络存储系统的加密存储技术,提供端到端加密存储技术及密钥长期存储和共享机制,以确保用户数据的机密性和隐私性,提高密钥存储的安全性、分发的高效性及加密策略的灵活性。在海量的加密信息存储中,加密检索是实现信息共享的主要手段,是加密存储中必须解决的问题之一。
2.加密信息检索技术
对加密信息检索的研究始于2000年,Song等人提出加密数据搜索的实用算法,Boneh等人提出基于关键词的公钥加密算法,Park等人提出安全索引搜索算法。
2.1线性搜索算法
在线性搜索算法中,首先用对称加密算法对明文信息加密。对于每个关键词对应的密文信息,生成一串长度小于密文信息长度的伪随机序列,并生成一由伪随机序列及密文信息确定的校验序列。伪随机序列的长度与检验序列长度之和等于密文信息的长度。伪随机序列及检验序列对密文信息再次加密。在搜索过程中,用户提交明文信息对应的密文信息序列。在服务器端,密文信息序列被线性地同每一段序列模2加。如果得到的结果满足校验关系,那么说明密文信息序列出现,否则,说明密文信息不存在。
线性搜索方法是一种一次一密的加密信息检索算法,因此有极强的抵抗统计分析的能力。但其有一个致命的缺点,即逐次匹配密文信息,这使得这种检索方法在大数据集的情况下难以应用。
2.2基于关键词的公钥搜索
基于关键词的公钥加密搜索算法由Boneh等人提出,其目的是可以在用户端存储、计算资源不足的情况下,通过访问远端数据库获取数据信息。存储、计算资源分布具有不对称性,即用户的计算存储能力不能实时满足其需求。另一方面用户在移动情况下存储、索引数据的需求也有增加,比如Email服务等。在这种特定情况下,需要保护用户的数据隐私。加密数据有多个不同来源,针对这一问题的解决方法是加密算法使用公钥加密。
算法的过程如下,首先生成公钥、私钥,然后对待存储的明文关键词用公钥进行加密,生成可搜索的密文信息。
2.3安全索引
安全索引由Park等人提出,解决了简单索引方式易受统计攻击的问题。其机制是每次加密所用的密钥是事先生成的一组逆Hash序列,加密后的索引被放入布隆过滤器中。当检索的时候,首先用逆Hash序列密钥生成多个陷门,然后进行布隆检测。对返回的密文文档解密即可得到所需检索的文档。
针对有新用户加入、旧用户退出的多用户加密信息检索,这是一种解决方法。但其存在的缺陷是需要生成大量的密钥序列,随着检索次数的增加,每多进行一次检索,其计算复杂度均线性增加。这在实际应用中很难被接受。
在以上提到的多种加密信息检索算法中,所用的检索模型都是布尔模型,因而无法根据查询与待检索文档的相关度进行排序操作。在实际情况中,尤其是在数据规模较大的云存储应用中,包含某一查询关键词的文档可能有很多个,如何在多个可能相关的文档中找出最相关的一个或若干个文档是需要解决的问题。对加密的文档,是否可以应用成熟的向量空间模型,进而进行相关排序,是一个开放的问题。
2.4引入相关排序的加密搜索算法
Swaminathan等人提出了保护隐私的排序搜索算法[8]。在这一算法中,每一文档中关键词的词频都被保序加密算法加密。加密文档被提交查询给服务器端后,首先计算检索出含有关键词密文的加密文档;然后对用保序算法加密的词频对应的密文信息进行排序处理;最后把评价值高的加密文档返回给用户,由用户对其进行解密。
这一种方法可以在给定多个可能相关文档的情况下对加密文档进行排序,进而把最可能相关的文档返回给用户。但这一种算法首先不适用于一个查询包含多个查询词的情况,其次算法只利用了文档中的词频信息,无法利用词的逆文档频率,进而向量空间模型无法直接应用。解决前一种问题的一种方法是用加法同态加密算法[9]对词频信息进行加密处理。
3.一种基于全同态加密的检索方法
在加密信息检索研究中,结果的排序是衡量检索算法性能的重要指标之一。当前随着云计算技术的提倡和应用,加密文档必将呈爆炸式增加。排序的准确性成为对检索系统性能的客观要求,其主要目的是提高检索系统服务质量和检索效率。分析现有的加密信息检索算法发现,在保证查准和查全两方面性能的同时,对排序问题以及准确性方面考虑不够。针对该问题,本文提出了一种面向云存储应用中的全同态加密的检索方法。全同态加密的检索方法是采用信息检索中的向量空间模型,计算检索出的文档与待查询信息之间的相关度,对检索词词频和倒排文档频率进行统计,然后采用全同态方法对文档进行加密并建立索引方法。检索后将加密文档与索引项密文一起上传到服务器端。
全同态加密检索及排序过程如图1所示。提交检索之前,同样先对检索语句进行分词、词干化,得到关键词明文序列并对明文进行加密。云端服务器对提交密文序列进行检索时,提交加密后的检索词。
文档由每个关键词的权重向量表示,权重是词频与倒排文档频率对数的乘积的归一化。对用全同态加密后的词频、倒排文档频率进行操作可以得到权重。
对于检索词采用同样方法来描述,取两者的内积即可得到两者的相关度,然后根据大小进行排序,将有效排序后的文档返回给用户。用户得到加密文档后,用私钥对文档解密得到原始文档。
通过全同态加密算法加密的明文数据可以在不恢复明文信息的情况被有效检索出来,即把最相关的文档返回给用户。既保护了用户的数据安全,又提高了检索的性能。
4.结束语
本文分析了加密检索技术在云存储应用中的重要意义,综合分析了当前加密检索和相关技术研究现状和存在问题。在此基础上,本文提出了全同态加密检索方法并简要介绍全同态加密检索方法的基本原理。已有的实验数据表明,全同态加密检索方法与其他加密检索算法相比,能在一定程度上提高检索效率。