云存储应用中的加密存储及其检索技术
密搜索算法由Boneh等人提出,其目的是可以在用户端存储、计算资源不足的情况下,通过访问远端数据库获取数据信息。存储、计算资源分布具有不对称性,即用户的计算存储能力不能实时满足其需求。另一方面用户在移动情况下存储、索引数据的需求也有增加,比如Email服务等。在这种特定情况下,需要保护用户的数据隐私。加密数据有多个不同来源,针对这一问题的解决方法是加密算法使用公钥加密。 算法的过程如下,首先生成公钥、私钥,然后对待存储的明文关键词用公钥进行加密,生成可搜索的密文信息。 2.3 安全索引 安全索引由Park等人提出,解决了简单索引方式易受统计攻击的问题。其机制是每次加密所用的密钥是事先生成的一组逆Hash序列,加密后的索引被放入布隆过滤器中。当检索的时候,首先用逆Hash序列密钥生成多个陷门,然后进行布隆检测。对返回的密文文档解密即可得到所需检索的文档。 针对有新用户加入、旧用户退出的多用户加密信息检索,这是一种解决方法。但其存在的缺陷是需要生成大量的密钥序列,随着检索次数的增加,每多进行一次检索,其计算复杂度均线性增加。这在实际应用中很难被接受。 在以上提到的多种加密信息检索算法中,所用的检索模型都是布尔模型,因而无法根据查询与待检索文档的相关度进行排序操作。在实际情况中,尤其是在数据规模较大的云存储应用中,包含某一查询关键词的文档可能有很多个,如何在多个可能相关的文档中找出最相关的一个或若干个文档是需要解决的问题。对加密的文档,是否可以应用成熟的向量空间模型,进而进行相关排序,是一个开放的问题。 2.4 引入相关排序的加密搜索算法 Swaminathan等人提出了保护隐私的排序搜索算法[8]。在这一算法中,每一文档中关键词的词频都被保序加密算法加密。加密文档被提交查询给服务器端后,首先计算检索出含有关键词密文的加密文档;然后对用保序算法加密的词频对应的密文信息进行排序处理;最后把评价值高的加密文档返回给用户,由用户对其进行解密。 这一种方法可以在给定多个可能相关文档的情况下对加密文档进行排序,进而把最可能相关的文档返回给用户。但这一种算法首先不适用于一个查询包含多个查询词的情况,其次算法只利用了文档中的词频信息,无法利用词的逆文档频率,进而向量空间模型无法直接应用。解决前一种问题的一种方法是用加法同态加密算法[9]对词频信息进行加密处理。 3 一种基于全同态加密的检索方法 在加密信息检索研究中,结果的排序是衡量检索算法性能的重要指标之一。当前随着云计算技术的提倡和应用,加密文档必将呈爆炸式增加。排序的准确性成为对检索系统性能的客观要求,其主要目的是提高检索系统服务质量和检索效率。分析现有的加密信息检索算法发现,在保证查准和查全两方面性能的同时,对排序问题以及准确性方面考虑不够。针对该问题,本文提出了一种面向云存储应用中的全同态加密的检索方法。全同态加密的检索方法是采用信息检索中的向量空间模型,计算检索出的文档与待查询信息之间的相关度,对检索词词频和倒排文档频率进行统计,然后采用全同态方法对文档进行加密并建立索引方法。检索后将加密文档与索引项密文一起上传到服务器端。 全同态加密检索及排序过程如图1所示。提交检索之前,同样先对检索语句进行分词、词干化,得到关键词明文序列并对明文进行加密。云端服务器对提交密文序列进行检索时,提交加密后的检索词。 文档由每个关键词的权重向量表示,权重是词频与倒排文档频率对数的乘积的归一化。对用全同态加密后的词频、倒排文档频率进行操作可以得到权重。文档向量由公式(1)计算得到。 对于检索词采用同样方法来描述,取两者的内积即可得到两者的相关度,然后根据大小进行排序,将有效排序后的文档返回给用户。用户得到加密文档后,用私钥对文档解密得到原始文档。 4 结束语 本文分析了加密检索技术在云存储应用中的重要意义,综合分析了当前加密检索和相关技术研究现状和存在问题。在此基础上,本文提出了全同态加密检索方法并简要介绍全同态加密检索方法的基本原理。已有的实验数据表明,全同态加密检索方法与其他加密检索算法相比,能在一定程度上提高检索效率。
通过全同态加密算法加密的明文数据可以在不恢复明文信息的情况被有效检索出来,即把最相关的文档返回给用户。既保护了用户的数据安全,又提高了检索的性能。
- 云存储中的虚拟化技术构成及应用分析(09-12)
- 基于云存储视频监控系统的研究(09-12)
- 云存储技术及其应用(10-09)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)