与应用透明的密文搜索方法、网关装置、网关设备和系统与流程

文档序号:12865972阅读:329来源:国知局
与应用透明的密文搜索方法、网关装置、网关设备和系统与流程

本发明涉及数据处理技术领域,特别是指一种应用透明的密文搜索方法、网关装置、网关设备和系统。



背景技术:

为了方便用户,降低企业成本,越来越多的个人或者企业依赖各种云应用服务存储或分享大量的私有数据,典型的应用包括邮件应用、云存储应用等。然而,这些应用在给用户带来便利的同时,也存在一定的安全风险。虽然可以采取加密方式对用户数据进行保护,然而如果在用户终端对用户数据进行加密,则只能安装对应的客户端提供加密,或为每个应用服务开发特定的客户端,造成用户终端软件繁杂,操作时需要消耗较高的终端资料,加密对用户不透明,不能为不同应用服务提供差异化的加密。另一方面,对加密数据的检索是一项非常困难的任务。用户隐私数据加密上传到应用服务后,应用服务原有的搜索功能变得无法使用。随着数据存储量的增大,检索数据功能是很多应用服务的基本功能之一。现有技术中,对密文搜索的研究普遍存在功能缺失、搜索效率低下或安全性较差等问题,甚至需要改变应用程序和用户使用习惯,在实际场景中很难执行。因此,与应用透明的密文搜索技术是亟待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提出一种应用透明的密文搜索方法、网关装置、网关设备和系统,能够无缝适配各种云应用服务,不需要修改云应用程序接口及改变用户使用习惯,在提供用户隐私保护的同时,保证了密文数据搜索的功能性、效率性和安全性。

第一方面,本发明提供了一种与应用透明的密文搜索方法,包括:

接收用户端发送的应用数据上传请求;

解析所述应用数据上传请求得到用户输入内容;对所述用户输入内容加密得到密文;从所述用户输入内容中提取得到关键字序列,建立所述关键字序列中的各关键字与多个不同的索引字符串之间的映射关系;将全部所述索引字符串添加到所述密文中,并将所述密文上传至应用服务端;

接收所述用户端发送的搜索请求;

解析所述搜索请求得到用户搜索内容;从所述用户搜索内容中提取得到关键字,根据所述映射关系选取所述关键字对应的多个索引字符串中的任意一个作为检索值,并将所述检索值发送至所述应用服务端;

接收所述应用服务端返回的根据所述检索值检索到的密文;将所述密文解密并去除其附带的全部所述索引字符串得到明文结果,将所述明文结果返回至所述用户端。

在一些实施方式中,所述对所述用户输入内容加密得到密文包括:

根据预设的加密规则,获取用户输入内容对应的加密密钥组;所述加密密钥组包括用于对所述用户输入内容的一个或多个内容数据进行加密的一个或多个密钥;

根据所述加密规则,使用所述加密密钥组对所述用户输入内容中的一个或多个内容数据进行加密得到所述密文。

在一些实施方式中,所述将全部所述索引字符串添加到所述密文中包括:

将全部所述索引字符串随机排序后添加到所述密文中;和/或,

生成若干与所述映射关系无关的随机字符串,并将所述随机字符串添加到所述密文中。

在一些实施方式中,所述从所述用户搜索内容中提取得到关键字包括:

若无法提取得到关键字,则利用模糊搜索算法获取所述用户搜索内容的近似内容,并根据所述近似内容匹配得到所述关键字。

第二方面,本发明提供了一种网关装置,包括:

第一接收模块,用于接收用户端发送的应用数据上传请求;

第一执行模块,用于解析所述应用数据上传请求得到用户输入内容;对所述用户输入内容加密得到密文;从所述用户输入内容中提取得到关键字序列,建立所述关键字序列中的各关键字与多个不同的索引字符串之间的映射关系;将全部所述索引字符串添加到所述密文中,并将所述密文上传至应用服务端;

第二接收模块,用于接收所述用户端发送的搜索请求;

第二执行模块,用于解析所述搜索请求得到用户搜索内容;从所述用户搜索内容中提取得到关键字,根据所述映射关系选取所述关键字对应的多个索引字符串中的任意一个作为检索值,并将所述检索值发送至所述应用服务端;

第三执行模块,用于接收所述应用服务端返回的根据所述检索值检索到的密文;将所述密文解密并去除其附带的全部所述索引字符串得到明文结果,将所述明文结果返回至所述用户端。

在一些实施方式中,所述第一执行模块还用于:根据预设的加密规则,获取用户输入内容对应的加密密钥组;所述加密密钥组包括用于对所述用户输入内容的一个或多个内容数据进行加密的一个或多个密钥;根据所述加密规则,使用所述加密密钥组对所述用户输入内容中的一个或多个内容数据进行加密得到所述密文。

