一种加密数据全文检索方法与流程

文档序号:20511614发布日期:2020-04-24 18:36阅读:279来源:国知局
一种加密数据全文检索方法与流程

本发明涉及加密存储技术领域,特别是指一种加密数据全文检索方法。



背景技术:

倒排索引是目前数据检索的主要方式之一,倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件。

随着云存储技术的发展,越来越多的企业或个人选择将数据上传到云端,降低用户对本地数据的维护负担。但数据脱离用户控制也引发了一系列安全问题,将数据加密后上传成为目前公认为有效的隐私保护手段。但加密后的数据无法采用n-gram或者词素解析法构造倒排索引,加密数据的全文检索成为一大难题。



技术实现要素:

有鉴于此,本发明的目的在于提出一种加密数据全文检索方法,用以解决加密数据全文检索问题。

基于上述目的,本发明提供了一种加密数据全文检索方法,包括:

获取存储文件;

对所述存储文件构建倒排索引获取索引文件;

对所述索引文件和所述存储文件加密获得加密索引文件和加密存储文件;所述加密索引文件包括若干第一加密词元;

将所述加密索引文件及所述加密存储文件发送至云端;

获取检索数据;

对所述检索数据分词获得第二词元;

对所述第二词元加密获得第二加密词元;

从云端获取所述加密索引文件,检索确定所述加密索引文件中是否存在与所述第二加密词元匹配的所述第一加密词元,若是,从云端获取加密存储文件,对所述加密存储文件解密并输出。

在其它一些实施方式中,所述索引文件包括索引列表;

所述方法还包括:采用golomb方式压缩所述索引列表。

在其它一些实施方式中,所述从云端获取所述加密索引文件,检索确定所述加密索引文件中是否存在与所述第二加密词元匹配的所述第一加密词元,若是,从云端获取加密存储文件,对所述加密存储文件解密并输出,包括:

若有若干所述加密存储文件需输出;分别计算所述第二加密词元对若干所述加密存储文件的重要程度p值;将若干所述加密存储文件按照p值从大到小排序后输出。

在其它一些实施方式中,所述若有若干所述加密存储文件需输出;分别计算所述第二加密词元对若干所述加密存储文件的重要程度p值;将若干所述加密存储文件按照p值从大到小排序后输出,包括:

获取所述第二加密词元在其中一个要输出的加密存储文件对应的所述加密索引文件中出现总次数并记为fw(p);

所述第二加密词元在对应的所述加密索引文件中出现的频率记为tfw(p);

所述tfw(p)与所述fw(p)成正相关;

获取所有所述加密索引文件总数量并记为n;

获取若干需输出的所述加密存储文件总数量并记为nw(p);

若干需输出的所述加密存储文件总数量占所述加密索引文件总数量的比记为idfw(p);

所述第二加密词元对对应的其中一个所述加密索引文件的重要程度p的计算方式:

p=tfw(p)*idfw(p);

将若干所述加密存储文件按照重要程度p的值从高到底排序。

在其它一些实施方式中,所述tfw(p)与所述fw(p)成正相关包括:

获取其中一个所述加密索引文件总的词元数量并记为w(p);

所述第二加密词元在对应其中一个所述加密索引文件中出现的频率

在其它一些实施方式中,所述tfw(p)与所述fw(p)成正相关包括:

tfw(p)=fw(p)。

在其它一些实施方式中,所述tfw(p)与所述fw(p)成正相关包括:

fw(p)=t,

在其它一些实施方式中,所述若有若干所述加密存储文件需输出;分别计算所述第二加密词元对若干所述加密存储文件的重要程度p值;将若干所述加密存储文件按照p值从大到小排序包括:

若有k个所述第二加密词元;

包括任何一个所述第二加密词元的所述加密索引文件均为候选文档,k个所述第二加密词元对所述存储文件重要程度p的计算公式如下:

其中,pi为第i个所述第二加密词元对所述存储文件的重要程度值;

