用于数据泄露防护的方法和系统与流程

文档序号:13109615阅读:206来源:国知局
技术领域本发明数据安全技术领域,尤其是用于数据泄露防护的方法和系统。

背景技术:
近年来,随着信息技术的飞速发展,数据安全在信息化企业的日常运作过程中显得尤为重要。如果数据遭到恶意篡改或破坏,可能会给企业造成无法挽回的损失。为了提高数据安全性,往往需要设定一些数据安全策略,以对数据进行监控和保护。在当前大数据的环境下,随着企业数据量的增大,如何对不断增加的数据进行快速、有效地监控和保护,成为当前数据安全领域面对的一个重要问题。目前,许多企业为了防止数据的泄漏,在内网中部署了数据泄漏防护(Dataleakageprevention,DLP)系统,以确保敏感数据的安全。数据泄漏防护系统通过软件对敏感数据进行监控和保护,并通过一定的技术手段,防止企业的指定数据或信息资产以违反安全策略规定的形式流出企业,以保证敏感数据不被丢失和泄露。所以在DLP系统中,数据特征的提取和对敏感数据的匹配是甚为关键的一步。传统的DLP系统中通常采用人工设置关键词或者对整个文件生成数据指纹的方式来提取数据特征,前者无法自动完成特征提取,后者当文件很大时,提取的准确性会降低。另外,对于敏感数据的匹配,通常会采用规则匹配和哈希匹配算法,同样地,当面对较大文件时,算法性能和准确度都会严重下降。

