一种基于文档指纹相似快速匹配方法组成比例

技术编号:31831039 阅读:18 留言:0更新日期:2022-01-12 13:07
本发明专利技术公开了数据防护安全技术领域的一种基于文档指纹相似快速匹配方法,实现定位文档相似指纹,从而为文档安全性提供技术支持;当指纹阈值较大时,利用bk树构造密点库,在密点指纹相似匹配效率上得到提升。点指纹相似匹配效率上得到提升。点指纹相似匹配效率上得到提升。

【技术实现步骤摘要】
一种基于文档指纹相似快速匹配方法


[0001]本专利技术涉及数据防护安全
,具体为一种基于文档指纹相似快速匹配方法。

技术介绍

[0002]目前涉密文档指纹要与涉密密点指纹库里的每一条密点指纹进行一次汉明距离计算,当距离小于设置的阈值,则认为这两个指纹相似即该指纹为密点指纹,但是当密点指纹库容量很大时,这种方法过于暴力,耗时很长;基于抽屉原理结合倒排索引的方法可以解决阈值较小时,指纹相似快速匹配效率的问题,但当阈值为超过10,例如15以内视为两个simhash值相似时,抽屉原理结合倒排索引的方法在指纹相似匹配效率上没有提升。
[0003]当密点指纹库的容量达到百万级,甚至千万级的时候,暴力匹配相似密点指纹要几秒,甚至更长的时间;亦或者当两个密点指纹在阈值较大时视为相似,但是在匹配效率上得不到提升。
[0004]基于此,本专利技术设计了一种基于文档指纹相似快速匹配方法,以解决上述问题。

技术实现思路