将若干所述加密存储文件按照重要程度p的值从高到底排序。

在其它一些实施方式中,所述若有若干所述加密存储文件需输出;分别计算所述第二加密词元对若干所述加密存储文件的重要程度p值;将若干所述加密存储文件按照p值从大到小排序包括:

若有k个所述第二加密词元;

包括全部所述第二加密词元的所述加密索引文件均为候选文档,k个所述第二加密词元对所述存储文件重要程度p的计算公式如下:

其中,pi为第i个所述第二加密词元对所述存储文件的重要程度值;

将若干所述加密存储文件按照得分函数p的值从高到底排序。

基于同一发明构思,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上任意一项实施例所述的方法。

本发明先对存储文件构建倒排索引获取索引文件,再对存储文件和索引文件加密获得加密索引文件和加密存储文件,加密索引文件包括第一加密词元,通过先对存储文件构建倒排索引在加密的方式解决加密存储文件无法构建倒排索引问题。通过对检索数据分词获得第二词元,对第二词元加密获得第二加密词元,检索确定所述加密索引文件中是否存在与所述第二加密词元相匹配的所述第一加密词元等步骤,以此完成对加密数据全文检索一大难题。

附图说明

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

图1为本发明一种加密数据全文检索方法提供的构造加密倒排索引流程示意图;

图2为本发明一种加密数据全文检索方法提供的加密数据全文检索流程示意图。

具体实施方式

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

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

有鉴于此,本发明第一个实施例提供一种加密数据全文检索方法,应用于终端,终端用于接收存储文件,并由存储文件获取加密索引文件和加密存储文件,并将加密索引文件和加密存储文件发送至云端。接收检索数据,并根据检索数据完成加密数据全文检索方法。

参考图1和图2,具体包括:

步骤s1:获取存储文件。

在本实施例中,存储文件可以包括任何用户要记载的信息,例如信息可以是特征的文字、符号、数字等抽象化的信息载体。本步骤可以通过便携移动设备,例如智能手机、平板电脑、笔记本电脑等,也可以是各种固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等获取存储文件。

步骤s2:对所述存储文件构建倒排索引获取索引文件。

倒排索引在实际中根据属性的值来查找记录,索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(invertedindex)。带有倒排索引的文件称为倒排索引文件,简称倒排文件(invertedfile)。

在本实施例中采用n-gram算法对获取到的存储文件进行分词,分词长度取决于系统参数设定,若分词长度为二个字符则为b-gram,若分词长度为三,则为t-gram,很显然这并不是对存储文件分词的唯一方式。

对分词后的存储文件构建倒排索引,获取索引文件,索引文件包括词典和和倒排列表。本实施例的倒排索引采用动态构建方式,对于新出现的文件可以快速反映到倒排索引中,并且可以在索引构建的同时提供检索服务。

步骤s3:对所述索引文件和所述存储文件加密获得加密索引文件和加密存储文件;所述加密索引文件包括若干第一加密词元。

将存储文件分词获得第一词元,将第一次元加密获得加密第一词元。在本实施例中采用md5信息摘要算法对存储文件和索引文件加密,md5信息摘要算法可以将任意长度的输入串经过计算得到固定长度的输出,而且只有在明文相同的情况下,才能等到相同的密文,并且这个算法是不可逆的,即便得到了加密以后的密文,也不可能通过解密算法反算出明文。通过这种方式将存储文件和索引文件加密,获得加密索引文件和存储文件,加密索引文件至少包括若干第一加密词元。很显然,这并不是索引文件和存储文件加密的唯一方式。

步骤s4:将所述加密索引文件及所述加密存储文件发送至云端。

将加密索引文件及加密存储文件发送至云端存储,可以降低本地加密索引文件及加密存储文件维护负担。

