[发明专利]一种对WuManber算法进行测试的方法和系统有效

专利信息
申请号: 201110161094.7 申请日: 2011-06-15
公开(公告)号: CN102831051A 公开(公告)日: 2012-12-19
发明(设计)人: 张宇;刘萍;刘燕兵;郭莉;陈训逊;李楠宁;薛晨 申请(专利权)人: 中国科学院计算技术研究所;国家计算机网络与信息安全管理中心
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京律诚同业知识产权代理有限公司 11006 代理人: 祁建国;梁挥
地址: 100080 北*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 wumanber 算法 进行 测试 方法 系统
【说明书】:

技术领域

发明涉及多模式串匹配技术领域,特别是涉及一种对WuManber算法进行测试的方法和系统。

背景技术

多模式串匹配是计算机科学领域的一个经典问题,对它的研究已经持续了几十年,已有的算法也有几百个。多模式串匹配算法广泛的应用在信息检索、信息过滤、病毒检测、入侵检测、计算生物学等方面。近年来,随着网络信息安全应用的发展,多模式串匹配技术作为其核心技术之一,也得到了很大的发展,尤其是在大规模、超大规模的串匹配、模糊匹配、正则匹配、硬件匹配技术等方面,都随着应用的强烈需求而迅速发展。

多模式串匹配算法的应用环境有模式串集合本身、运行机器、输入文本等几个方面,它们都对算法的性能有影响。对于一个特定的多模式串匹配的应用,模式串集合和运行机器都是固定的,只有输入文本是一直在变化的,因此对于不同的输入文本,检测的速度会有变化。因此,通过设计相应的检测数据,利用多模式串匹配算法检测该测试数据,以产生最多的检测次数,使得多模式串匹配算法的测试速度剧烈下降,以寻找可以使多模式串匹配算法最低速度提高的改进方法。

WuManber算法是一种常用的多模式串匹配算法,它是Boyer-Moore算法的一种派生形式。它采用了Boyer-Moore算法的框架,使用长度为b的字符块B(block character)而不是单个字符来计算坏字符(bad-character)的距离表SHIFT。此外,在进行匹配的时候,它使用散列表HASH选择模式串集合中的一个子集与当前文本进行匹配验证,减少无谓的运算。WuManber算法的执行时间主要依赖模式串集合中最短的模式串长度,它不会随着模式串集合大小的增加而成比例增长,其时间要远少于使用每一个模式串和Boyer-Moore算法对文本进行匹配的时间总和。

WuManber算法在预处理阶段,主要构造SHIFT表和HASH表,图1是根据模式串集合{aba,abba,bbb}在字符块长度为2,字符集大小为2时构造的SHIFT表和HASH表的示意图;如图1所示。在匹配阶段,求出当前匹配窗口内文本片断的末尾块字符的散列值h(B),如果该散列值对应的转移距离SHIFT[h(B)]大于0,则当前窗口内文本片断不匹配,将匹配窗口向右移动SHIFT[h(B)]位;否则当前窗口内的文本可能和某个模式串匹配,利用散列值h(B)选取模式串的一个子集HASH[h(B)],逐个与文本进行验证,以得到最终的匹配成功结果。

由WuManber算法的原理可以看出,算法的匹配时间主要消耗在两个方面:一个是计算当前窗口的散列值,另外一个是当存在一个可能的匹配时(SHIFT值为0时),对相应HASH表项后链接的多个模式串进行一一验证。显然,后面的一个耗时要远远大于前面一个。因此,如果一组数据能使WuManber算法产生较多验证次数,则检测这组数据的速度会大大下降。

发明内容

本发明的目的在于提供一种对WuManber算法进行测试的方法和系统,通过构造测试数据,对WuManber算法进行测试,来寻找可以使匹配模块最低速度提高的改进方法。

为实现本发明的目的而提供的一种对WuManber算法进行测试的方法,其特征在于,所述方法,包括下列步骤:

步骤100,根据模式串集合以及WuManber算法使用的散列函数,设计生成能够使WuManber算法验证次数最多的测试数据;

步骤200,对WuManber算法使用所述测试数据进行测试,获得WuManber算法的最低运算速度。

所述步骤100,包括下列步骤:

步骤110,根据模式串集合以及WuManber算法使用的散列函数,计算HASH表及HASH表的长度;

步骤120,根据所述HASH表的长度以及HASH表每一项通过散列函数对应的字符块生成有向无回路图;

步骤130,根据构造的所述有向无回路图,计算从起点到终点的一条最长路径,将路径上的标记组成的字符串记为L,L的长度为n-(lmin-b),其中,n为所述测试数据的长度,b为字符块B的长度,lmin为所述模式串的最短长度;

步骤140,将所述字符串L前面增加长度为lmin-b的任意属于字符集∑的字符串作为要构造的测试数据,并将所述测试数据存储到外部存储器中。

所述步骤110,包括下列步骤:

步骤111,根据所述模式串集合以及WuManber算法使用的散列函数计算出HASH表;

步骤112,计算所述HASH表每一列的长度w。

所述步骤111,包括下列步骤:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所;国家计算机网络与信息安全管理中心,未经中国科学院计算技术研究所;国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110161094.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top