在一些实施方式中,所述第一执行模块还用于:将全部所述索引字符串随机排序后添加到所述密文中;和/或,生成若干与所述映射关系无关的随机字符串,并将所述随机字符串添加到所述密文中。

在一些实施方式中,所述第二执行模块还用于:若无法提取得到关键字,则利用模糊搜索算法获取所述用户搜索内容的近似内容,并根据所述近似内容匹配得到所述关键字。

第三方面,本发明提供了一种网关设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任意一项所述的方法。

第四方面,本发明提供了一种与应用透明的密文搜索系统,包括用户端、应用服务端;所述系统还包括:

如上述任意一项所述的网关装置;或,如上所述的网关设备。

从上面所述可以看出,本发明提供的应用透明的密文搜索方法、网关装置、网关设备和系统,无须在用户终端配置专门的加密客户端或装置,降低了用户终端的软硬件要求,无需更改应用程序,无需应用服务提供商配合,不改变用户使用习惯,实现了用户数据加密和密文搜索对用户的透明化,对各类应用服务均可提供差异性加密。在提供用户隐私保护的同时,保证了密文数据搜索的功能性、效率性和安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的与应用透明的密文搜索方法流程图;

图2为本发明实施例的网关装置结构示意图;

图3为本发明实施例的与应用透明的密文搜索系统结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

本发明实施例提供了一种与应用透明的密文搜索方法。该方法应用于用户侧的网关设备中,其可以是单一的路由装置、安全网关或网关服务器执行,也可以由多个具有数据汇聚和路由功能的组合组件。

参考图1,为本发明实施例的与应用透明的密文搜索方法流程图。

所述与应用透明的密文搜索方法,包括以下步骤:

步骤101、接收用户端发送的应用数据上传请求。

在本步骤中,用户发送的应用数据上传请求对应于某种应用服务。该应用服务可以为云存储服务/应用、邮件服务等,应用数据上传请求可以是云存储文件的上传、web邮件的发送上传等。具体的,当用户将数据请求上传到应用服务进行存储时,可通过应用服务的专用客户端或浏览器进行上传。例如,用户可以通过用户终端上的通用浏览器、邮件客户端等通用客户端进行应用数据的上传。

步骤102、解析所述应用数据上传请求得到用户输入内容;对所述用户输入内容加密得到密文;从所述用户输入内容中提取得到关键字序列,建立所述关键字序列中的各关键字与多个不同的索引字符串之间的映射关系;将全部所述索引字符串添加到所述密文中,并将所述密文上传至应用服务端。

在本步骤中,从用户输入内容中提取得到关键字序列的过程主要是通过对用户输入内容分词处理;分词处理的主要步骤包括:词汇分割、词汇过滤(去除停留词)、词干提取(形态还原)、大写转为小写、结果输出。

对用户输入内容处理得到关键字序列后,对于每一个关键字,如果已有多个索引字符串与之对应,则获取对应的多个索引字符串;若没有索引字符串与之对应,则使用索引字符串生成算法生成多个索引字符串与关键字对应,并记录到数据结构中。最终建立关键字序列中的各关键字与多个不同的索引字符串之间的映射关系。

具体的,在建立关键字序列中的各关键字与多个不同的索引字符串之间的映射关系时,可使用不同的机制实现。如使用多个不同的确定性加密函数和编码函数生成多个索引字符串;或使用某一确定性加密函数将关键字映射成固定位数的某一字符串,然后映射到某一布隆过滤器(bloomfilter)中使多个位置置1,处理完所有关键字后,使用确定性映射函数把布隆过滤器(bloomfilter)中所有置1的位置映射为不同的索引字符串。

对用户输入内容加密得到密文的过程,即使用预设的加密算法对于用户输入内容进行加密。具体的,加密算法包括加密密钥获取和数据加密,加密密钥获取用于根据预先为所述应用服务设置的加密规则,获取用于所述应用服务的一个加密密钥组,所述加密密钥组包括用于对所述用户输入内容中的一个或多个内容数据进行加密的一个或多个密钥;数据加密用于根据所述加密规则,使用所述加密密钥组对所述用户输入内容中的一个或多个内容数据进行加密。

进一步的,加密完成得到密文后,需要在所述密文后面附上各关键字对应的不同的多个索引字符串。索引字符串可添加在密文数据前面或后面。另外,为进一步提高安全性,可对各关键字的索引字符串打乱顺序,或额外添加其他无关随机字符串并附在密文前面或后面,用来对抗统计攻击。最后将密文和索引字符串一起发送给提供所述应用服务的应用服务端。

步骤103、接收所述用户端发送的搜索请求。

本步骤中,接收用户端发送的搜索请求。搜索请求的具体实现方式与步骤101中的应用数据上传请求类似,在此不再赘述。

