可搜索加密概述(1)

1,可搜索加密是什么

顾名思义,可搜索加密就是在加密的情况下实现搜索功能。目前很多文件存储在远程服务器,并且在有需要的时候需要能够检索文件或实现文件增,删,改。但是有的时候有些文件内容又不想让服务器知道,需要对文件加密处理,如何将加密文件存储到远程服务器同时又可以在保密的情况下实现搜索和文件修改,就是可搜索加密的研究内容。

2,可搜索加密的研究内容

现在的学者们在可搜索加密方面主要研究什么呢?主要包括搜索语句设计,模糊搜索以及可搜索加密的应用三个方面。

2.1 搜索语句即用户输入的搜索关键词,从初期的只支持单词搜索,到后来的多关键词搜索,区间搜索和子集搜索,如何让可搜索加密系统支持复杂的搜索请求的同时保证安全性和高效性,是研究的难点。其中安全性需要通过合适的困难假设来证明。

2.2 模糊搜索就是在搜索时可以匹配到与关键词相近或相似的搜索结果,这样的功能在用户输入错别字或不记得精确关键词时可以提供方便。目前在明文上的模糊搜索方法已经有很多,但是并不适用于密文中,这是可搜索加密的一个研究内容。

2.3 在不同场景中对可搜索加密可能有特定的需求,例如数据所有者为了节省本地存储空间从而将数据加密存储在远程服务器,那么只有自己会进行检索和修改操作;另外一些场景则需要将数据共享或多个用户上传数据允许一个用户搜索。这样的区别在可搜索加密中可能需要不同的密码机制来实现。

3,可搜索加密分类

实现可搜索加密主要可以分为两种方法:基于对称密码算法和基于公钥密码算法。基于公钥密码的算法安全性依赖于复杂数学问题的难解性,主要使用双线性映射等代数工具。基于对称密码的算法用到了伪随机函数,哈希算法以及对称加密算法等工具,相比基于公钥密码的算法运算速度更快。它们适用于不同的应用场景。

按照应用场景不同,可搜索加密可以分为以下四种类型。

3.1 单用户模型
某用户为了节省本地存储空间的开销,将一些文件存储在远程服务器中,但是又不信任该服务器,为了保障自己的数据,该用户使用可搜索加密技术。这个场景下适合采用基于对称密码的算法。他的做法是用私钥加密文件并上传到服务器,检索时用私钥生成陷门,服务器根据陷门进行检索后返回密文。

3.2 多对一模型
即有多个数据上传者,只有一个数据接收者(检索者),例如邮件服务器委托网关对邮件进行过滤。这个场景很适合采用基于公钥密码的算法。由接收者发布公钥,发送者使用接收者的公钥加密文件和关键词,检索时,接收者用私钥生成陷门,服务器根据陷门进行检索并返回密文。

3.3 一对多模型和多对多模型
即一个或多个发送者和多个数据接收者,这种场景下可以使用对称加密或非对称加密。可以通过共享非对称加密的密钥,将多对一拓展到多对多。对称加密也可以通过混合加密或与其它加密方式结合来实现一对多或多对多。

4,可搜索加密的典型构造方式

4.1 SWP方案
SWP是一种基于对称加密的方案,我在这里只总结这种方案的思想,将文件分成一个一个的单词,对每个单词用对称密码加密,为每个单词生成一个随机数S,以这个随机数和单词密文的一部分作为伪随机函数的参数,得到结果和随机数S连接,即S||F(K,S),其中K是和单词密文相关的,然后将密文和S||F(K,S)进行异或,得到的结果上传服务器。查询时构造陷门,陷门就是关键词密文和K,将关键词密文和服务器中存储的密文异或,会得到S||T,计算F(K,S)是否等于T,如果是,则匹配成功,即认为搜索的关键词和当前单词是一致的。

4.2 Z-IDX方案
Z-IDX也是一种基于对称加密的方案,使用布隆过滤器作为索引,SWP是没有索引的。布隆过滤器由二进制向量和哈希函数族组成,构造索引的过程是将关键词分别用R个子密钥进行哈希运算,再将得到的R个数分别和文件ID进行哈希运算,将结果映射到布隆过滤器中,将对应位置置为1,所有关键词都加入后,将这个二进制向量和加密的文件一起上传到服务器。当要检索时,将关键词用R个子密钥进行哈希运算得到的结果作为陷门发送给服务器,服务器依次用每个文件ID进行第二次哈希运算,并检查布隆过滤器中对应位置是否全为1,如果是,则匹配成功。

——————————————

参考文献:李经纬, 贾春福, 刘哲理,等. 可搜索加密技术研究综述[J]. 软件学报, 2015, 26(1):109-128.

你可能感兴趣的:(可搜索加密概述(1))