论入侵检测系统的研究与改进.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
论入侵检测系统的研究与改进

论入侵检测系统的研究与改进 ; 1 BM算法研究 ; 1977年Boyer和Moore提出了一种全新的算法,即BM算法。它的特点在于匹配过程中,模式从左向右移动,但字符比较却从右向左进行。其基本算法思想是:(1)匹配从右至左进行。(2)若匹配失败发生在Pi≠Ti且Ti不出现在模式P中,则将模式右移直到Pi位于匹配失败位置T的右边第一位(即Ti 1位),若Ti在P中有若干地方出现,则选择j=max{k|Pk=Ti}即通过Skip函数计算文本字符Ti失配时模式向右移动的距离,也称坏字符启发。(3)若模式后面k位与文本T中一致的部分有一部分在P中其他地方出现,则可以将P向右移动,直接使这部分对齐,且要求这一部分尽可能大,Shift函数通过对已经匹配部分的考查决定模式向右移动的距离,也称好后缀启发。 ; 实例分析: ; 第1次匹配: ; Example ; here is a simple example ; 第2次匹配(坏字符启发): ; Example ; here is a simple example ; 第3次匹配(坏字符启发): ; Example ; here is a simple example ; 第4次匹配(好后缀启发): ; Example ; here is a simple example ; 第5次匹配(坏字符启发): ; Example ; here is a simple example ; BM算法预处理时间复杂度为O(m s),空间复杂度为O(s),s是与P, T相关的有限字符集长度,搜索阶段时间复杂度为O(mn)。最坏情况下要进行3n次比较,最好情况下的时间复杂度为O(n/m)。 ; 2 改进BM匹配算法研究 ; 2.1 改进的意义 ; 综合分析会发现虽然BM算法考虑较全面,但它使用了两个数组,预处理时间开销较大,于是在BM算法基础上我们对其进行了简化,使得算法更简单、高效,提出了一种改进的BM算法。通过实验表明改进的模式匹配算法能减少比较次数,有效地提高了匹配效率。 ; 2.2 改进的原理 ; 在BM算法匹配过程中,常出现模式的一部分后缀与文本匹配,而模式的前缀却不匹配,在这种情况下,就进行了一些不必要的比较。因此在BMGJ算法中,我们在对模式串与文本字符串进行匹配时采用从模式两端向中间位置交替的匹配顺序,模式匹配先从模式最右端Pm开始进行。若Pm匹配不成功,则通过Skip函数计算出模式向右移动的距离,这与BM算法中坏字符启发思想相同;若Pm匹配成功,则比较模式P1与文本中相应的字符。若P1匹配不成功,则考查文本中与模式中Pm下一个字符对齐的字符,若该字符不出现在模式中,则模式可以向右移动m 1个位置,若该字符出现在模式中,则计算其Skip函数,然后将模式向右移动相应的长度;若P1匹配成功,则按上述方法依次对Pm-1,P2,Pm-2,P3,…进行匹配,依此类推,直到匹配过程完成。实例分析: ; 第1次匹配: ; Example ; here is a simple example ; 第2次匹配: ; Example ; here is a simple example ; 第3次匹配(传统BM算法匹配中,此遍比较需要从右端比较5次才可以找到一个坏字符,但对于改进后的算法,只比较两次就可以找到一个坏字符): ; Example ; here is a simple example ; 第4次匹配: ; Example ; here is a simple example ; 第5次匹配: ; Example ; here is a simple example ; 在上例中,我们可以看出用传统的BM算法匹配共进行了4次移动15次比较,用改进的BM算法匹配共进行了4次移动12次比较,匹配次数减少。 ; 改进后的BM算法的预处理时间复杂度为O(m s),空间复杂度为O(s),搜索阶段时间复杂度为O(mn)。该算法在比较右端字符失配时采用BM坏字符启发的思想,在比较了左端字符失配时采用对文本中与模式最右端对齐的下一个字符进行考查的方法,使得大多数情况下具有比BM算法更大的右移长度,从而有更好的平均性能。; 2.3 改进的实验分析 ; 我们所做的实验软件环境主要是:采用的操作系统是MicroSoft Windows XP Professional(Service Pack2),使用JBuilder2006编译工具,所用JDK为jdk1.6。 ; 为了对各算法的性能进行比较次数和比较用时的测试,我们随机地选取了一段纯英文自然语T文本和模式串P,在同一台计算机上用不同算法进行3万、5万、10万次循环匹配,分别统计各算法循环匹配所进行的字符比较次数和总消耗的时间。 ; 文本串:T=One day o

文档评论(0)

ailuojue1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档