步骤104、解析所述搜索请求得到用户搜索内容;从所述用户搜索内容中提取得到关键字,根据所述映射关系选取所述关键字对应的多个索引字符串中的任意一个作为检索值,并将所述检索值发送至所述应用服务端。

本步骤中,从用户搜索内容中提取得到关键字时,会对搜索内容进行正规化处理,正规化处理的主要步骤包括:词汇分割、词汇过滤(去除停留词)、词干提取(形态还原)、大写转为小写、结果输出。

若无法直接从用户搜索内容中提取得到关键字,则可以利用模糊搜索算法获取所述用户搜索内容的近似内容,然后使用该近似内容与前述步骤中得到的关键字进行匹配,以得到最终使用的关键字。其中,模糊搜索算法可以包括:搜索内容纠错,搜索内容改写,同义词,可找到与用户搜索内容最相关的关键字,从而找到最相关的信息。

另外,如果用户请求的应用服务支持或查询,则可支持多关键字搜索,即可同时搜索多关键字对应的多个索引字符串完成搜索功能。另外加密数据时也可附加关键字对应的多个索引字符串中的任意一个,搜索时则需要使用或查询搜索关键字对应的所有索引字符串。

步骤105、接收所述应用服务端返回的根据所述检索值检索到的密文;将所述密文解密并去除其附带的全部所述索引字符串得到明文结果,将所述明文结果返回至所述用户端。

应用服务端接收到检索值后,会基于自身的搜索机制进行搜索,检索到存储在应用服务端中的、与检索值对应的密文,然后将该检索到的密文返回。本步骤中,接收到密文后,首先进行解密。具体的,与前述加密算法对应的解密算法对密文进行解析;根据所述加密规则,使用解密密钥组对密文进行解密。然后并去除其附带的全部所述索引字符串,即得到明文结果。最后,将明文结果输出到用户终端。

由上述实施例可见,本发明实施例的与应用透明的密文搜索方法,无须在用户终端配置专门的加密客户端或装置,降低了用户终端的软硬件要求,无需更改应用程序,无需应用服务提供商配合,不改变用户使用习惯,实现了用户数据加密和密文搜索对用户的透明化,对各类应用服务均可提供差异性加密。在提供用户隐私保护的同时,保证了密文数据搜索的功能性、效率性和安全性。

另一方面,本发明实施例还提供了一种网关装置。参考图2,为本发明实施例的网关装置结构示意图。

所述网关装置,包括:

第一接收模块201,用于接收用户端发送的应用数据上传请求;

第一执行模块202,用于解析所述应用数据上传请求得到用户输入内容;对所述用户输入内容加密得到密文;从所述用户输入内容中提取得到关键字序列,建立所述关键字序列中的各关键字与多个不同的索引字符串之间的映射关系;将全部所述索引字符串添加到所述密文中,并将所述密文上传至应用服务端;

第二接收模块203,用于接收所述用户端发送的搜索请求;

第二执行模块204,用于解析所述搜索请求得到用户搜索内容;从所述用户搜索内容中提取得到关键字,根据所述映射关系选取所述关键字对应的多个索引字符串中的任意一个作为检索值,并将所述检索值发送至所述应用服务端;

第三执行模块205,用于接收所述应用服务端返回的根据所述检索值检索到的密文;将所述密文解密并去除其附带的全部所述索引字符串得到明文结果,将所述明文结果返回至所述用户端。

在一些实施例中,所述第一执行模块202还用于:根据预设的加密规则,获取用户输入内容对应的加密密钥组;所述加密密钥组包括用于对所述用户输入内容的一个或多个内容数据进行加密的一个或多个密钥;根据所述加密规则,使用所述加密密钥组对所述用户输入内容中的一个或多个内容数据进行加密得到所述密文。

在一些实施例中,所述第一执行模块202还用于:将全部所述索引字符串随机排序后添加到所述密文中;和/或,生成若干与所述映射关系无关的随机字符串,并将所述随机字符串添加到所述密文中。

在一些实施例中,所述第二执行模块204还用于:若无法提取得到关键字,则利用模糊搜索算法获取所述用户搜索内容的近似内容,并根据所述近似内容匹配得到所述关键字。

上述实施例的网关装置用于实现前述实施例中相应的与应用透明的密文搜索方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

又一方面,本发明实施例还提供了一种网关设备。

所述网关设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述方法实施例中所述的与应用透明的密文搜索方法。

上述实施例的网关设备用于实现前述实施例中相应的与应用透明的密文搜索方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

最后,本发明实施例还提供了一种与应用透明的密文搜索系统。参考图3,为本发明实施例的与应用透明的密文搜索系统结构示意图。

所述与应用透明的密文搜索系统包括:用户端301、应用服务端303,以及上述实施例中的网关装置/设备302。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。

本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1