[发明专利]一种对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,包括下列步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所;国家计算机网络与信息安全管理中心,未经中国科学院计算技术研究所;国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110161094.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种管道用蝶形的引入光缆
- 下一篇:一种新型ADSS通信光缆