[0005]本专利技术的目的在于提供一种基于文档指纹相似快速匹配方法,以解决上述
技术介绍
中提出的问题。
[0006]为实现上述目的,本专利技术提供如下技术方案:一种基于文档指纹相似快速匹配方法,其特征在于:该方法的具体步骤如下:
[0007]S1:构建涉密信息库:涉密文档经过simhash算法生成相应的simhash值即文档密点指纹串,将生产的密点指纹串存储到数据库中;
[0008]S2:根据业务场景,判断两个指纹是否相似并设定一个阈值;两个汉明距离在4以内的视为相似的情形,用抽屉原理结合倒排索引的方式将构建文档指纹库存储到内存;
[0009]S3:若2个simhash值的汉明距离在4以内,则它们切分成的5块中,必有1块相等;
[0010]S4:当依据某simhash检索汉明距离在4以内的其他simhash值时,将该simhash平分5块,每块即12位或13位比特串转换成相应整数,在相应的表寻找相同块,取相同块对应的simhash值即密点指纹串,将这些密点指纹串存放到候选集R中,筛选出至少在1个块对应的集合中出现simhash值,然后逐一计算汉明距离,求出最小值即为相似密点指纹;
[0011]S5:对于阈值为15以内的业务场景,将涉密信息库中的每个密点指纹串作为一个节点存储到BK树内存结构中;
[0012]S6:在建树过程中,首先随机找一个涉密信息库中的密点指纹串作为根节点,以后每插入一个密点指纹串,首先计算该密点指纹串与根的编辑距离d(编辑距离是指两个密点指纹串之间,是指两个密点指纹串中对应位置不同字符的个数);如果这个距离值d是在该BK树节点处第一次出现,建立一个新的子节点,否则沿着对应的边递归下去;BK树中的每个节点都有任意个子节点,每条边上的数值表示两个节点之间的编辑距离;
[0013]S7:设置搜索距离阈值为n,计算待判定涉密密点串与BK树中节点的编辑距离,将满足与待判定涉密密点串编辑距离不超过n的节点添加到结果候选集中;
[0014]S8:在BK树中进行搜索时,首先计算待判定涉密密点串与根节点的编辑距离d,然后递归查找每个子节点数值在[d

n,d+n]区间的所有边;如果待判定涉密密点串与被检查节点的距离d小于阈值n,则返回该节点并继续进行递归查询,直到BK树结束;
[0015]S9:采用汉明距离计算BK树中带判定文档指纹与密点指纹之间的距离,并根据不同要素及业务场景,设置一个输入次数的初始阈值;
[0016]S10:根据BK树中涉密密点指纹串的距离,以及当前待定密的文档,将当前定密文档密点指纹化后,去构造好的BK树中搜索阈值内的每个密点指纹,将其存储到候选集R中;
[0017]若当前输入在BK树结构中的候选集R有密点指纹数据则认为有相似密点指纹信息;
[0018]若当前输入BK树结构中的候选集R没有密点指纹数据返回,则汉明距离都大于预设值,则认为没有相似的密点指纹信息。
[0019]作为本专利技术的进一步方案,所述S3中所有的simhash值均创建5个表,不同的表存储不同位置块,如第一个表存储0~12位,第二个表存储13~25位,第三个表存储26~38位,第四个表存储39~51位,第五个表存储52~63位,表中同样使用倒排索引,由13或12位比特串索引simhash值。
[0020]作为本专利技术的进一步方案,通过对所述S8中阈值n进行适当设置,根据BK树结构特点,不在范围[d

n,d+n]的节点及其整个分支都不满足查找条件,即查询过程中可以遍历不超过所有节点的10%,因此效率比暴力搜索高得多。
[0021]与现有技术相比,本专利技术的有益效果是:
[0022]没有改进之前的涉密密点指纹搜索,在密点指纹数据量达到100万时,搜索的时间在2秒左右,当密点指纹数据量达到千万级的时候,搜索的时间在几十秒,用户的体验非常不理想;采用BK树的改进方法后,当密点指纹库容量在百万级的时候,一个正常的文件定密搜索的时间只需要70毫秒左右。
附图说明
[0023]图1为本专利技术运行流程图。
具体实施方式
[0024]请参阅图1,本专利技术提供一种技术方案:一种基于文档指纹相似快速匹配方法,实现定位文档相似指纹,从而为文档安全性提供技术支持;
[0025]该方法的具体如下:
[0026]S1:构建涉密信息库:涉密文档经过simhash算法生成相应的simhash值即文档密点指纹串,将生产的密点指纹串存储到数据库中;
[0027]S2:根据业务场景,判断两个指纹是否相似设定一个阈值,当两个汉明距离在4以内的视为相似的情形我们用抽屉原理结合倒排索引的方式将构建文档指纹库存储到内存;
[0028]S3:若2个simhash值的汉明距离在4以内,则它们切分成的5块中,必有1块相等;为提高检索效率,同时兼顾空间开销,为所有的simhash值创建5个表,不同的表存储不同位置
块,如第一个表存储0~12位,第二个表存储13~25位,第三个表存储26~38位,第四个表存储39~51位,第五个表存储52~63位,表中同样使用倒排索引,由13或12位比特串索引simhash值;
[0029]S4:当依据某simhash检索汉明距离在4以内的其他simhash值时,将该simhash平分5块,每块即12位或13位比特串转换成相应整数,在相应的表寻找相同块,取相同块对应的simhash值即密点指纹串,将这些密点指纹串存放到候选集R中,筛选出至少在1个块对应的集合中出现simhash值,然后逐一计算汉明距离,求出最小值即为相似密点指纹;
[0030]S5:对于阈值为15以内的业务场景,将涉密信息库中的每个密点指纹串作为一个节点存储到BK树内存结构中;
[0031]S6:在建树过程中,首先随机找一个涉密信息库中的密点指纹串作为根节点,以后每插入一个密点指纹串,首先计算该密点指纹串与根的编辑距离d,编辑距离是指两个密点指本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于文档指纹相似快速匹配方法,其特征在于:该方法的具体步骤如下:S1:构建涉密信息库:涉密文档经过simhash算法生成相应的simhash值即文档密点指纹串,将生产的密点指纹串存储到数据库中;S2:根据业务场景,判断两个指纹是否相似并设定一个阈值;两个汉明距离在4以内的视为相似的情形,用抽屉原理结合倒排索引的方式将构建文档指纹库存储到内存;S3:若2个simhash值的汉明距离在4以内,则它们切分成的5块中,必有1块相等;S4:当依据某simhash检索汉明距离在4以内的其他simhash值时,将该simhash平分5块,每块即12位或13位比特串转换成相应整数,在相应的表寻找相同块,取相同块对应的simhash值即密点指纹串,将这些密点指纹串存放到候选集R中,筛选出至少在1个块对应的集合中出现simhash值,然后逐一计算汉明距离,求出最小值即为相似密点指纹;S5:对于阈值为15以内的业务场景,将涉密信息库中的每个密点指纹串作为一个节点存储到BK树内存结构中;S6:在建树过程中,首先随机找一个涉密信息库中的密点指纹串作为根节点,以后每插入一个密点指纹串,首先计算该密点指纹串与根的编辑距离d(编辑距离是指两个密点指纹串之间,是指两个密点指纹串中对应位置不同字符的个数);如果这个距离值d是在该BK树节点处第一次出现,建立一个新的子节点,否则沿着对应的边递归下去;BK树中的每个节点都有任意个子节点,每条边上的数值表示两个节点之间的编辑距离;S7:设置搜索距离阈值为n,计算待判定涉密密点串与BK树中节点的编辑距离,将满足与待判定涉密密点串编辑距离不超过n...

【专利技术属性】
技术研发人员:崔新安苗功勋侯洪涛李言非唐孝军赵鑫高伟袁浩
申请(专利权)人:南京中孚信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1