在当今信息急速膨胀的时代,尽管计算机的处理速度发展很快,但仍然不能满足人们对大量数据进行高速处理的需求。由此,出现了云计算服务。这满足了人们对于高速处理大量数据的要求。然而,云计算还存在很多的安全隐患和实施限制。
[1]阐述了云计算在实施和发展过程中需要克服的十大困难。这里,我们致力于解决云计算中的保密问题。众所周知,用户在海量的数据中进行计算需要进行大量的搜索操作。
基于安全性考虑,用户不能泄露搜索使用的关键词及搜索结果,同时服务器也不允许用户得到除搜索信息之外的其他信息。因此我们需要一个安全的加密搜索方案以保证两方的安全性。
目前出现的加密搜索方案分为基于公共数据库和秘密数据库两种情况。基于秘密数据库的加密搜索方案,存在分别基于公钥和私钥的加密搜索方案。例如, [2]提出了基于公钥加密的搜索方案——带关键词搜索的公钥加密(PEKS), 该方案以一个邮件系统为实例,发送方在发送邮件的同时发送对应关键词的公钥加密密文PEKS 以供接收方搜索,接收方生成需搜索的关键词的陷门信息。最后运行验证算法,从而得到搜索的结果。但是该方案的安全实施必须建立在发送方诚实的建立关键词的PEKS 的基础上。如果发送方为了其非法目的,私自篡改对应邮件的关键词,则接收方无法正确的完成搜索操作。[3,4]提出了基于私钥加密的加密搜索方案。在[3]的协议中,用户将已加密的数据上传到服务器中,同时给出了对应关键词在文档中可能出现的位置。随后,用户使用搜索方案进行顺序扫描,得到所需的搜索结果。该方案的局限性在于,用户将数据上传给服务器以备以后使用,而不是服务器持有原始数据。同时,用户还泄露了一些信息给服务器,如某关键词可能出现的位置。同时,许多更贴近于实际的搜索方案也被提出了, 如[5]提出了安全且高效的排序搜索方案,该协议通过引入一个一对多保序映射实现了搜索结果的排序功能,同时加入了相关性检测机制,排序结果的验证机制等功能。[6]将连接词的搜索引入到了可搜索加密中,使用户可以进行多关键词搜索。
对于公共数据库中的安全搜索方案, [7]给出了一个经典的搜索方案——私有数据检索(PIR)。该方案中,用户在两个乃至多个均保存有数据文件的数据库中同时进行搜索操作以保证搜索的保密性。这样可以保证用户搜索过程和返回结果的安全性。然而在搜索过程中,服务器的安全性没有得到保证,通过搜索, 用户可能得到多于所需数据的额外信息。同时,该方案需多个服务器同时持有副本,这也限制了方案的实用性。[8]对PIR 进行了一系列的改进和完善,通过错误校验码的解码算法有效的提升了协议的效率和鲁棒性。
L L. Xu 等[9]引入属性的概念构造了具有访问控制功能的OT 协议,增强了OT 协议服务器方的控制能力,增强了协议的灵活度。W. Ogata 等[10]提出了根据OT 协议构造了一个可行的安全加密搜索方案——无记忆关键词搜索(OKS)。
该方案使用盲RSA 签名以及OT 协议构造了一个安全的加密搜索方案,在搜索过程中,服务器对每个文件与相关关键词的签名数据进行异或,一起发送给用户,用户对需搜索的关键词进行随机化操作,发送给服务器,服务器对接收的数据签名后返回给用户,用户进行解随机化操作,得到对应关键词的签名,随后进行匹配操作得到搜索的文件。该方案保证了用户和服务器的安全性。然而,该方案存在一定的局限性,在加密过程中,每个密文仅支持一个关键词的加密搜索。若一个文件存在多个关键词,须对该文件进行多次加密。显然,大多数文件都不仅仅存在一个关键词。该方案采用了盲RSA 签名方案,在该方案中,用户必须选择一个公钥e 大于模数n 或者保证(n, e) = 1。
本文采用盲GDH 签名作为搜索过程中的盲化方案,盲GDH 签名没有上述盲RSA 签名的安全问题, 同时在相同的安全要求下,盲GDH 签名的签名长度小于盲RSA 签名的签名长度,这将有效的提高本协议的效率。本文提出的OKS 协议将一个文件与它的多个关键词整合在一起,使用户可以搜索这个文件中的所有关键词,以验证是否为需要的文件,提高了用户的搜索能力。用户在执行搜索操作时,可能因输入错误或无法确定要搜索的确切关键词,导致所要搜索