指纹库生成方法及装置、待测文本指纹匹配方法及装置的制作方法

文档序号:6401269阅读:189来源:国知局
专利名称:指纹库生成方法及装置、待测文本指纹匹配方法及装置的制作方法
技术领域
本发明涉及信息技术领域,特别是涉及一种指纹库生成方法及装置、待测文本指纹匹配方法及装置。
背景技术
商业公司通过信息系统获得生产力提升、成本降低等便利的同时,也面临着不断增加的信息安全风险。信息系统在面对病毒、木马及网络攻击等各种安全威胁的同时,来自系统内部的数据泄漏逐渐成为更加需要重视的问题。数据泄漏让商业公司面临知识产权、财产、安全、隐私及法规遵从性等多方面的威胁。在此背景下,DLP(Data Loss Prevention,数据防泄漏)作为一个独立的安全技术领域,在防止组织内部数据流失方面发挥了越来越重要的作用。DLP的目的是防止组织内部的机密信息被非法存储、传输和使用。要保护机密数据,首先需要能够识别数据,因此对数据的内容感知技术成为DLP的关键技术。根据数据类型的不同,内容感知技术可以分为如下几类:基于描述信息的内容感知、基于信息摘要的内容感知、结构化数据内容感知以及基于机器学习的内容感知。其中,在基于信息摘要的内容感知技术中,信息摘要是对给定的数据采用一定算法抽取出一些特征串,尽可能涵盖数据语义层面的信息。在鉴别数据是否包含机密信息时,只需要比对待测数据和机密数据各自的特征串,就能够判定待测数据是否包含机密信息。在DLP技术领域,针对文本数据抽取的特征串,称为文本指纹。以下结合图1和图2分别对现有技术中的基于信息摘要的内容感知方法作出简要介绍。首先参见图1,图1是现有的基于信息摘要的内容感知技术的第一种数据转换示意图。如图1所示,给定一由机密文本产生的机密文本块序列,其包括机密文本块A、B、C、D、E、F、G、H,机密文本块序列是文本预处理阶段输入的指纹候选信息序列,可能是机密文本的字符、字词、短语、句子、段落等,也可能是结构化的机密文本信息等。现有技术随机选择机密文本块序列中一定量的机密文本块作为机密文本指纹,如图1所示,随机选中机密文本块D、E、F作为机密文本指纹中的机密指纹单元。值得注意的是,该方法选中的机密文本指纹是不确定的,可能会导致指纹训练阶段和检测阶段对同一机密文本块序列取到的机密文本块不一致,导致无法检测到与机密文本匹配的待测文本,从而造成数据泄漏。为了解决选择机密文本指纹不确定的问题,现有技术又提供了另一种数据转换方法,其示意图如图2所示,给定一由机密文本产生的机密文本块序列,其包括机密文本块A、B、C、D、E、F、G、H,现有技术的第二种方法是对机密文本块计算哈希值,并对哈希值求模运算,运算结果满足一定条件的机密文本块入选。举例而言,在机密文本块满足以下条件时:Hash (机密文本块)%100〈30,选择满足该条件的机密文本块A、F、G作为机密文本指纹中的机密指纹单元,其中Hash (机密文本块)是指对机密文本块进行哈希运算,从而获取哈希值,若该哈希值除以100所得余数小于30,就选中该哈希值对应的机密文本块,从而生成机密文本指纹。在检测时,对待测文本产生的待测文本序列进行同样的处理,通过比较根据由机密文本产生的包括机密文本块A、F、G的机密文本指纹与根据由待测文本产生的待测文本指纹的相似性,而确定待测文本是否包含机密信息。第二种方法避免了不确定性问题,只要是同一机密文本序列,就能够得到相同的机密文本块,具备一定的可行性。但该方法的主要问题是入选机密文本指纹的机密文本块位置随意性较大,从而无法均匀地覆盖整个机密文本块序列,从而导致在这种情况下根据机密文本指纹对待测文本进行检测时的准确性较低,造成总体检测效果不稳定。

发明内容
有鉴于此,本发明实施例提供了一种指纹库生成方法及装置,以改善现有技术中机密文本指纹中的机密文本块不能均匀地覆盖整个机密文本块序列的状况。相应地,本发明实施例还提供了待测文本指纹匹配方法及装置,以解决现有技术对待测文本进行检测时,检测准确性较低的问题。一方面提供一种指纹库生成方法,包括:获取多个机密文本;分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库;其中,分别根据每一机密文本产生对应的机密文本指纹包括:分别根据每一机密文本获取包括多个机密文本块的第一序列;使用具有预设数据长度的滑动窗口,以第一序列中的第一个机密文本块为起点向第一序列中的最后一个机密文本块滑动,直至滑动窗口滑过整个第一序列;在每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,从而产生包括多个机密指纹单元的机密文本指纹。在第一方面的第一种可能的实现方式中,在生成指纹库之后,该方法进一步包括:将指纹库中的所有机密指纹单元作为总训练集输入布隆算法进行训练,以产生一级布隆过滤器,一级布隆过滤器用于判断待测指纹单元是否属于指纹库;分别将指纹库中每个机密文本指纹包括的多个机密指纹单元作为子训练集输入布隆算法进行训练,以产生分别与指纹库中每个机密文本指纹所对应的多个二级布隆过滤器,二级布隆过滤器用于判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在产生一级布隆过滤器以及多个二级布隆过滤器之后,该方法进一步包括:将指纹库、一级布隆过滤器以及多个二级布隆过滤器发送至待测文本指纹匹配装置。在第一方面的第三种可能的实现方式中,在生成指纹库之后,该方法进一步包括:分别将指纹库中的每一机密指纹单元作为键值,将对应的机密文本块序列中包含所有机密文本的文本编号加入文本编号列表,并将文本编号列表作为与键值对应的索引项,以生成包括键值以及索引项的倒排索引表。结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在生成包括键值以及索引项的倒排索引表之后,该方法进一步包括:将指纹库以及倒排索引表发送至待测文本指纹匹配装置。第二方面提供一种待测文本指纹匹配方法,包括:获取指纹库,指纹库包括多个机密文本指纹;获取待测文本;根据待测文本获取包括多个待测文本块的第二序列;使用具有预设数据长度的滑动窗口,以第二序列中的第一个待测文本块为起点向第二序列中的最后一个待测文本块滑动,直至滑动窗口滑过整个第二序列;在每次滑动前,从滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,从而产生包括多个待测指纹单元的待测文本指纹。将待测文本指纹与机密文本指纹进行比较以获取匹配结果。在第二方面的第一种可能的实现方式中,获取指纹库的步骤还包括:获取一级布隆过滤器以及多个二级布隆过滤器,一级布隆过滤器用于判断待测指纹单元是否属于指纹库;二级布隆过滤器用于判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹;将待测文本指纹与机密文本指纹进行比较以获取匹配结果的步骤包括:利用一级布隆过滤器分别对多个待测指纹单元进行过滤,以判断待测指纹单元是否属于指纹库,如果是,进一步利用多个二级布隆过滤器分别对待测指纹单元进行过滤,以判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹,如果是,则记录待测指纹单元与机密指纹单元匹配;若满足以下条件,判定待测文本指纹与机密文本指纹相匹配:匹配数量/待测指纹单元的总数量>预定阈值,其中,匹配数量为与所述指纹库中的所述机密指纹单元匹配的所述待测指纹单元的数量。在第二方面的第二种可能的实现方式中,获取指纹库的步骤还包括:获取倒排索引表,倒排索引表分别将指纹库中的每一机密指纹单元作为键值,将每一机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将文本编号列表作为与键值对应的索引项;将待测文本指纹与机密文本指纹进行比较以获取匹配结果的步骤包括:在倒排索引表中分别检索与待测文本指纹中的每一待测指纹单元匹配的键值,在检索到匹配的键值时,记录待测指纹单元与键值对应的机密指纹单元匹配;若满足以下条件,判定待测文本指纹与机密文本指纹相匹配:匹配数量/待测指纹单元的总数量>预定阈值,其中,匹配数量为与所述指纹库中的所述机密指纹单元之间匹配的所述待测指纹单元的数量。第三方面提供一种指纹库生成装置,包括:文本获取模块,用于获取多个机密文本;指纹库生成模块,用于分别根据文本获取模块所获取的每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库;指纹库生成模块包括:第一序列获取单元,用于分别根据述文本获取模块所获取的每一机密文本获取包括多个机密文本块的第一序列;第一序列处理单元,用于使用具有预设数据长度的滑动窗口,以第一序列中的第一个机密文本块为起点向第一序列中的最后一个机密文本块滑动,直至滑动窗口滑过整个第一序列;在每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,从而产生包括多个机密指纹单元的机密文本指纹。在第三方面的第一种可能的实现方式中,该装置进一步包括:一级布隆过滤器生成模块,用于将指纹库中的所有机密指纹单元作为总训练集输入布隆算法进行训练,以产生一级布隆过滤器,一级布隆过滤器用于判断待测指纹单元是否属于指纹库;二级布隆过滤器生成模块,用于分别将指纹库中每个机密文本指纹所对应的多个机密指纹单元作为子训练集输入布隆算法进行训练,以产生分别与指纹库中每个机密文本指纹所对应的多个二级布隆过滤器,二级布隆过滤器用于判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹。结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,该装置进一步包括:发送模块,用于将指纹库、一级布隆过滤器和多个二级布隆过滤器发送至待测文本指纹匹配装置。在第三方面的第三种可能的实现方式中,该装置进一步包括:倒排索引表生成模块,用于分别将指纹库中的每一机密指纹单元作为键值,将每一机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将文本编号列表作为与键值对应的索引项,以生成包括键值以及索引项的倒排索引表。结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,该装置进一步包括:发送模块,用于发送指纹库以及倒排索引表至待测文本指纹匹配装置。第四方面提供一种待测文本指纹匹配装置,该装置包括:接收模块,用于获取指纹库,指纹库包括多个机密文本指纹;待测文本获取模块,用于获取待测文本;第二序列获取模块,用于根据待测文本获取模块所获取的待测文本获取包括多个待测文本块的第二序列;第二序列处理模块,用于使用具有预设数据长度的滑动窗口,以第二序列中的第一个待测文本块为起点向第二序列中的最后一个待测文本块滑动,直至滑动窗口滑过整个第二序列;在每次滑动前,从滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,从而产生包括多个待测指纹单元的待测文本指纹;匹配结果获取模块,用于将第二序列获取模块产生的待测文本指纹与接收模块获取的机密文本指纹进行比较以获取匹配结果。在第四方面的第一种可能的实现方式中,接收模块进一步用于获取一级布隆过滤器以及多个二级布隆过滤器,一级布隆过滤器用于判断待测指纹单元是否属于指纹库;二级布隆过滤器用于判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹;匹配结果获取模块包括:一级布隆过滤器,用于分别对多个待测指纹单元进行过滤,以判断待测指纹单元是否属于指纹库;多个二级布隆过滤器,用于在一级布隆过滤器判断到待测指纹单元属于指纹库时,分别对待测指纹单元进行过滤,以判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹,如果是,则记录待测指纹单元与机密指纹单元匹配;若满足以下条件,判定待测文本指纹与机密文本指纹相匹配:匹配数量/待测指纹单元的总数量>预定阈值,其中,匹配数量为与所述指纹库中的所述机密指纹单元匹配的所述待测指纹单元的数量。在第四方面的第二种可能的实现方式中,接收模块进一步获取倒排索引表,倒排索引表分别将指纹库中的每一机密指纹单元作为键值,将每一机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将文本编号列表作为与键值对应的索引项;匹配结果获取模块包括查找模块以及倒排索引表,查找模块用于在倒排索引表中分别检索与待测文本指纹中的每一待测指纹单元匹配的键值,在检索到匹配的键值时,记录待测指纹单元与键值对应的机密指纹单元匹配;若满足以下条件,判定待测文本指纹与机密文本指纹相匹配:匹配数量/待测指纹单元的总数量>预定阈值,其中,匹配数量为与所述指纹库中的所述机密指纹单元匹配的所述待测指纹单元的数量。通过上述技术方案,本发明实施例在建立指纹库时,在机密文本指纹的生成过程中通过采用具有预设数据长度的滑动窗口来覆盖机密文本块,每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,因此可根据机密文本产生唯一的机密文本指纹,从而使得入选机密文本指纹的机密文本块的位置均匀地覆盖整个机密文本块序列。基于按照上述方式生成的指纹库对待测文本进行检测时,根据待测文本生成待测文本指纹时,也采用具有预设数据长度的滑动窗口来覆盖待测文本块,每次滑动前,从滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,因此可根据待测文本产生唯一的待测文本指纹,与指纹库中的机密文本进行比对。由于此时入选待测文本指纹的待测文本块的位置均匀地覆盖整个待测文本块序列,降低了因为入选待测文本指纹的待测文本块的位置过于集中而带来的漏检几率,能够保证在后续根据机密文本指纹对待测文本进行检测时的准确性稳定在较高水平上。