在本发明中采用mysql作为加密索引文件和存储文件的存储介质,虽然在构建倒排索引时mysql增加了一定的时间开销,但是检索效率得到了显著提升并且可扩展性增加,可通过索引分片应用于大规模数据集。mysql横向可扩展性提供强大的存储能力,开源分布式文件系统可提供海量数据存储能力,很显然mysql并不是唯一的选择。

步骤s5:获取检索数据。

本发明可以通过便携移动设备,例如智能手机、平板电脑、笔记本电脑等,也可以是各种固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等获取检索数据。检索数据可以是文字、符号、数字等。

步骤s6:对所述检索数据分词获得第二词元。

采用n-gram算法对获取到的检索到的数据进行分词,分词长度和存储文件分词长度一样,若分词长度为二个字符则为b-gram,若分词长度为三,则为t-gram,对检索数据分词获得第二词元,很显然这并不是对检索数据分词的唯一方式,对检索数据分词获得第二词元。

步骤s7:对所述第二词元加密获得第二加密词元。

在本实施例中,采用md5信息摘要算法对第二词元加密获得第二加密词元。

步骤s8:从云端获取所述加密索引文件,将加密索引文件从云端下载至内存中。检索确定所述加密索引文件中是否存在与所述第二加密词元匹配的所述第一加密词元,也即是否存在与第二加密词元一样的第一加密词元,若存在,则证明第一加密词元对应的存储文件是用户要检索的存储文件,从云端获取加密存储文件,对所述加密存储文件解密并输出。否则证明没有跟第二加密词元相匹配的存储文件,也即存储文件中没有满足用户检索的存储文件,没有检索结果输出。

在本实施例中,先对存储文件构建倒排索引获取索引文件,再对存储文件和索引文件加密获得加密索引文件和加密存储文件,加密索引文件包括第一加密词元,通过先对存储文件构建倒排索引在加密的方式解决加密存储文件无法构建倒排索引问题。通过对检索数据分词获得第二词元,对第二词元加密获得第二加密词元,检索确定所述加密索引文件中是否存在与所述第二加密词元相匹配的所述第一加密词元等步骤,以此完成对加密数据全文检索一大难题。

在本发明第二个实施例中,步骤s2中包括一个子步骤s201,子步骤s201包括:

所述索引文件包括索引列表;所述方法还包括:采用golomb方式压缩所述索引列表。

由于索引列表主要包含存储文件编号,第一加密词元在文档中出现的下标列表,第一加密词元在文档中出现的总次数等信息,因此处理索引列表过程中通常需要处理大量数值较小的整数。但是在一般程序中对于整数都会为其分配定长的4或8字节,这是相当浪费空间和处理时间的。

而加密数据全文检索的过程中,大部分时间浪费在从云端读取加密索引文件上,本发明为减少从云端读取加密索引文件的时间,实现高效检索,带给用户较佳的体验,对加密索引文件采取了高效的压缩算法。本方案采用了golomb可变长度编码对倒排列表中整数信息进行压缩,达到了较高的压缩率,使得检索性能大大提升,这对于高性能场景下的全文检索是十分有利的。实验测得对于10核20线程主机一台可以实现每秒并发量2000并且检索时间小于500ms。通过对比分析加密索引文件压缩和未压缩情况下检索时间发现加密索引文件未压缩情况下时间开销明显高于压缩情况下时间。

在本发明第三个实施例中,步骤s8包括三个子步骤,分别是步骤s801,步骤s802,步骤s803。步骤s801用于解决多个满足条件的加密存储文件排序问题;步骤s802用于解决多个或者关系检索词检在全文检索的方法,及满足条件的多个加密存储文件排序问题;步骤s803用于解决多个并列关系检索词在全文检索的方法,及满足条件的多个加密存储文件排序问题;具体方式如下:

步骤s801:若有若干个加密存储文件满足检索需求,分别计算所述第二加密词元对若干所述加密存储文件的重要程度p值;将若干所述加密存储文件按照p值从大到小排序后输出。