技术实现要素:
为此,本发明提供了用于数据泄露防护的方法和系统,以力图解决或者至少缓解上面存在的至少一个问题。根据本发明的一个方面,提供了一种从文档中提取数据特征的方法,其中提取的数据特征包括第一数据指纹和第二数据指纹,包括步骤:从文档中提取第一预定数目个词语,计算每个词语对应的数据特征串,并基于这第一预定数目个数据特征串来构造文档的第一数据指纹;按照顺序对文档的词序列进行分块,基于每个词块中的数据内容来计算该词块的数据特征串,再组合每个词块的数据特征串来构造该文档的第二数据指纹。根据本发明的另一方面,提供了一种判断第一文档和第二文档是否相关的判断方法,包括步骤:对第一文档执行如上所述的数据特征提取方法,提取文档的数据特征得到第一特征集合;对第二文档执行如上所述的数据特征提取方法,提取文档的数据特征得到第二特征集合;以及计算第一特征集合与第二特征集合的相似度,若相似度达到预定范围,则认为该第一文档和第二文档相关。根据本发明的另一方面,提供了一种判断可疑文档是否包含敏感内容的方法,包括步骤:对受保护文档执行如上所述的数据特征提取方法,提取该文档的数据特征,建立特征库;再提取可疑文档的数据特征,执行上述判断文档是否相关的判断方法,判断可疑文档与特征库中的受保护文档是否相关:若判断可疑文档与受保护文档相关,则认为可疑文档包含敏感内容;若判断可疑文档与受保护文档不相关,则认为可疑文档不包含敏感内容。相应地,本发明还提供了从文档中提取数据特征的设备、判断第一文档和第二文档是否相关的判断设备、判断可疑文档是否包含敏感内容的设备。根据本发明的再一方面,提供了一种数据泄露防护系统,包括:计算设备,与数据安全防护设备相连;以及数据安全防护设备,包括:文档获取设备、如上所述的敏感内容判断设备、控制策略获取设备和控制设备。基于上文的描述,本方案采用自动提取文档关键词、以及提取词块的数据指纹的方式,来提取文档的数据特征。一方面,通过计算表征词语重要性的特征值来选取出文档的关键词,这样就不用依靠人工设置关键词;另一方面,将文档进行分词处理后对词序列进行分块处理,基于词块计算每个分块的数据指纹,并且采用局部敏感哈希(LSH)算法来生成数据指纹,能够有效地防止相似数据的泄露,并且当文档很大时,也能保证特征提取的准确性。在特征匹配方面,本方案采用单一匹配数据特征串的相似度(即,单一匹配)或者计算相似数据特征串比重(即,基准匹配)的方式,对文档中的相似内容进行匹配判断,可选地,可以用汉明距离或Jaccard系数表征文档间的相似度。这样,能更加全方位地进行敏感数据匹配,防止敏感数据泄露,进而有效避免各种文档外泄手段。附图说明为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。图1示出了根据本发明一个实施例的数据泄露防护系统100的示意图;图2A示出了根据本发明一个实施例的从文档中提取数据特征的方法200的流程图;图2B示出了根据本发明另一个实施例的从文档中提取数据特征的方法200的流程图;图3A示出了根据本发明一个实施例的从文档中提取数据特征的设备300的示意图;图3B示出了根据本发明另一个实施例的从文档中提取数据特征的设备300的示意图;图4示出了根据本发明一个实施例的判断第一文档和第二文档是否相关的判断方法400的流程图;图5示出了根据本发明一个实施例的判断第一文档和第二文档是否相关的判断设备500的示意图;图6示出了根据本发明一个实施例的判断可疑文档是否包含敏感内容的方法600的流程图;图7示出了根据本发明一个实施例的判断可疑文档是否包含敏感内容的设备700的示意图;以及图8示例性地示出了分块处理的示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本发明一个实施例的数据泄露防护系统100的示意图。在企业内部,计算设备110之间通过局域网相连接,这里,计算设备110的组件可以包括但不限于:一个或者多个处理器或者处理单元、系统存储器、连接不同系统组件(包括系统存储器和处理单元)的总线。同时要注意的是,除了传统的计算设备(例如,电脑),适于用来实现本发明实施例的计算设备110还包括移动电子设备,包括但不限于移动电话、PDA、平板电脑等,以及处于企业办公环境中的服务器、打印机、CD/DVD等。用于数据泄露防护的数据安全防护设备120布置在该局域网中,通过局域网与所有计算设备110相连接。如图1所示,该防护设备120包括:文档获取设备122、敏感内容判断设备700、控制策略获取设备124、和控制设备126。文档获取设备122适于实时监控处于局域网中的所有计算设备110,当监测到计算设备110发送文档时,获取计算设备110发送的文档内容。这里,文档可以是即时通信的聊天信息,和/或,即时通信传输的图片/文档。敏感内容判断设备700适于判断获取的文档是否包含敏感内容,对于该设备700会在下文进行详细介绍。控制策略获取设备124适于在判断文档是否包含敏感内容的同时,获取与该文档相关的进程对应的控制策略。可选地,控制策略可以有:当指定进程为打印时采取禁止打印的策略,当指定进程为发送文件时采取乱码字符串的策略。控制设备126适于当判断可疑文档包含敏感内容时,根据所获取的控制策略对所述文档的操作行为进行控制。例如,用标识乱码的字符串替换所述文档中需要传输的数据内容中的敏感数据。基于上文对系统100的描述,在本系统中,如何准确地匹配到敏感内容是实现数据安全防护的关键所在,也就是敏感内容判断设备700所要执行的操作。简单来说,敏感内容判断设备700中应该包含有(但不限于)存储模块(用于存储受保护文档的所有数据特征)、提取文档数据特征的设备(用于提取可疑文档中的数据特征)、文档相关性判断设备(用于根据提取的数据特征判断可疑文档与受保护文档之间是否相关)、以及确定模块(用于依据相关性判断结果确定可疑文档是否包含敏感内容)。下面将对上述各模块的组成、以及它们执行的流程进行阐述。图2A和2B示出了从文档中提取数据特征的方法200的流程图,其中图2A示出了根据本发明一个实施例的从文档中提取第一数据特征的方法的流程图。如图2A所示,该方法始于步骤S210。在步骤S210中,先对文档进行分词处理,去掉停用词、标点符号、回车换行等无用信息,以便获得词序列。根据本发明的实施例,在该方法200中,采用基于词典的分词算法进行分词处理,例如MMSEG(AWordIdentificationSystemforMandarinChineseTextBasedonTwoVariantsoftheMaximumMatchingAlgorithm),MMSEG是中文分词中一个常见的、基于词典的分词算法,具有简易直观,实现不复杂,运行速度快的优点。简单来讲,该分词算法包含“匹配算法”和“消除歧义规则”,其中匹配算法指如何根据词典里保存的词语,对要切分的语句进行匹配;“消除歧义规则”是说当一句话可以这样分,也可以那样分的时候,用什么规则来判定使用哪种分法,比如“设施和服务”这个短语,可以分成“设施/和服/务”,也可以分成“设施/和/服务”,选择哪个分词结果,就是“消除歧义规则”的功能。在MMSEG算法中,定义匹配算法有两种:简单最大匹配和复杂最大匹配;定义的消除歧义的规则有四种:最大匹配(Maximummatching,对应上述两种匹配算法)、最大平均词语长度(Largestaveragewordlength)、词语长度的最小变化率(Smallestvarianceofwordlengths)、计算词组中的所有单字词词频的自然对数,然后将得到的值相加,取总和最大的词组(Largestsumofdegreeofmorphemicfreedomofone-characterwords)。例如对于如下的文档A,经过分词处理后,得到文档B。文档A:“团体人身意外伤害保险实惠计划意外伤害:指遭受外来的、突发的、非本意的、非疾病的使身体受到伤害的客观事件。如交通事故被撞、发生火灾被烧伤、受到高空坠物打击致伤、被歹徒袭击受伤、液化气、煤气爆炸、厨师被沸腾的油烫伤等等都属意外伤害事件。推荐两种组合方案,供单位结合实际情况选用:1、意外伤害保险:保险费150元/人(1、2级职业)(1)保险期间:一年(2)保险责任:因意外伤害身故,给付10万元;或因意外伤害全残、意外烧伤,给付10万元(部分残疾按比例给付);意外伤害医疗1万元。2、意外伤害及医疗保险:保险费100元/人(1、2级职业)(1)保险期间:一年(2)保险责任:因意外伤害身故,给付5万元;或因意外伤害全残或烧伤,给付5万元(部分残疾按比例给付);意外伤害医疗1万元。注:我公司可按贵单位的具体情况设计保险方案出钱不多,保障不少;投保方便,理赔迅速。”文档B(即分词处理后得到的词序列):[团体,人身,意外,伤害,保险,实惠,计划,意外,伤害,指,遭受,外来,突发,非本意,非,疾病,身体,伤害,客观,事件,交通,事故,撞,发生,火灾,烧伤,高空,坠,物,打击,致伤,歹徒,袭击,受伤,液化气,煤气,爆炸,厨师,沸腾,油,烫伤,属意,外,伤害,事件,推荐,两种,组合,方案,文案,供,单位,结合,实际情况,选用,意外,伤害,保险,保险费,150元,级,职业,保险,期间,一年,保险,责任,意外,伤害,身故,付,10,万元,或因,意外,伤害,全,残,意外,烧伤,付,10,万元,部分,残疾,按比例,付,意外,伤害,医疗,1,万元,意外,伤害,医疗保险,保险费,100元,级,职业,保险,期间,一年,保险,责任,意外,伤害,身故,付,5,万元,或因,意外,伤害,全,残,烧伤,付,5,万元,部分,残疾,按比例,付,意外,伤害,医疗,1,万元,注,公司,可按,贵单位,具体,情况,设计,保险,方案,文案,出钱,不多,保障,不少,投保,方便,理赔,迅速]应当注意的是,本发明不受限于具体的分词方法,所有可以对文档进行分词处理以获得该文档中的有意义词语的方法都在本发明的保护范围之内。随后在步骤S220中,对该词序列中的每个词语,计算表征该词语在本文档中的重要性的特征值,并基于特征值的大小从词序列中选取第一预定数目个词语。根据本发明的一个实施例,采用TF-IDF值表征词语在文档中的重要性,计算TF-IDF值的过程如下:①计算该词语在该文档中的出现频率作为该词语的词频TF:②计算文档库中的文档总数与文档库中包含该词语的文档数目之间的比例作为该词语的逆文档频率IDF:③根据词语的词频TF和逆文档频率IDF计算TF-IDF:TF-IDF=TF×IDF对于一个词语,其TF-IDF值越大,对该文档的重要性就越大,因此根据TF-IDF值的大小,选择排在前面的第一预定数目个(例如,5个)词语作为这篇文档的关键词。传统的DLP系统中,主要是通过人工设置关键词的方式来提取关键词的特征,显然这种方法费时费力,本方案通过计算TF-IDF值自动选取文档的关键词,在节省人力的同时还保证了提取的准确度。随后在步骤S230中,对于所选择的第一预定数目个词语中的每个词语,计算该词语对应的数据特征串,并基于数据特征串来构造该文档的第一数据指纹来作为文档的数据特征。具体地,对于所选取的每个关键词,通过普通哈希算法将其散列成第一预定长度的数字串作为该词语对应的数据特征串,然后组合所获得的数据特征串以获得第一数据指纹来作为该文档的数据特征。如下示出了对于一个文档提取关键词生成第一数据指纹的示例:doc_size:2278word_num:284keyword_num:5//第一预定数目word:伤害word_hash:4229635582offset:18word:意外word_hash:424898618offset:12word:保险word_hash:802497295offset:24word:给付word_hash:3684743136offset:1594word:文案word_hash:1412961926offset:1051对于一篇2278字节,含有284个词语的文档生成5个关键词(伤害、意外、保险、给付、文案),再通过普通哈希算法将这5个关键词分别生成1个数据特征串,在本实施例中,第一预定长度的数据特征串是32位无符号整型数字,将这5个数据特征串连起来就是该文档的第一数据指纹。根据一种实现方式,第一数据指纹中还包括这5个关键词中每个词语在文档中的偏移位置信息offset,offset用于记录关键词在文档中第一次出现的位置,记录offset主要用于敏感数据(也就是关键词)的溯源,当发现敏感数据泄露后向用户发出的告警可以携带offset信息。当然,为了节省内存,第一数据指纹也可以不包含offset信息,本发明对此并不做限制。为了保证特征提取得足够精确,根据本发明的实施方式,除了提取文档的第一数据指纹,还可以提取第二数据指纹作为文档的数据特征。如图2B示出了根据本发明另一个实施方式的、从文档中提取第二数据指纹的方法的流程图,该方法的步骤如下:首先,按照步骤S210对文档进行分词。随后在分词的基础上,步骤S240中,按照顺序对文档中的词序列进行分块,以得到一个或者多个第二预定长度的词块,其中相邻词块之间相互重叠第三预定长度。换言之,将一个第二预定长度大小的滑动窗口沿词序列滑动,每次滑动第三预定长度的位移,这样,就将文档划分成了多个第二预定长度大小的词块。根据本发明的一个实施例,设置第二预定长度是64个词语,第三预定长度是32个词语。例如,对上述文档B的词序列进行分块操作,得到如下4个词块:词块1:[团体人身意外伤害保险实惠计划意外伤害指遭受外来突发非本意非疾病身体伤害客观事件交通事故撞发生火灾烧伤高空坠物打击致伤歹徒袭击受伤液化气煤气爆炸厨师沸腾油烫伤属意外伤害事件推荐两种组合方案文案供单位结合实际情况选用意外伤害保险保险费150元级职业保险期间]词块2:[袭击受伤液化气煤气爆炸厨师沸腾油烫伤属意外伤害事件推荐两种组合方案文案供单位结合实际情况选用意外伤害保险保险费150元级职业保险期间一年保险责任意外伤害身故付10万元或因意外伤害全残意外烧伤付10万元部分残疾按比例付意外伤害医疗1万元意外伤害医疗保险保险费]词块3:[一年保险责任意外伤害身故付10万元或因意外伤害全残意外烧伤付10万元部分残疾按比例付意外伤害医疗1万元意外伤害医疗保险保险费100元级职业保险期间一年保险责任意外伤害身故付5万元或因意外伤害全残烧伤付5万元部分残疾按比例付意外伤害医疗1万元]词块4:[万元部分残疾按比例付意外伤害医疗1万元意外伤害医疗保险保险费100元级职业保险期间一年保险责任意外伤害身故付5万元或因意外伤害全残烧伤付5万元部分残疾按比例付意外伤害医疗1万元注公司可按贵单位具体情况设计保险方案文案出钱不多保障不少投保方便理赔迅速]然后在步骤S250中,对于所得到的一个或者多个词块,基于每个词块中的数据内容来计算该词块的数据特征串,可选地,利用局部敏感哈希(LSH)算法对每个词块的数据内容生成一个数据签名。随后在步骤S260中,再组合每个词块的数据特征串来构造该文档的第二数据指纹以作为该文档的数据特征。传统的DLP系统在生成数据指纹时,是对整个文档生成数据指纹,这样做的后果是,当文档很大时,算法的性能会严重下降并且准确性也会降低。所以本方案对分词后的词序列分块,提取每个词块的数据特征作为整个文档的数据特征。同时,常用的哈希算法如MD5,如果2个数据签名相等,则表明原始数据在一定概率下是相等的,但是如果不相等,除了表明原始数据是不同的外,不提供任何信息,传统的哈希算法显然不能很好地防御相似数据的泄漏,因此本方法中采用的是局部敏感哈希算法,其优点在于,对于相似的数据内容能产生相同或者相似的数据签名,这样就能提升后续特征匹配的效果。其中在步骤S250中计算每个词块的数据特征串的步骤又可以细分为如下几步:先将每个第二预定长度的词块中的词语转换为字符,得到相应的字符串作为词块。再依次选择词块中第四预定长度的子词块,其中相邻子词块之间相互重叠第五预定长度。同样地,在实现中,可以用一个第四预定长度(例如,5字节)大小的滑动窗口沿着词块滑动,每次滑动第五预定长度(如1个字节)大小的位移。如图8所示,其中D1代表第四预定长度,D2代表第五预定长度,每两个相邻的D1之间就重合有一个D2。再根据子词块的内容计算第六预定长度(如32字节,即256位)的特征值列表。最后基于所有子词块的特征值列表以构造该词块的数据特征串。具体地,根据子词块的内容计算第六预定长度的特征值列表的步骤为:1)提取由子词块中的部分内容构成的一个或者多个内容子集,换句话说,提取每个子词块中的所有三元组;2)再利用哈希算法将每个三元组散列到(0,第六预定长度),在本实施例中,即将每个三元组散列到(0,256);3)根据与每个内容子集对应的值,设置特征值列表中的相应值,例如对于一个三元组igr,假设hash值为15,那么在特征值列表中的第15个位置处累加1。当将一个词块中的所有的三元组都计算完时,该特征值列表中的每个位置都会有一个累加值,计算所有累加值的平均值作为阈值,若某个位置对应处的累加值(也就是特征值列表中某个单元的值)大于该平均值,则该单元值设为1,相反就设为0,通过这样二元化的处理,得到一个第六预定长度的二值化的特征值列表,将这个第六预定长度的特征值列表转化为第六预定长度位的数字串,以作为该词块的数据特征串。若对上面的4个词块进行LSH算法生成的4个数据特征串分别为:LSH1:3f26258da0a5310d6b5203845ab0784eb29acff9814564946ce458fc086ac2a8LSH2:2f2465c480a3312f215d80ce53863000a0ad6b78a3616595ae4c56bc00e9c2baLSH3:0fa077e500a531bfa95dd08e53862020a0896b58a362659d2a484ebf00e9cbaaLSH4:0fa467ed10a5331da959d40e53802000b0897310a1616d592a4844bb02a9c7ea如下示出了对于一个文档生成第二数据指纹的示例:doc_size:2278word_num:284//词语个数sig_num:8//词块个数word_block_size:64//第二预定长度word_step_size:32//第三预定长度LSH:bf32258f90e5390da35083045a83630ab6be5fe9a10577102dc40acd286bd2a8offset:0LSH:0f2205c490d01f2fa3d000904a87630896f83fa0a147d79424e446adfc5b50aaoffset:254LSH:b92355848cfa3b6fab5744f14c92ad4892d86e89a143f4bee4a852386e09e2e8offset:554LSH:3baf75807cda31ede317c6c4745321ccd2966efd89422598ec62f3dca2f9e39aoffset:840LSH:2fafe588e0b131ade3559a46f31b30c4929e6b7c89d2671cae66f2dc02e9cacaoffset:1080LSH:2f2475cc40a731bd2155d0ce53a83000b88d7b5883d06594aa4244be04ebe2caoffset:1326LSH:0fa467cd00a433bca1d1d48f53a42021b889735481e241bd2a4844bf8ce9c78aoffset:1594LSH:07af6fbde0a5317c61d1544a02802142f29b730c93602cbe2e4ae83b83c9c7eeoffset:1797对于一篇2278字节、含有284个词语的文档,利用LSH算法分别生成8个词块的数据特征串(设置第四预定长度是5字节,第五预定长度是1字节,第六预定长度是32字节),将这8个数据特征串连起来就是该文档的第二数据指纹。同第一数据指纹中所描述的那样,第二数据指纹也可以包括词块在文档中的偏移位置信息offset。应当注意的是,在方法200执行的过程中,可以根据文档的重要程度设置第一预定数目、第二预定长度和第三预定长度,以区分特征提取的精细程度。也就是说,文档的重要程度越高,提取的关键词数目(第一预定数目)就越多,分块时每个分块的大小(第二预定长度)和位移的步进(第三预定长度)就越小。从文档中提取第一数据特征、第二数据特征的步骤至此结束,通过方法200,从文档中提取了第一数据指纹和第二数据指纹作为文档的数据特征。相应地,图3A和图3B分别示出了根据本发明实施例用于实现方法200的从文档中提取第一数据特征和第二数据特征的设备300的示意图。如图3A所示,特征提取设备300包括:分词模块310、计算模块320、选取模块330、和特征提取模块340。分词模块310适于对文档进行分词处理,以获得词序列。根据本发明的实施例,采用基于词典的分词算法(例如,MMSEG)对文档完成分词处理。计算模块320适于对词序列中的每个词语,计算表征该词语在文档中的重要性的特征值(例如,TF-IDF值)。选取模块330适于基于特征值从词序列中选取第一预定数目个词语,例如按特征值从高到低的顺序选取5个词语,再交由与之耦接的计算模块320,由其计算所选取的每个词语对应的数据特征串,可选地,计算模块320适于通过普通哈希算法将每个词语散列成第一预定长度的数字串作为该词语对应的数据特征串。特征提取模块340适于基于计算得到的数据特征串来构造文档的第一数据指纹来作为所述文档的数据特征,可选地,特征提取模块340适于组合所获得的数据特征串以获得第一数据指纹来作为该文档的数据特征。其中,分词方法以及表征词语在文档中的重要性的特征值(以TF-IDF值为例)的计算方法,在基于图2A的步骤描述中已经详细公开,此处不再赘述。根据一种实现方式,特征提取设备300还适于提取文档的第二数据指纹。如图3B所示,此时,特征提取设备300除了计算模块320和特征提取模块340外,还包括分块模块350,其中分块模块350与计算模块320相耦接、计算模块320与特征提取模块340相耦接。分块模块350适于按照顺序对文档中的词序列进行分块,以得到一个或者多个第二预定长度的词块,其中相邻词块之间相互重叠第三预定长度。同时,计算模块320还适于对所得到的一个或者多个词块,基于每个词块中的数据内容来计算该词块的数据特征串。特征提取模块340还适于组合每个词块的数据特征串来构造该文档的第二数据指纹以作为该文档的数据特征。参照上文关于计算每个词块的数据特征串的步骤描述,计算模块320还包括字符转换单元322、分块单元324和计算单元326。字符转换单元322适于将每个第二预定长度的词块中的词语转换为字符,得到相应的字符串作为词块。分块单元324适于依次选择词块中第四预定长度的子词块,其中相邻子词块之间相互重叠第五预定长度。计算单元326适于根据所述子词块的内容计算第六预定长度的特征值列表。可选地,计算单元326中可以包括提取子单元,适于提取子词块中的部分内容构成的一个或者多个内容子集。再由计算单元利用哈希算法将每个内容子集散列为在0到第六预定长度之间的一个值,根据与每个内容子集对应的值,设置第六预定长度特征值列表中的相应值。计算单元还可以包括计数子单元,适于通过将每个子词块相对应的特征值列表中相应位置的值进行叠加而进行合并,以获得对应该词块的特征值列表、以及二元化子单元,适于对该特征值列表中每个单元的值进行二元化处理,而获得每个单元值为0或者1的特征值列表。计算单元还适于将这个第六预定长度的特征值列表转化为第六预定长度的数字串,以作为该词块的数据特征串。其中,二元化子单元适于计算特征值列表中所有单元值的平均值、以及比较每个单元的值与该平均值的大小,若某个单元的值大于平均值,则该单元的值为1,若某个单元的值不大于平均值,则该单元的值为0。根据一个实施例,选取第二预定长度为64个词语,第三预定长度为32个词语,第四预定长度是5字节,第五预定长度是1字节,第六预定长度是32字节(即,256位)。同方法200中所描述的一样,可以根据文档的重要程度设置第一预定数目、第二预定长度和第三预定长度,以区分特征提取的精细程度。也就是说,文档的重要程度越高,提取的关键词数目(第一预定数目)就越多,分块时每个分块的大小(第二预定长度)和位移的步进(第三预定长度)就越小。可选地,特征提取模块340还适于提取第一预定数目个词语中每个词语在文档中的偏移位置信息,以包含在第一数据指纹中,以及提取词块在文档中的偏移位置信息,以包含在第二数据指纹中。综上,本方案采用自动提取文档关键词和/或提取词块的数据指纹的方式,来提取文档的数据特征。一方面,通过计算表征词语重要性的特征值来选取出文档的关键词,这样就不用依靠人工设置关键词;另一方面,将文档的词序列进行分块处理,计算每个词块的数据指纹,并且采用局部敏感哈希(LSH)算法来生成数据指纹,能够有效地防止相似数据的泄露,并且当文档很大时,也能保证特征提取的准确性。图4示出了根据本发明一个实施例的判断第一文档和第二文档是否相关的判断方法400的流程图。如图4所示,该方法始于步骤S410,对第一文档执行方法200的步骤,提取文档的数据特征得到第一特征集合,其中所述第一特征集合包括:第一文档的第一数据指纹和/或第二数据指纹。随后在步骤S420中,对第二文档同样执行方法200的步骤,提取文档的数据特征得到第二特征集合,其中第二特征集合包括:第二文档的第一数据指纹和/或第二数据指纹。随后在步骤S430中,计算第一特征集合与第二特征集合的相似度,若相似度达到预定范围,则认为该第一文档和第二文档相关。步骤S430中对特征进行匹配、计算文档间相似度的过程又可以分为如下3种。◆第一种是单一匹配:计算第一特征集合中每个数据指纹的数据特征串与第二特征集合中对应数据指纹的数据特征串的汉明距离。其中,汉明距离(Hammingdistance)指两个(相同长度)数据特征串对应二进制位不同的数量。以d(x,y)表示两个数据特征串x,y之间的汉明距离,对两个数据特征串进行异或运算,并统计结果为1的个数,得到的值就是汉明距离,当汉明距离大于第一阀值时,就判定这两个数据特征串相似。例如:1011101与1001001之间的汉明距离是2;“toned”与“roses”之间的汉明距离是3。对于单一匹配,计算第一文档的第二数据指纹中的数据特征串与第二文档的第二数据指纹的数据特征串的汉明距离,当第二数据指纹中的任一个数据特征串被判定为相似时,则认为第一特征集合与第二特征集合的相似度达到预定范围。也就是说,只要有任何一个词块相似,文档都有泄漏数据的嫌疑。以下是对两个文档的第二数据指纹做单一匹配并返回是否相关的伪代码,分别用signature_base和signature_cmp代表第一特征集合和第二特征集合,其中nilsima_base和nilsima_cmp分别表示两个文档的第二数据指纹中的数据特征串:fornilsima_baseinsignature_basefornilsima_cmpinsignature_cmpham_dist=hamming_distance(nilsima_base,nilsima_cmp)if(ham_dist>threshold){return1break
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1