图1是现有技术中的基于信息摘要的内容感知技术的第一种方法的数据转换示意图;图2是现有技术中的基于信息摘要的内容感知技术的第二种方法的数据转换示意3是本发明的指纹库生成方法第一实施例的流程图;图4是本发明的指纹库生成方法第一实施例中“分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库”的具体流程图;图5是本发明的指纹库生成方法第一实施例的数据转换示意图;图6是本发明的指纹库生成方法第二实施例中“分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库”的具体流程图;图7是本发明的指纹库生成方法第三实施例中将所有机密指纹单元作为总训练集输入布隆算法以产生一级布隆过滤器的流程图;图8是本发明的指纹库生成方法第三实施例中将所有机密指纹单元作为总训练集输入布隆算法以产生一级布隆过滤器的数据转换示意图;图9是本发明的指纹库生成方法第三实施例中将指纹库中每个机密文本指纹所对应的多个机密指纹单元作为子训练集输入布隆算法进行训练以产生分别与指纹库中每个机密文本指纹所对应的多个二级布隆过滤器的流程图;图10是本发明的指纹库生成方法第三实施例中将每一机密文本指纹所对应的机密指纹单元作为子训练集输入至布隆算法以产生多个二级布隆过滤器的数据转换示意图;图11是本发明的指纹库生成方法第四实施例中根据指纹库生成倒排索引表的流程图;图12是本发明的指纹库生成方法第四实施例中生成倒排索引表的数据转换示意图;图13是本发明的指纹库生成装置第一实施例的装置结构示意图;图14是本发明的指纹库生成装置第二实施例的装置结构示意图;图15是本发明的待测文本指纹匹配方法第一实施例的流程图;图16是本发明的待测文本指纹匹配方法第一实施例的数据转换示意图;图17是本发明的待测文本指纹匹配方法第二实施例的流程图18是本发明的待测文本指纹匹配方法第三实施例的流程图;图19是本发明的待测文本指纹匹配方法第四实施例的流程图;图20是本发明的待测文本指纹匹配装置第一实施例的装置结构示意图;图21是本发明的待测文本指纹匹配装置第一实施例中的匹配结果获取模块的结构示意图;图22是本发明的待测文本指纹匹配装置第二实施例中的匹配结果获取模块的结构示意图;图23是本发明的待测文本指纹匹配系统第一实施例的结构示意图;图24是本发明的待测文本指纹匹配系统第二实施例的结构示意图;图25是本发明的待测文本指纹匹配系统第三实施例的结构示意图;图26是本发明的指纹库生成装置第三实施例的装置结构示意图;以及图27是本发明的待测文本指纹匹配装置第三实施例的装置结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。发明人在实现本发明的过程中,对现有技术进行深入分析,发现现有技术存在检测率不佳的原因是:参照附图2,在生成机密文本指纹时,分别对机密文本块A、B、C、D、E、F、G、H进行哈希值求模运算,并在所得结果符合一定条件时选中机密文本块,由于以上操作是针对整个机密文本块序列中的每一个机密文本块进行的,而机密文本块序列中的每个机密文本块的哈希值的大小是没有规律的,因此存在入选的机密文本块的位置不固定的问题,如图2所示,所选中的机密文本块A与F相隔较远,而机密文本块F与G相隔较近,因此入选的机密文本块位置随意性较大,从而无法均匀地覆盖整个机密文本块序列。如果待测文本和机密文本绝大部分内容相同,只是缺少其中的部分内容,而缺少的内容恰好是本应入选待测文本指纹的待测文本块所在的位置,则采用这种方案会造成即使待测文本和机密文本实际上相似性很高,由于待测文本指纹与机密文本指纹相差很大而造成漏检。对于入选机密文本指纹的机密文本块能够较为均匀覆盖整个机密文本块序列的这类机密文本而言,检测准确性较高;而对于入选机密文本指纹的机密文本块非常集中,不能均匀覆盖整个机密文本块序列的这类机密文本而言,检测准确性较低,从而出现检测效果不稳定的现象。首先请参见图3,图3是本发明的指纹库生成方法第一实施例的流程图,如图3所示,本发明的指纹库生成方法包括以下步骤:步骤101:获取多个机密文本。步骤102:分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库。以下请一并参见图4及图5,图4是本发明的指纹库生成方法第一实施例中“分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库”的具体流程图。如图4所示,该步骤具体为:步骤1021:分别根据每一机密文本获取包括多个机密文本块的第一序列。其中,分别根据每一机密文本获取包括多个机密文本块的第一序列的步骤具体可通过现有技术中的文本预处理技术实现,文本预处理技术通常包括分词、去掉没有明显语义的字词或者直接将机密文本块当作字节流等方法,文本预处理技术对最终产生的机密文本指纹的质量有重要的影响。但在本发明实施例中,具体的文本预处理技术不在本发明讨论范围之内,因此不作赘述。步骤1022:使用具有预设数据长度的滑动窗口,以第一序列中的第一个机密文本块为起点向第一序列中的最后一个机密文本块滑动,直至滑动窗口滑过整个第一序列;在每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元。在经过多次滑动之后,可产生包括多个机密指纹单元的机密文本指纹。其中,预设数据长度举例而言可为512个字节,而其实际值可根据实际需要进行选取。可选地,每次滑动窗口滑动前,滑动窗口的左边沿向最后一个机密文本块的方向滑动预定数量个机密文本块,其中左边沿每次滑动偏移的机密文本块的数量可以根据实际情况灵活设置。值得注意的是,在步骤1022可根据收集到的机密文本块分别对应的哈希值,从中选取最小的哈希值作为机密指纹单元,或根据收集到的机密文本块分别对应的哈希值,从中选取最大的哈希值作为机密指纹单元。两种方案均可生成机密指纹单元。而随着信息量的急剧增加,需要保护的机密数据规模也越来越大。指纹技术也必须能够使用大规模机密文档保护的需要。而从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元的实现方式,相比较图1及图2所示的现有技术中所介绍的:将入选的机密文本块作为机密文本指纹中的机密指纹单元的方式,更可有效减小数据大小,从而控制指纹库的规模。以下请参见图5,图5是本发明的指纹库生成方法第一实施例的数据转换示意图,如图5所示,该第一序列包括机密文本块1、2、3、4、5 (为描述清楚,本实施例中的第一序列仅包括5个机密文本块,但在实际应用中机密文本块的数量根据实际情况而定,本发明对其数量不作具体限定)。使用具有预设数据长度(这里以预设数据长度是3为例进行描述)的滑动窗口 10以第一个机密文本块I为起点向最后一个机密文本块5滑动,从滑动窗口 10所覆盖的各机密文本块分别对应的哈希值中,选取最小值作为机密指纹单元。在第一次滑动前,滑动窗口 10覆盖机密文本块1、2、3,将机密文本块1、2、3所对应的哈希值中选取最小值作为机密指纹单元,以H(I)、H⑵、H(3)、H(4)、H(5)分别表示机密文本块1、2、3、4、5的哈希值,若H⑴、H⑵、H⑶中H(2)为最小值,此时选取H(2)作为机
密指纹单元。在第二次滑动前,滑动窗口 10覆盖机密文本块2、3、4,将机密文本块2、3、4所对应的哈希值中选取最小值作为机密指纹单元,若H(2)、H(3)、H(4)中H(4)为最小值,此时选取H(4)作为机密指纹单元。在第三次滑动前,滑动窗口 10覆盖机密文本块3、4、5,将机密文本块3、4、5所对应的哈希值中选取最小值作为机密指纹单元,若H(3)、H(4)、H(5)中H(5)为最小值,此时选取H(5)作为机密指纹单元。由于在进行第三次滑动之后,滑动窗口 10滑过了整个第一序列,因此无需再进行第四次滑动。此时,产生一包括多个机密指纹单元H(2)、H(4)、H(5)的机密文本指纹。值得注意的是,由于每一机密文本都会对应生成一个第一序列,因此可生成多个第一序列,依次对该多个第一序列进行上述处理之后,就可生成多个对应于不同机密文本的机密文本指纹20、30、40、50,从而生成包括多个机密文本指纹20、30、40、50的指纹库10。由于文本内容的深度识别是DLP的关键技术,文本指纹是实现文本内容深度识别的重要手段。文本指纹的选择方法必须能够在给定的序列上获取较优的特征信息集合,以较少的信息量涵盖序列信息,并提供足够的相似文本识别能力。通过上述技术方案,本发明实施例通过采用具有预设数据长度滑动窗口来覆盖机密文本块,每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,因此可根据包括多个机密文本块的第一序列产生唯一的机密文本指纹,从而保证了所选择的机密文本指纹的确定性;其次,由于采用具有预设数据长度的滑动窗口以第一序列中的第一个机密文本块为起点向第一序列中的最后一个机密文本块滑动,直至滑动窗口滑过整个第一序列,因此可确保入选的机密文本块的位置均匀地覆盖整个第一序列,从而保证根据上述方法生成的机密文本指纹对待测文本进行检测时的检测准确性稳定在高水平上。另外,经过上述处理之后,可最大限度的消除冗余信息,控制指纹库的规模,降低了后续进行待测文本指纹匹配时的存储及运算开销。并且,本发明利用用于覆盖预设数据长度的机密文本块的滑动窗口,可确保在预设数据长度的机密文本块范围内至少选入一个机密指纹单元,因此在本发明中,更对泄漏的机密文本数量具备了量化检测能力,可根据需要量化控制泄露文本的检测能力,即能够检测出不低于给定大小的机密文本泄漏。以下请参见图6,图6是本发明的指纹库生成方法第二实施例中“分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库”的具体流程图,其中本发明的指纹库生成方法第二实施例更加结合实际的应用场景对本发明思想作出详细揭示,如图6所示,该步骤具体为:步骤300:初始化,计算第一序列中各机密文本块的哈希值。步骤301:用滑动窗口遍历第一序列,其中,滑动窗口的大小可预先设置为第一个机密文本块的数据长度,即:将滑动窗口左沿固定在首个机密文本块的初始位置,将滑动窗口右沿固定在首个机密文本块的末端位置。步骤302:判断滑动窗口的右沿是否到达最后一个机密文本块,若是,执行步骤303,若否,执行步骤305。步骤303:选择滑动窗口中哈希值最小的机密文本块的哈希值作为机密指纹单
J Li ο步骤304:流程结束。步骤305:判断滑动窗口覆盖的机密文本块的数据长度是否大于预设数据长度,若是,执行步骤307,若否,执行步骤306。
步骤306:将滑动窗口右沿右移一个机密文本块的单位。步骤307:将滑动窗口右沿左移一个机密文本块的单位。步骤308:选择滑动窗口中哈希值最小的机密文本块的哈希值作为机密指纹单
J Li ο步骤309:将滑动窗口左沿和右沿均右移一个机密文本块的单位。可选地,也可以在步骤308中择滑动窗口中哈希值最大的机密文本块的哈希值作为机密指纹单元。因此,在本实施例中,根据需要选取机密文本块所对应的哈希值中的最小值作为机密指纹单元的实现方式更可有效减小数据大小,从而控制了指纹库的规模。另外,在给定代表文本主要信息的第一序列的基础上,采用变长的滑动窗口选择机密文本块,滑动窗口左沿以一个序列元素(即一个机密文本块)为步距向前滑动,窗口右沿的位置取决于滑动窗口的可覆盖机密文本块的预设数据长度,预设数据长度是可根据需要设置的,将每次落入滑动窗口的机密文本块看作一个集合,将其中哈希值最小的机密文本块的哈希值作为机密指纹单元选入机密文本指纹,直至遍历完整个第一序列。利用这种方法,可根据需要设置的预设数据长度控制了最小可检测的泄露文本长度,从而获得了量化的泄露文本检测能力,还能够使选入的机密指纹单元的数据量最少,从而实现了指纹库规模的最小化,降低了后续存储指纹库以及进行相关匹配运算时的存储及运算开销。可选地,在本发明的备选实施方式中,更可以第一个机密文本块作为滑动窗口的左沿的起点,取沿左往右方向且与左沿相距预设数据长度的一端作为滑动窗口的右沿的起点,以第一序列中的第一个机密文本块为起点向第一序列中的最后一个机密文本块滑动,每次左沿向右移动一个机密文本块直至滑动窗口滑过整个第一序列。并且,在左沿与右沿之间所覆盖的机密文本块的哈希值中,选取最小值或最大值作为机密指纹单元。值得注意的是,在上述的备选实施方式中,假设预设数据长度为512字节,如果在某次滑动前,512字节所覆盖的机密文本块个数不是整数个,则可在512字节的基础上加上一个增量」,以使得512字节+」可以覆盖整数个机密文本块。以下请参见图7,图7是本发明的指纹库生成方法第三实施例中将所有机密指纹单元作为总训练集输入布隆算法以产生一级布隆过滤器的流程图,在本发明的指纹库生成方法第三实施例中,对上述第一、第二实施例中生成的指纹库进行处理,以生成一级布隆过滤器。如图7所示,本发明实施例的指纹库生成方法通过以下步骤生成一级布隆过滤器:步骤400:遍历指纹库,依次获取指纹库中每一个机密指纹单元。步骤401:将所有机密指纹单元作为总训练集输入布隆算法进行训练。步骤402:输出一级布隆过滤器。步骤404:流程结束。在本实施例中,将指纹库中的所有机密指纹单元作为总训练集输入布隆算法进行训练,以产生一级布隆过滤器,该一级布隆过滤器用于判断待测指纹单元(于下文会详细介绍)是否属于指纹库。为了更清楚地揭示本实施例,以下进一步结合图8进行说明,图8是本发明的指纹库生成方法第三实施例中将所有机密指纹单元作为总训练集输入布隆算法以产生一级布隆过滤器的数据转换示意图。如图8所示,指纹库10中包括多个机密文本指纹20、30、40、50,每一机密文本指纹均包括多个机密指纹单元,如机密文本指纹20包括机密指纹单元H(2)、H(4)、H(5)。在将指纹库10中的所有机密指纹单元作为总训练集输入布隆算法进行训练之后,产生一级布隆过滤器450,该一级布隆过滤器450可用于判断待测指纹单元(于下文会详细介绍)是否属于指纹库。值得注意的是,由于布隆算法为本领域常用技术,而本发明着重于将指纹库10中的所有机密指纹单元作为总训练集输入布隆算法以生成一级布隆过滤器,即发明重点在于布隆算法的输入对象,而不是布隆算法本身,因此对于布隆算法不作过多描述。以下请参见图9,图9是本发明的指纹库生成方法第三实施例中将指纹库中每个机密文本指纹所对应的多个机密指纹单元作为子训练集输入布隆算法进行训练以产生分别与指纹库中每个机密文本指纹所对应的多个二级布隆过滤器流程图,在本发明的指纹库生成方法第三实施例中,进一步对上述第一、第二实施例中生成的指纹库进行处理,以生成二级布隆过滤器。如图9所示,本发明的指纹库生成方法通过以下步骤生成二级布隆过滤器:步骤410:获取指纹库中的第一个机密文本指纹。步骤411:获取该机密文本指纹中的所有机密指纹单元。步骤412:将所有机密指纹单元作为子训练集输入布隆算法进行训练。步骤413:输出对应该机密文本指纹的二级布隆过滤器。步骤414:判断该机密文本指纹是指纹库中最后一个机密文本指纹,若是,执行步骤415,若否,执行步骤416。步骤415:流程结束。步骤416:获取该机密文本指纹的下一个机密文本指纹。并跳转至步骤411,获取该机密文本指纹中的所有机密指纹单元,重新执行上述流程,从而遍历多个机密文本指纹,在对多个机密文本指纹进行了处理之后,获得与机密文本指纹对应的多个二级布隆过滤器。在本实施例中,分别将指纹库中每个机密文本指纹所对应的多个机密指纹单元作为子训练集输入布隆算法进行训练,以产生分别与指纹库中每个机密文本指纹所对应的多个二级布隆过滤器,二级布隆过滤器用于判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹。为了更清楚地揭示本实施例,以下进一步结合图10进行说明,图10是本发明的指纹库生成方法第三实施例中将每一机密文本指纹所对应的机密指纹单元作为子训练集输入至布隆算法以产生多个二级布隆过滤器的数据转换示意图。如图8所示,指纹库10中包括多个机密文本指纹20、30、40、50,每一机密文本指纹均包括多个机密指纹单元,如机密文本指纹20包括机密指纹单元H (2)、H (4)、H (5)。将指纹库10中的每一机密文本指纹对应的机密指纹单元作为子训练集输入布隆算法进行训练,如将密文本指纹20的机密指纹单元H (2)、H (4)、H (5)作为子训练集输入布隆算法进行训练,以产生二级布隆过滤器801 ;将机密文本指纹30的机密指纹单元作为子训练集输入布隆算法进行训练,以产生二级布隆过滤器802 ;将机密文本指纹40的机密指纹单元作为子训练集输入布隆算法进行训练,以产生二级布隆过滤器803 ;将机密文本指纹50的机密指纹单元作为子训练集输入布隆算法进行训练,以产生二级布隆过滤器804。其中,二级布隆过滤器801用于判断待测指纹单元是否属于与二级布隆过滤器801对应的机密文本指纹。二级布隆过滤器802用于判断待测指纹单元是否属于与二级布隆过滤器802对应的机密文本指纹。二级布隆过滤器803用于判断待测指纹单元是否属于与二级布隆过滤器803对应的机密文本指纹。二级布隆过滤器804用于判断待测指纹单元是否属于与二级布隆过滤器804对应的机密文本指纹。同样地,由于布隆算法为本领域常用技术,而本发明着重于将每一机密文本指纹对应的机密指纹单元作为子训练集输入布隆算法一产生多个对应于机密文本指纹的二级布隆过滤器,即发明重点在于布隆算法的输入对象,而不是布隆算法本身,因此对于布隆算法不作过多描述。通过生成一级布隆过滤器和多个二级布隆过滤器进行后续的待测文本指纹匹配,可灵活控制内存开销以及匹配速度之间的平衡。以下请参见图11,图11是本发明的指纹库生成方法第四实施例中根据指纹库生成倒排索引表的流程图,在本发明的指纹库生成方法第四实施例中,在生成指纹库之后,进一步对上述第一、第二实施例中生成的指纹库进行处理,以生成倒排索引表。如图11所示,本发明的指纹库生成方法通过以下步骤生成倒排索引表:步骤420:建立倒排索引表,该表初始为空。步骤421:获取指纹库中的第一个机密指纹单元。步骤422:检查该机密指纹单元是否在倒排索引表中建立有键值,若是,执行步骤423,若否,执行步骤427。步骤423:将该机密指纹单元对应的机密文本的文本编号加入该索键值对应的文本编号列表,并将文本编号列表作为与键值对应的索引项。步骤424:判断该机密指纹单元是指纹库中最后一个机密文本指纹的最后一个机密指纹单元,若是,执行步骤425,若否,执行步骤428。步骤425:输出倒排索引表。步骤426:流程结束。步骤427:将该指纹单元作为键值加入到倒排索引表。步骤428:获取指纹库中该机密指纹单元的下一个机密指纹单元,并在完成该步骤之后,跳转至步骤422,以检测该下一机密指纹单元是否在倒排索引表中建立有键值,并重新执行上述流程,直至遍历指纹库中所有的机密指纹单元。为了更清楚地揭示本实施例,以下进一步结合图12进行说明,图12是本发明的指纹库生成方法第四实施例中生成倒排索引表的数据转换示意图。如图12所示,指纹库10中包括多个机密文本指纹20、30、40、50,每一机密文本指纹均包括多个机密指纹单元,如机密文本指纹20包括机密指纹单元H (2)、H (4)、H (5)。在本发明实施例中,分别将指纹库中的每一机密指纹单元作为键值,将每一机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将文本编号列表作为与键值对应的索引项,以生成包括键值以及索引项的倒排索引表。结合图12,倒排索引表60包括键值以及索引项。其中该键值为H(I)、H(2)、H (3)......等机密指纹单元,索引项为文本编号列表,其包括各个文本对应的文本编号,并且每一机密指纹单元均与文本编号建立有索引关系,举例而言,如图12所示,若机密指纹单元H(I)来自机密文本1、机密文本4或机密文本5,则在索引项中记录有机密文本I的文本编号(即文本编号I)、机密文本4的文本编号(即文本编号4)以及机密文本5的文本编号(即文本编号5)。通过生成倒排索引表,在后续的待测文本指纹匹配中,倒排索引表相对于采用一级布隆过滤器以及二级布隆过滤器的方法而言,可实现最快的匹配速度。值得注意的是,在本发明的指纹库生成方法的备选实施例中,可进一步包括一发送步骤,通过发送上述实施例中生成的指纹库、一级布隆过滤器和多个二级布隆过滤器或倒排索引表至用于待测文本指纹匹配的第三方服务器,该第三方服务器在获取指纹库、一级布隆过滤器和多个二级布隆过滤器或倒排索引表后,可根据上述数据进行待测文本的匹配,举例而言该第三方服务器可为下文所揭示的待测文本指纹匹配装置。以下请参见图13,图13是本发明的指纹库生成装置第一实施例的装置结构示意图。如图13所示,本发明的指纹库生成装置包括:文本获取模块201,用于获取多个机密文本。指纹库生成模块210,用于分别根据文本获取模块201所获取的每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库。其中,指纹库生成模块210包括第一序列获取单元211以及第一序列处理单元212。第一序列获取单元211用于分别根据每一机密文本获取包括多个机密文本块的第一序列。第一序列处理单元212用于使用滑动窗口以第一序列中的第一个机密文本块为起点向第一序列中的最后一个机密文本块滑动,使用滑动窗口对滑过的机密文本块进行收集;在使用滑动窗口收集到的机密文本块达到预设数据长度时:将滑动窗口收集到的机密文本块所对应的哈希值中的值最小者或值最大值作为机密指纹单元;重新设置起点,直至滑动窗口滑过整个第一序列,从而产生一包括多个机密指纹单元的机密文本指纹。可选地,在本发明的指纹库生成装置第一实施例中,指纹库生成装置可进一步包括一级布隆过滤器生成模块222以及二级布隆过滤器生成模块221。其中,一级布隆过滤器生成模块222用于将指纹库中的所有机密指纹单元作为总训练集输入布隆算法进行训练,以产生一级布隆过滤器,一级布隆过滤器222用于判断待测指纹单元是否属于指纹库;二级布隆过滤器生成模块221用于分别将指纹库中每个机密文本指纹所对应的多个机密指纹单元作为子训练集输入布隆算法进行训练,以产生分别与指纹库中每个机密文本指纹所对应的多个二级布隆过滤器,二级布隆过滤器221用于判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹。一级布隆过滤器222产生一级布隆过滤器的具体过程,或二级布隆过滤器生成模块221产生多个二级布隆过滤器的具体过程请参照前面方法实施例的描述,在这里不再重复。可选地,本发明实施例的指纹库生成装置进一步包括发送模块231,发送模块231用于发送指纹库、一级布隆过滤器和多个二级布隆过滤器至待测文本指纹匹配装置。以下请参见图14,图14是本发明的指纹库生成装置第二实施例的装置结构示意图。如图14所示,本发明的指纹库生成装置包括:文本获取模块201,用于获取多个机密文本。指纹库生成模块210,用于分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库。
其中,指纹库生成模块210包括第一序列获取单元211以及第一序列处理单元212。第一序列获取单元211用于分别根据每一机密文本获取包括多个机密文本块的第一序列。第一序列处理单元212用于使用具有预设数据长度的滑动窗口,以第一序列中的第一个机密文本块为起点向所述第一序列中的最后一个机密文本块滑动,直至所述滑动窗口滑过整个所述第一序列;在每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,从而产生包括多个机密指纹单元的所述机密文本指纹。可选地,在本发明的指纹库生成装置第二实施例中,指纹库生成装置可进一步包括倒排索引表生成模块230。其中,倒排索引表生成模块230用于分别将指纹库中的每一机密指纹单元作为键值,将每一机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将文本编号列表作为与键值对应的索引项,以生成包括键值以及索引项的倒排索引表。可选地,本发明的指纹库生成装置进一步包括发送模块231,发送模块231用于发送指纹库以及倒排索引表至待测文本指纹匹配装置。以下请参见图15,图15是本发明的待测文本指纹匹配方法第一实施例的流程图。值得注意的是。如图15所示,本发明的待测文本指纹匹配方法包括以下步骤:步骤600:获取指纹库,该指纹库包括多个机密文本指纹,可选地该指纹库为上述实施例中所揭示的指纹库,即由上述实施例所揭示的方法生成的指纹库或与上述实施例所揭示的方法生成的指纹库数据格式一致的其他指纹库。步骤601:获取待测文本。步骤602:根据待测文本获取包括多个待测文本块的第二序列。其中,根据待测文本获取包括多个待测文本块的第二序列的步骤具体可通过现有技术中的文本预处理技术实现,文本预处理技术通常包括分词、去掉没有明显语义的字词或者直接将机密文本块当作字节流等方法,文本预处理技术对最终产生的待测文本指纹的质量有重要的影响。但,在本发明实施例中,具体的文本预处理技术不在本发明讨论之内,因此不作赘述。步骤603:使用具有预设数据长度的滑动窗口,以第二序列中的第一个待测文本块为起点向第二序列中的最后一个待测文本块滑动,直至滑动窗口滑过整个第二序列;在每次滑动前,从滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,从而产生包括多个机密指纹单元的待测文本指纹步骤604:将待测文本指纹与机密文本指纹进行比较以获取匹配结果。本发明实施例通过采用具有预设数据长度滑动窗口来覆盖待测文本块,每次滑动前,从滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,因此可根据包括多个待测文本块的第一序列产生唯一的待测文本指纹,从而保证了所选择的待测文本指纹的确定性;其次,由于采用具有预设数据长度的滑动窗口以第二序列中的第一个待测文本块为起点向第二序列中的最后一个待测文本块滑动,直至滑动窗口滑过整个第二序列,因此可确保入选的待测文本块的位置均匀地覆盖整个第二序列,从而保证机密文本块的检测率稳定在高水平上。并且,本发明利用用于覆盖预设数据长度的待测文本块的滑动窗口,可确保在预设数据长度的机密文本块范围内至少选入一个机密指纹单元,因此在本发明中,更对泄漏的机密文本数量具备了量化检测能力,可根据需要量化控制泄露文本的检测能力,即能够检测出不低于给定大小的机密文本泄漏。值得注意的是,步骤603中所述的预设数据长度应与以上所介绍的指纹库生成方法中的预设数据长度一致。并且,若以上所介绍的指纹库生成方法中将使用滑动窗口收集到的机密文本块所对应的哈希值中的最小值作为机密指纹单元,则在步骤603中,将使用滑动窗口收集到的待测文本块所对应的哈希值中的最小值作为待测指纹单元。同理,以上所介绍的指纹库生成方法中将使用滑动窗口收集到的机密文本块所对应的哈希值中的最大值作为机密指纹单元,则在步骤603中,将使用滑动窗口收集到的待测文本块所对应的哈希值中的最大值作为待测指纹单元。其中,将使用滑动窗口收集到的机密文本块所对应的哈希值中的最小值作为机密指纹单元更可以将机密指纹单元的大小控制在最小值,从而降低指纹库的数据量。以下请参见图16,图16是本发明的待测文本指纹匹配方法第一实施例的数据转换示意图,如图16所示,第二序列包括待测文本块1’、2’、3’、4’、5’。使用具有预设数据长度(这里以预设数据长度是3为例进行描述)滑动窗口 10以第一个待测文本块I’为起点向 最后一个待测文本块5’滑动,从滑动窗口 10所覆盖的各待测文本块分别对应的哈希值中,选取最小值作为待测指纹单元。其中,在第一次滑动前,使用滑动窗口 10覆盖待测文本块1’、2’、3’,将待测文本块1’、2’、3’所对应的哈希值中选取最小值作为待测指纹单元,以Η(Γ )、Η(2’)、Η(3’)、Η(4’)、Η(5’ )分别表示待测文本块1’、2’、3’、4’、5’的哈希值,若H(l’)、H(2’)、Η(3’ )中H(2’ )为最小值,此时取H(2’ )作为待测指纹单元。在第二次滑动前,滑动窗口 IO覆盖待测文本块2 ’、3 ’、4 ’,将待测文本块2 ’、3 ’、4 ’所对应的哈希值中选取最小值作为待测指纹单元,若H(2’)、H(3’)、H(4’ )中H(4’ )为最小值,此时选取H(4’ )作为待测指纹单元。在第三次滑动前,滑动窗口 10覆盖待测文本块3 ’、4 ’、5 ’,将待测文本块3 ’、4 ’、5 ’所对应的哈希值中选取最小值作为待测指纹单元,若H(3’)、H(4’)、H(5’ )中H(5’ )为最小值,此时选取H(5’ )作为待测指纹单元。由于在进行第三次滑动之后,滑动窗口 10滑过了整个第二序列,因此无需再进行第四次滑动。此时,产生一包括多个机密指纹单元H(2’)、H(4’)、H(5’ )的待测文本指纹。因此,本发明采用设置为用于覆盖预设数据长度的待测文本块的变长滑动窗口来选择机密文本块,每次将窗口内哈希值最小或最大的元素选入待测文本指纹,这种方法带来以下有益的效果:首先确保每次对相同的待测文本产生相同的待测文本指纹,保证了待测文本指纹选择的确定性;其次最大限度的消除了冗余信息,控制了待测文本指纹规模,降低了待测文本指纹匹配时的存储及运算开销;再次,选入待测文本指纹的待测文本元素均匀地覆盖了整个第二序列,确保机密信息检测率稳定在高水平上。并且,本发明利用用于覆盖预设数据长度的待测文本块的变长滑动窗口,动态地改变滑动窗口的长度,可确保在具有预设数据长度的机密文本块范围内至少选入一个待测指纹单元,因此在本发明中,更对待测文本具备了量化检测能力,可根据需要量化控制待测文本的检测能力,即能够检测出不低于给定大小的机密文本泄漏。
以下请参见图17,图17是本发明的待测文本指纹匹配方法第二实施例的流程图,其中本发明的指纹库生成方法第二实施例更加结合实际的应用场景对本发明思想作出详细揭示,如图6所示,本发明的待测文本指纹匹配方法包括以下步骤:步骤700:初始化,计算第二序列中各待测文本块的哈希值,将滑动窗口左沿和右沿均设在首个待测文本块。步骤701:用滑动窗口遍历第二序列。其中,滑动窗口的大小可预先设置为第一个待测文本块的数据长度,即:滑动窗口的左沿和右沿均在第一个待测文本块上。步骤702:判断滑动窗口的右沿是否到达最后一个待测文本块,若是,执行步骤703,若否,执行步骤705。步骤703:选择滑动窗口中哈希值最小的待测文本块的哈希值作为待测指纹单
J Li ο步骤704:流程结束。步骤705:判断滑动窗口覆盖的待测文本块的数据长度是否大于预设数据长度,若是,执行步骤707,若否,执行步骤706。步骤706:将滑动窗口右沿右移一个待测文本块的单位。步骤707:将滑动窗口右沿左移一个待测文本块的单位。步骤708:选择滑动窗口中哈希值最小的待测文本块的哈希值作为待测指纹单
J Li ο步骤709:将滑动窗口左沿和右沿均右移一个待测文本块的单位。可选地,也可以在步骤708中择滑动窗口中哈希值最大的待测文本块的哈希值作为待测指纹单元。因此,在本实施例中,根据需要选取待测文本块所对应的哈希值中的最小值作为待测指纹单元的实现方式更可有效减小数据大小。另外,在给定代表文本主要信息的第二序列的基础上,采用滑动窗口选择待测文本块,滑动窗口左沿以一个序列元素(即一个待测文本块)为步距向前滑动,窗口右沿的位置取决于滑动窗口的可覆盖待测文本块的预设数据长度,预设数据长度与生成指纹库时所采用的预设数据长度一致,将每次落入滑动窗口的待测文本块看作一个集合,将其中哈希值最小的待测文本块的哈希值作为机密指纹单元选入待测文本指纹,直至遍历完整个第二序列。利用这种方法,可根据需要设置的预设数据长度控制了最小可检测的待测文本长度,从而获得了量化的待测文本检测能力,还能够使选入的待测指纹单元的数据量最小。可选地,在本发明的备选实施方式中,更可以第一个待测文本块作为滑动窗口的左沿的起点,取沿左往右方向且与左沿相距预设数据长度的一端作为滑动窗口的右沿的起点,以第二序列中的第一个待测文本块为起点向第二序列中的最后一个待测文本块滑动,直至滑动窗口滑过整个第二序列。并且,在左沿与右沿之间所覆盖的待测文本块的哈希值中,选取最小值或最大值作为待测指纹单元。值得注意的是,在上述的备选实施方式中,假设预设数据长度为512字节,如果在某次滑动前,512字节所覆盖的待测文本块个数不是整数个,则可在512字节的基础上加上一个增量Z,以使得512字节+ Z可以覆盖整数个待测文本块。以下请参见图18,图18是本发明的待测文本指纹匹配方法第三实施例的流程图,如图18所示,本发明的待测文本指纹匹配方法包括以下步骤:步骤501:从待测文本指纹获取第一个待测指纹单元。步骤502:采用一级布隆过滤器对该待测指纹单元进行过滤以判断该待测指纹单元是否属于指纹库,若是,执行步骤503,若否,执行步骤510。步骤503:依次用每一二级布隆过滤器组该待测指纹单元进行过滤。步骤504:判断该待测指纹单元是否属于某一二级过滤器对应的机密文本指纹,若是,执行步骤505,若否,执行步骤510。步骤505:遍历该机密文本指纹中的每一机密指纹单元,并将每一机密指纹单元与该待测指纹单元进行比对。步骤506:判断是否有机密指纹单元与该待测指纹单元匹配,若是,执行步骤507,若否,执行步骤510。步骤507:记录匹配信息。步骤508:判断该待测指纹单元是否是待测文本指纹中的最后一个待测指纹单元,若是,执行步骤509,若否,执行步骤510。步骤509:流程结束。步骤510:获取该待测指纹单元的下一个待测指纹单元。值得注意的是,在步骤500之前,进一步包括获取一级布隆过滤器和多个二级布隆过滤器的步骤。在本实施例中,获取一级布隆过滤器和多个二级布隆过滤器,利用一级布隆过滤器分别对一个待测文本指纹中的多个待测指纹单元进行过滤,以判断待测指纹单元是否属于指纹库,如果是,进一步利用多个二级布隆过滤器分别对待测指纹单元进行过滤,以判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹,如果是,则记录待测指纹单元与机密指纹单元匹配。当在一个待测文本指纹中,若满足以下条件时:匹配数量/待测指纹单元的总数量>预定阈值,可判断该待测文本指纹与机密文本指纹相匹配。其中,匹配数量为纪录到的与指纹库中的机密指纹单元匹配的待测指纹单元数量,预定阈值举例而言可为90%。在待测文本指纹与一个机密文本的机密文本指纹相匹配时,待测文本与该机密文本相一致,即该待测文本为指纹库中记录的机密信息。换句话说,使用二级布隆过滤器对待测文本指纹进行匹配的目的在于确认待测文本与哪一个二级布隆过滤器对应的机密文本相似。在本实施例中,通过生成一级布隆过滤器和多个二级布隆过滤器待测文本指纹匹配,可灵活控制内存开销以及匹配速度之间的平衡。以下请参见图19,图19是本发明的待测文本指纹匹配方法第四实施例的流程图,如图19所示,本发明的待测文本指纹匹配方法包括以下步骤:步骤510:获取待测文本指纹中的第一个机密指纹单元。步骤511:检索倒排索引表中与该机密指纹单元匹配的键值。步骤512:判断在倒排索引表中是否发现匹配的键值,若是,执行步骤513,若否,执行步骤516。
步骤513:根据该键值获取对应文档编号,以记录匹配信息。具体而言,可记录待测指纹单元与键值对应的机密指纹单元匹配,并根据键值获取对应的索引项中的文档编号。步骤514:判断该待测指纹单元是否是待测文本指纹中的最后一个待测指纹单元,若是,执行步骤515,若否,执行步骤516。步骤515:流程结束。步骤516:获取该待测指纹单元的下一个待测指纹单元,并跳转至步骤511,检索倒排索引表中与待测指纹单元的下一个待测指纹单元匹配的键值,并继续执行上述流程,从而完成待测文本指纹中每一待测指纹单元的遍历。值得注意的是,在步骤510之前,进一步包括获取倒排索引表的步骤。在本实施例中,在获取倒排索引表之后,在倒排索引表中分别检索与待测文本指纹中的每一待测指纹单元匹配的键值,在检索到匹配的键值时,记录待测指纹单元与键值对应的机密指纹单元匹配,并根据键值获取对应的索引项中的文档编号。在本实施例中,通过生成一级布隆过滤器和多个二级布隆过滤器待测文本指纹匹配,可灵活控制内存开销以及匹配速度之间的平衡。并且,若满足以下条件,判定待测文本指纹与机密文本指纹相匹配:匹配数量/待测指纹单元的总数量>预定阈值,其中,匹配数量为与指纹库中的机密指纹单元匹配的待测指纹单元数量以下请参见图20,图20是本发明的待测文本指纹匹配装置第一实施例的装置结构示意图。如图21所示,本发明的指纹库生成装置包括待测文本获取模块701、第二序列获取模块702、第二序列处理模块703、匹配结果获取模块704以及接收模块705。接收模块705获取指纹库,该指纹库包括多个机密文本指纹,优选地该指纹库为上述指纹库生成方法及装置实施例中所揭示的指纹库,或与上述实施例所揭示的方法生成的指纹库数据格式一致的其他指纹库;待测文本获取模块701用于获取待测文本;第二序列获取模块702用于根据待测文本获取模块701所获取的待测文本获取包括多个待测文本块的第二序列;第二序列处理模块703用于使用具有预设数据长度的滑动窗口,以所述第二序列中的第一个待测文本块为起点向所述第二序列中的最后一个待测文本块滑动,直至所述滑动窗口滑过整个所述第二序列;在每次滑动前,从所述滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,从而产生包括多个待测指纹单元的所述待测文本指纹;匹配结果获取模块704用于将第二序列处理模块703获取的待测文本指纹与接收模块705获取的机密文本指纹进行比较以获取匹配结果。并请参见图21,图21是本发明的待测文本指纹匹配装置第一实施例中的匹配结果获取模块的结构示意图。在本发明的待测文本指纹匹配装置第一实施例中,接收模块705获取一级布隆过滤器7041以及多个二级布隆过滤器,匹配结果获取模块704具体为一级布隆过滤器7041以及包括该多个二级布隆过滤器的布隆过滤器组7042。一级布隆过滤器7041分别对多个待测指纹单元进行过滤,以判断待测指纹单元是否属于指纹库;包括多个二级布隆过滤器的布隆过滤器组7042在一级布隆过滤器7041判断到待测指纹单元属于指纹库时,利用多个二级布隆过滤器分别对待测指纹单元进行过滤,以判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹,如果是,则记录待测指纹单元与机密指纹单元匹配,并且,若满足以下条件,判定待测文本指纹与机密文本指纹相匹配:匹配数量/待测指纹单元的总数量 > 预定阈值,其中,匹配数量为与指纹库中的机密指纹单元匹配的待测指纹单元数量。并请参见图22,图22是本发明的待测文本指纹匹配装置第二实施例中的匹配结果获取模块的结构示意图。在待测文本指纹匹配装置第二实施例中,接收模块705获取倒排索引表7044,匹配结果获取模块704具体为查找模块7043以及倒排索引表7044。查找模块用于在倒排索引表中分别检索与待测文本指纹中的每一待测指纹单元匹配的键值,在检索到匹配的键值时,记录待测指纹单元与键值对应的机密指纹单元匹配,并根据键值获取对应的索引项中的文档编号。以下请参见图23,图23是本发明的待测文本指纹匹配系统第一实施例的结构示意图。如图23所示,本发明的待测文本指纹匹配系统包括指纹库生成装置以及待测文本指纹匹配装置。指纹库生成装置包括文本获取模块201、指纹库生成模块210、倒排索引表生成模块230以及发送模块231。文本获取模块201用于获取多个机密文本;指纹库生成模块210用于分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库。其中,指纹库生成模块210包括第一序列获取单元211以及第一序列处理单元212。第一序列获取单元211用于分别根据每一机密文本获取包括多个机密文本块的第一序列。第一序列处理单元212用于使用具有预设数据长度的滑动窗口,以第一序列中的第一个机密文本块为起点向第一序列中的最后一个机密文本块滑动,直至滑动窗口滑过整个第一序列;在每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,从而产生包括多个机密指纹单元的机密文本指纹。倒排索引表生成模块230用于分别将指纹库中的每一机密指纹单元作为键值,将每一机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将文本编号列表作为与键值对应的索引项,以生成包括键值以及索弓I项的倒排索弓I表。发送模块231用于发送指纹库以及倒排索引表至待测文本指纹匹配装置至待测文本指纹匹配装置。指纹库生成装置包括待测文本获取模块701、第二序列获取模块702、第二序列处理模块703、匹配结果获取模块704以及接收模块705。接收模块705用于从发送模块231获取指纹库;待测文本获取模块701用于获取待测文本;第二序列获取模块702用于根据待测文本获取包括多个待测文本块的第二序列;第二序列处理模块703用于使用具有预设数据长度的滑动窗口,以第二序列中的第一个待测文本块为起点向第二序列中的最后一个待测文本块滑动,直至滑动窗口滑过整个第二序列;在每次滑动前,从滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,从而产生包括多个待测指纹单元的待测文本指纹;匹配结果获取模块704用于将待测文本指纹与机密文本指纹进行比较以获取匹配结果。在本实施例中,接收模块705从发送模块231获取倒排索引表7044,匹配结果获取模块704具体为查找模块7043以及倒排索引表7044。查找模块用于在倒排索引表7044中分别检索与待测文本指纹中的每一待测指纹单元匹配的键值,在检索到匹配的键值时,记录待测指纹单元与键值对应的机密指纹单元匹配,并且,若满足以下条件,判定待测文本指纹与机密文本指纹相匹配:匹配数量/待测指纹单元的总数量 > 预定阈值,其中,匹配数量为与指纹库中的机密指纹单元匹配的待测指纹单元数量。因此,本发明实施例采用设置为用于覆盖预设数据长度的机密文本块的变长滑动窗口来选择机密文本块,每次将窗口内哈希值最小或最大的元素选入指纹,这种方法带来以下有益的效果:首先确保每次对相同的文本产生相同的子集,保证了指纹选择的确定性;其次最大限度的消除了冗余信息,控制了指纹规模,降低了指纹匹配时的存储及运算开销;再次,选入指纹的元素均匀地覆盖了整个文本序列,确保机密信息检测率稳定在高水平上。并且,本发明实施例利用用于覆盖预设数据长度的机密文本块的变长滑动窗口,动态地改变指纹选择滑动窗口的长度,可确保在预设数据长度的机密文本块范围内至少选入一个机密指纹单元,因此在本发明中,更对泄漏的机密文本数量具备了量化检测能力,可根据需要量化控制泄露文本的检测能力,即能够检测出不低于给定大小的机密文本泄漏。因此,本发明实施例的指纹库生成方法及装置、待测文本指纹匹配方法及装置提供了对机密文本或待测文本的深度内容感知能力,而该文本的深度内容感知能力同样也可以用于文本查重、模糊搜索等领域:例如,在论文防剽窃应用中,可以将已有的论文集合作为多个机密文本,根据该多个机密文本利用本发明所揭示的指纹库生成方法及装置建立指纹库,并将待测的新论文作为待测文本,对待测文本进行待测文本指纹提取,通过本发明所揭示的进行待测文本指纹匹配方法及装置进行匹配,能够非常精确地查找出可能的剽窃信息。另外,对于模糊搜索,可以将感兴趣的文本作为机密文本,根据机密文本利用本发明所揭示的指纹库生成方法及装置建立指纹库,通过本发明所揭示的待测文本指纹匹配方法及装置将大量文本作为待测文本进行匹配,能够精确搜索出相关度非常高的信息。以下请参见图24,图24是本发明的待测文本指纹匹配系统第二实施例的结构示意图。如图24所示,本发明的待测文本指纹匹配系统包括指纹库生成装置以及待测文本指纹匹配装置。指纹库生成装置包括文本获取模块201、指纹库生成模块210、一级布隆过滤器生成模块222、二级布隆过滤器生成模块221以及发送模块231。文本获取模块201用于获取多个机密文本;指纹库生成模块210用于分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库。其中,指纹库生成模块210包括第一序列获取单元211以及第一序列处理单元212。第一序列获取单元211用于分别根据每一机密文本获取包括多个机密文本块的第一序列。第一序列处理单元212用于使用具有预设数据长度的滑动窗口,以第一序列中的第一个机密文本块为起点向第一序列中的最后一个机密文本块滑动,直至滑动窗口滑过整个第一序列;在每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,从而产生包括多个机密指纹单元的机密文本指纹。一级布隆过滤器生成模块222用于将指纹库中的所有机密指纹单元作为总训练集输入布隆算法进行训练,以产生一级布隆过滤器,一级布隆过滤器222用于判断待测指纹单元是否属于指纹库;二级布隆过滤器生成模块221用于分别将指纹库中每个机密文本指纹所对应的多个机密指纹单元作为子训练集输入布隆算法进行训练,以产生分别与指纹库中每个机密文本指纹所对应的多个二级布隆过滤器,二级布隆过滤器221用于判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹。发送模块231用于发送指纹库、一级布隆过滤器以及多个二级布隆过滤器至待测文本指纹匹配装置。指纹库生成装置包括待测文本获取模块701、第二序列获取模块702、第二序列处理模块703、匹配结果获取模块704以及接收模块705。接收模块705用于从发送模块231获取指纹库;待测文本获取模块701用于获取待测文本;第二序列获取模块702用于根据待测文本获取包括多个待测文本块的第二序列;第二序列处理模块703用于使用具有预设数据长度的滑动窗口,以第二序列中的第一个待测文本块为起点向第二序列中的最后一个待测文本块滑动,直至滑动窗口滑过整个第二序列;在每次滑动前,从滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,从而产生包括多个待测指纹单元的待测文本指纹;匹配结果获取模块704用于将待测文本指纹与机密文本指纹进行比较以获取匹配结果。接收模块705从发送模块231获取一级布隆过滤器以及多个二级布隆过滤器,匹配结果获取模块704具体为一级布隆过滤器以及多个二级布隆过滤器。一级布隆过滤器7041分别对多个待测指纹单元进行过滤,以判断待测指纹单元是否属于指纹库;包括多个二级布隆过滤器的布隆过滤器组7042在一级布隆过滤器7041判断到待测指纹单元属于指纹库时,利用多个二级布隆过滤器分别对待测指纹单元进行过滤,以判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹,如果是,则记录待测指纹单元与机密指纹单元匹配。以下请参见图25,图25是本发明的待测文本指纹匹配系统第三实施例的结构示意图。如图25所示,本发明的待测文本指纹匹配系统包括内网用户端901、邮件服务器902、网络代理服务器908、电子邮件DLP网关903、网络DLP网关909、网络DLP监视服务器906、交换机904、DLP管理服务器907,内网中的流量经由交换机904发送至外网905。内网用户端901通过邮件服务器902发送电子邮件,或通过网络代理服务器908上网时,会产生发送到外网的数据流。电子邮件DLP网关903作为邮件链路上的节点,通过解析SMTP/ESMTP协议还原邮件正文及附件等信息,进行涉密信息过滤;网络DLP网关909通过ICAP等协议与网络代理服务器908通信,网络代理服务器908将P0ST/PUT等HTTP数据报文引流到网络DLP网关909,网络DLP网关909从报文中还原出上传文件及表单数据,进行涉密信息过滤;网络DLP监视服务器906通过端口镜像等方式从交换机904获取到流出内网的数据报文,进行协议分析,还原出承载于各类应用层协议的数据,进行涉密信息过滤。DLP管理服务器907负责创建涉密信息过滤策略,并分发到电子邮件DLP网关903、网络DLP网关909、网络DLP监视服务器906等DLP设备。本发明所揭示的指纹库生成装置或方法可在DLP管理服务器907上实现,待测文本指纹匹配装置或方法可在电子邮件DLP网关903、网络DLP网关909、网络DLP监视服务器906中的一者或任意组合中分别实现。以下请参见图26,图26是本发明的指纹库生成装置第三实施例的装置结构示意图。如图26所示,本发明的指纹库生成装置包括处理器801、存储器802、接口 803以及总线804,处理器801、存储器802以及接口 803通过总线804耦合连接,以进行数据交互通信。接口 803用于获取多个机密文本;
存储器802存储有程序,该程序用于:分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库;其中,分别根据每一机密文本产生对应的机密文本指纹的程序包括:分别根据每一机密文本获取包括多个机密文本块的第一序列;使用具有预设数据长度的滑动窗口,以所述第一序列中的第一个机密文本块为起点向所述第一序列中的最后一个机密文本块滑动,直至所述滑动窗口滑过整个所述第一序列;在每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,从而产生包括多个机密指纹单元的所述机密文本指纹。可选地,该程序进一步包括:在生成指纹库之后,将指纹库中的所有机密指纹单元作为总训练集输入布隆算法进行训练,以产生一级布隆过滤器,一级布隆过滤器用于判断待测指纹单元是否属于指纹库;分别将指纹库中每个机密文本指纹所对应的多个机密指纹单元作为子训练集输入布隆算法进行训练,以产生分别与指纹库中每个机密文本指纹所对应的多个二级布隆过滤器,二级布隆过滤器用于判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹。可选地,该程序进一步包括:在生成指纹库之后,分别将指纹库中的每一机密指纹单元作为键值,将每一机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将文本编号列表作为与键值对应的索引项,以生成包括键值以及索引项的倒排索引表。该接口 803进一步用于:在生成指纹库之后,发送指纹库发送至待测文本指纹匹配装置;在生成一级布隆过滤器和多个二级布隆过滤器之后,发送一级布隆过滤器和多个二级布隆过滤器发送至待测文本指纹匹配装置;在生成倒排索引表之后,发送倒排索引表发送至待测文本指纹匹配装置。处理器801运行上述程序。以下请参见图27,图27是本发明的待测文本指纹匹配装置第三实施例的装置结构示意图。如图27所示,本发明的待测文本指纹匹配装置包括处理器811、存储器812、接口 813以及总线814,处理器811、存储器812以及接口 813通过总线814耦合连接,以进行数据交互通信。接口 813用于获取指纹库,指纹库包括多个机密文本指纹;接口 813进一步用于获取待测文本;存储器812存储有程序,该程序包括:根据待测文本获取包括多个待测文本块的第二序列;使用具有预设数据长度的滑动窗口,以所述第二序列中的第一个待测文本块为起点向所述第二序列中的最后一个待测文本块滑动,直至所述滑动窗口滑过整个所述第二序列;在每次滑动前,从所述滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,从而产生包括多个待测指纹单元的所述待测文本指纹。可选地,接口 813进一步用于获取一级布隆过滤器以及多个二级布隆过滤器,一级布隆过滤器用于判断待测指纹单元是否属于指纹库;二级布隆过滤器用于判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹;该将待测文本指纹与机密文本指纹进行比较以获取匹配结果的程序具体包括:利用一级布隆过滤器分别对多个待测指纹单元进行过滤,以判断待测指纹单元是否属于指纹库,如果是,进一步利用多个二级布隆过滤器分别对待测指纹单元进行过滤,以判断待测指纹单元是否属于与二级布隆过滤器对应的机密文本指纹,如果是,则记录待测指纹单元与机密指纹单元匹配并且,且在满足以下条件时,判定待测文本指纹与机密文本指纹相匹配:匹配数量/待测指纹单元的总数量 > 预定阈值,其中,匹配数量为与指纹库中的机密指纹单元匹配的待测指纹单元的数量。可选地,接口 813进一步用于获取倒排索引表,倒排索引表分别将指纹库中的每一机密指纹单元作为键值,将每一机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将文本编号列表作为与键值对应的索引项;将待测文本指纹与机密文本指纹进行比较以获取匹配结果的程序具体包括:在倒排索引表中分别检索与待测文本指纹中的每一待测指纹单元匹配的键值,在检索到匹配的键值时,记录待测指纹单元与键值对应的机密指纹单元匹配并且,若满足以下条件,判定待测文本指纹与机密文本指纹相匹配:匹配数量/待测指纹单元的总数量>预定阈值,其中,匹配数量为与指纹库中的机密指纹单元匹配的待测指纹单元的数量。通过以上公开内容,本发明实施例通过采用具有预设数据长度滑动窗口来覆盖机密文本块,每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,因此可根据包括多个机密文本块的第一序列产生唯一的机密文本指纹,从而保证了所选择的机密文本指纹的确定性;其次,由于采用具有预设数据长度的滑动窗口以第一序列中的第一个机密文本块为起点向第一序列中的最后一个机密文本块滑动,直至滑动窗口滑过整个第一序列,因此可确保入选的机密文本块的位置均匀地覆盖整个第一序列,从而保证机密文本块的检测率稳定在高水平上。并且,本发明实施例通过采用具有预设数据长度滑动窗口来覆盖待测文本块,每次滑动前,从滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,因此可根据包括多个待测文本块的第一序列产生唯一的待测文本指纹,从而保证了所选择的待测文本指纹的确定性;其次,由于采用具有预设数据长度的滑动窗口以第二序列中的第一个待测文本块为起点向第二序列中的最后一个待测文本块滑动,直至滑动窗口滑过整个第二序列,因此可确保入选的待测文本块的位置均匀地覆盖整个第二序列,从而保证机密文本块的检测率稳定在高水平上。在本申请所提供的几个实施方式中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例实施方式方案的目的。另外,在本申请各个实施例实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种指纹库生成方法,其特征在于,包括: 获取多个机密文本; 分别根据每一所述机密文本产生对应的机密文本指纹,以生成包括多个所述机密文本指纹的指纹库; 其中,所述分别根据每一机密文本产生对应的机密文本指纹包括: 分别根据每一所述机密文本获取包括多个机密文本块的第一序列; 使用具有预设数据长度的滑动窗口,以所述第一序列中的第一个机密文本块为起点向所述第一序列中的最后一个机密文本块滑动,直至所述滑动窗口滑过整个所述第一序列;在每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,从而产生包括多个机密指纹单元的所述机密文本指纹。
2.根据权利要求1所述的方法,其特征在于,在生成所述指纹库之后,所述方法进一步包括: 将所述指纹库中的所有机密指纹单元作为总训练集输入布隆算法进行训练,以产生一级布隆过滤器,所述一级布隆过滤器用于判断待测指纹单元是否属于所述指纹库; 分别将所述指纹库中每个机密文本指纹包括的多个机密指纹单元作为子训练集输入所述布隆算法进行训练,以产生分别与所述指纹库中每个机密文本指纹所对应的多个二级布隆过滤器,所述二级布隆过滤器用于判断所述待测指纹单元是否属于与所述二级布隆过滤器对应的机密文本指纹。
3.根据权利要求2所述的方法,其特征在于,在产生所述一级布隆过滤器以及所述多个二级布隆过滤器之后,所述方法进一步包括: 将所述指纹库、所述一级布隆过滤器以及所述多个二级布隆过滤器发送至待测文本指纹匹配装置。
4.根据权利要求1所述的方法,其特征在于,在生成所述指纹库之后,所述方法进一步包括: 分别将所述指纹库中的每一所述机密指纹单元作为键值,将对应的机密文本块序列中包含所述机密指纹单元的所有机密文本的文本编号加入文本编号列表,并将所述文本编号列表作为与所述键值对应的索引项,以生成包括所述键值以及所述索引项的倒排索引表。
5.根据权利要求4所述的方法,其特征在于,在生成包括所述键值以及所述索引项的倒排索引表之后,所述方法进一步包括: 将所述指纹库以及所述倒排索引表发送至待测文本指纹匹配装置。
6.一种待测文本指纹匹配方法,其特征在于,包括: 获取指纹库,所述指纹库包括多个机密文本指纹; 获取待测文本; 根据所述待测文本获取包括多个待测文本块的第二序列; 使用具有预设数据长度的滑动窗口,以所述第二序列中的第一个待测文本块为起点向所述第二序列中的最后一个待测文本块滑动,直至所述滑动窗口滑过整个所述第二序列;在每次滑动前,从所述滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,从而产生包括多个待测指纹单元的待测文本指纹。
将所述待测文本指纹与所述机密文本指纹进行比较以获取匹配结果。
7.根据权利要求6所述的方法,其特征在于, 所述获取指纹库的步骤还包括: 获取一级布隆过滤器以及多个二级布隆过滤器,所述一级布隆过滤器用于判断待测指纹单元是否属于所述指纹库;所述二级布隆过滤器用于判断所述待测指纹单元是否属于与所述二级布隆过滤器对应的机密文本指纹; 所述将所述待测文本指纹与所述机密文本指纹进行比较以获取匹配结果的步骤包括: 利用所述一级布隆过滤器分别对多个所述待测指纹单元进行过滤,以判断所述待测指纹单元是否属于所述指纹库,如果是,进一步利用多个二级布隆过滤器分别对所述待测指纹单元进行过滤,以判断所述待测指纹单元是否属于与所述二级布隆过滤器对应的机密文本指纹,如果是,则记录所述待测指纹单元与所述机密指纹单元匹配; 若满足以下条件,判定所述待测文本指纹与所述机密文本指纹相匹配: 匹配数量/所述待测指纹单元的总数量>预定阈值, 其中,所述匹配数量为与所述指纹库中的所述机密指纹单元匹配的所述待测指纹单元的数量。
8.根据权利要求6所述的方法,其特征在于, 所述获取指纹库的步骤还包括: 获取倒排索引表,所述倒排索引表分别将所述指纹库中的每一所述机密指纹单元作为键值,将每一所述机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将所述文本编号列表作为与所述键值对应的索引项; 所述将所述待测文本指纹与所述机密文本指纹进行比较以获取匹配结果的步骤包括: 在所述倒排索引表中分别检索与待测文本指纹中的每一所述待测指纹单元匹配的键值,在检索到匹配的键值时,记录所述待测指纹单元与所述键值对应的机密指纹单元匹配; 若满足以下条件,判定所述待测文本指纹与所述机密文本指纹相匹配: 匹配数量/所述待测指纹单元的总数量>预定阈值, 其中,所述匹配数量为与所述指纹库中的所述机密指纹单元之间匹配的所述待测指纹单元的数量。
9.一种指纹库生成装置,其特征在于,包括: 文本获取模块,用于获取多个机密文本; 指纹库生成模块,用于分别根据所述文本获取模块所获取的每一所述机密文本产生对应的机密文本指纹,以生成包括多个所述机密文本指纹的指纹库;所述指纹库生成模块包括: 第一序列获取单元,用于分别根据述文本获取模块所获取的每一所述机密文本获取包括多个机密文本块的第一序列; 第一序列处理单元,用于使用具有预设数据长度的滑动窗口,以所述第一序列中的第一个机密文本块为起点向所述第一序列中的最后一个机密文本块滑动,直至所述滑动窗口滑过整个所述第一序列;在每次滑动前,从滑动窗口所覆盖的各机密文本块分别对应的哈希值中,选取最小值或最大值作为机密指纹单元,从而产生包括多个机密指纹单元的所述机密文本指纹。
10.根据权利要求9所述的装置,其特征在于,所述装置进一步包括: 一级布隆过滤器生成模块,用于将所述指纹库中的所有机密指纹单元作为总训练集输入布隆算法进行训练,以产生一级布隆过滤器,所述一级布隆过滤器用于判断待测指纹单元是否属于所述指纹库; 二级布隆过滤器生成模块,用于分别将所述指纹库中每个机密文本指纹所对应的多个机密指纹单元作为子训练集输入所述布隆算法进行训练,以产生分别与所述指纹库中每个机密文本指纹所对应的多个二级布隆过滤器,所述二级布隆过滤器用于判断所述待测指纹单元是否属于与所述二级布隆过滤器对应的机密文本指纹。
11.根据权利要求10所述的装置,其特征在于,所述装置进一步包括: 发送模块,用于将所述指纹库、所述一级布隆过滤器和所述多个二级布隆过滤器发送至待测文本指纹匹配装置。
12.根据权利要求9所述的装置,其特征在于,所述装置进一步包括: 倒排索引表生成模块,用于分别将所述指纹库中的每一所述机密指纹单元作为键值,将每一所述机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将所述文本编号列表作为与所述键值对应的索引项,以生成包括所述键值以及所述索引项的倒排索引表。
13.根据权利要求12所述的装置,其特征在于,所述装置进一步包括: 发送模块,用于发送所述指纹库以及所述倒排索引表至待测文本指纹匹配装置。
14.一种待测文本指纹匹配装置,其特征在于,所述装置包括: 接收模块,用于获取指纹库,所述指纹库包括多个机密文本指纹; 待测文本获取模块,用于获取待测文本; 第二序列获取模块,用于根据所述待测文本获取模块所获取的所述待测文本获取包括多个待测文本块的第二序列; 第二序列处理模块,用于使用具有预设数据长度的滑动窗口,以所述第二序列中的第一个待测文本块为起点向所述第二序列中的最后一个待测文本块滑动,直至所述滑动窗口滑过整个所述第二序列;在每次滑动前,从所述滑动窗口所覆盖的各待测文本块分别对应的哈希值中,选取最小值或最大值作为待测指纹单元,从而产生包括多个待测指纹单元的所述待测文本指纹; 匹配结果获取模块,用于将所述第二序列获取模块产生的所述待测文本指纹与接收模块获取的所述机密文本指纹进行比较以获取匹配结果。
15.根据权利要求14所述的装置,其特征在于,所述接收模块进一步用于获取一级布隆过滤器以及多个二级布隆过滤器,所述一级布隆过滤器用于判断待测指纹单元是否属于所述指纹库;所述二级布隆过滤器用于判断所述待测指纹单元是否属于与所述二级布隆过滤器对应的机密文本指纹; 所述匹配结果获取模块包括: 一级布隆过滤器,用于分别对多个所述待测指纹单元进行过滤,以判断所述待测指纹单元是否属于所述指纹库;多个二级布隆过滤器,用于在所述一级布隆过滤器判断到所述待测指纹单元属于所述指纹库时,分别对所述待测指纹单元进行过滤,以判断所述待测指纹单元是否属于与所述二级布隆过滤器对应的机密文本指纹,如果是,则记录所述待测指纹单元与所述机密指纹单元匹配; 若满足以下条件,判定所述待测文本指纹与所述机密文本指纹相匹配: 匹配数量/所述待测指纹单元的总数量>预定阈值, 其中,所述匹配数量为与所述指纹库中的所述机密指纹单元匹配的所述待测指纹单元的数量。
16.根据权利要求14所述的装置,其特征在于,所述接收模块进一步获取倒排索引表,所述倒排索引表分别将所述指纹库中的每一所述机密指纹单元作为键值,将每一所述机密指纹单元所对应的所有机密文本的文本编号加入文本编号列表,并将所述文本编号列表作为与所述键值对应的索引项; 所述匹配结果获取模块包括查找模块以及所述倒排索引表,所述查找模块用于在所述倒排索引表中分别检索与待测文本指纹中的每一所述待测指纹单元匹配的键值,在检索到匹配的键值时,记录所述待测指纹单元与所述键值对应的机密指纹单元匹配; 若满足以下条件,判定所述待测文本指纹与所述机密文本指纹相匹配: 匹配数量/所述 待测指纹单元的总数量>预定阈值, 其中,所述匹配数量为与所述指纹库中的所述机密指纹单元匹配的所述待测指纹单元的数量。
全文摘要
本发明公开了一种指纹库生成方法及装置、待测文本指纹匹配方法及装置,该指纹库生成方法包括包括获取多个机密文本;分别根据每一机密文本产生对应的机密文本指纹,以生成包括多个机密文本指纹的指纹库。通过以上公开内容,本发明所揭示的技术方案可保证所选择的机密文本指纹的确定性,并能确保入选的机密文本块的位置均匀地覆盖整个第一序列,从而保证机密/文本块的检测率稳定在高水平上。
文档编号G06K9/00GK103164698SQ20131010931
公开日2013年6月19日 申请日期2013年3月29日 优先权日2013年3月29日
发明者王晓锋 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1