重要程度p值是衡量第二加密词元在满足条件的加密存储文件中的重要程度,第二加密词元在加密存储文件中出现次数越高,证明第二加密词元对加密存储文件越重要。第二加密词元在越多的加密存储文件中出现,则证明第二加密词元对加密存储文件的重要程度越低。

将加密存储文件按照重要程度p值排序后输出,方便用户快速筛选到满意的相关加密存储文件。

步骤s802:

所述若有若干所述加密存储文件需输出;分别计算所述第二加密词元对若干所述加密存储文件的重要程度p值;将若干所述加密存储文件按照p值从大到小排序包括:

若有k个所述第二加密词元;

包括任何一个所述第二加密词元的所述加密索引文件均为候选文档,k个所述第二加密词元对所述存储文件重要程度p的计算公式如下:

其中,pi为第i个所述第二加密词元对所述存储文件的重要程度值;

当用户输入k个所述第二加密词元,且k个所述第二加密词元为or的关系或为或者的关系时,则存储文件中包括任何一个第二加密词元的存储文件均为候选文档。

分别计算k个第二加密词元对存储文件的重要程度pi值,若存储文件不包括第i个第二加密词元,则重要程度pi值为0。k个重要程度pi值加和得到k个所述第二加密词元对所述存储文件的重要程度p值。

将若干所述加密存储文件按照重要程度p的值从高到底排序。

步骤s803:

所述若有若干所述加密存储文件需输出;分别计算所述第二加密词元对若干所述加密存储文件的重要程度p值;将若干所述加密存储文件按照p值从大到小排序包括:

若有k个所述第二加密词元;

包括全部所述第二加密词元的所述加密索引文件均为候选文档,k个所述第二加密词元对所述存储文件重要程度p的计算公式如下:

其中,pi为第i个所述第二加密词元对所述存储文件的重要程度值;

当用户输入k个所述第二加密词元,且k个所述第二加密词元为且的关系或为and的关系时,则存储文件中包括全部k个第二加密词元的存储文件均为候选文档。

分别计算k个第二加密词元对存储文件的重要程度pi值。k个重要程度pi值加和得到k个所述第二加密词元对所述存储文件的重要程度p值。

将若干所述加密存储文件按照得分函数p的值从高到底排序。

其中,前述实施例中,步骤s801中包含以下步骤s8011,步骤s8011中提供一种重要程度p值计算方式,具体如下:

获取所述第二加密词元在其中一个要输出的加密存储文件对应的所述加密索引文件中出现总次数并记为fw(p);

所述第二加密词元在对应的所述加密索引文件中出现的频率记为tfw(p);

所述tfw(p)与所述fw(p)成正相关;

获取所有所述加密索引文件总数量并记为n;

获取若干需输出的所述加密存储文件总数量并记为nw(p);

若干需输出的所述加密存储文件总数量占所述加密索引文件总数量的比记为idfw(p);

所述第二加密词元对对应的其中一个所述加密索引文件的重要程度p的计算方式:

p=tfw(p)*idfw(p);

将若干所述加密存储文件按照重要程度p的值从高到底排序。

在前述实施例的基础上,步骤s8011分别包括三个子步骤,分别是步骤s80111,步骤s80112和步骤s80113,三个子步骤分别用于计算第二加密词元在对应的加密索引文件中出现的频率tfw(p),具体如下:

步骤s80111:

在其它一些实施例中,所述tfw(p)与所述fw(p)成正相关包括:获取其中一个所述加密索引文件总的词元数量并记为w(p);

所述第二加密词元在对应其中一个所述加密索引文件中出现的频率

步骤s80112:

所述tfw(p)与所述fw(p)成正相关包括:

tfw(p)=fw(p)。

步骤s80113:

所述tfw(p)与所述fw(p)成正相关包括:

fw(p)=t,

基于同一发明构思,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上任一实施例所述的方法。所述加密存储文件按照得分函数p的值从高到底排序。

上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

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

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

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

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

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