关于快速高效模式匹配算法剖析与改进.docVIP

关于快速高效模式匹配算法剖析与改进.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于快速高效模式匹配算法剖析与改进

关于快速高效的模式匹配算法的剖析与改进   摘要:模式匹配算法是现代化网络入侵检测中的关键环节,本文主要介绍了几种常用的模式匹配算法,并在此基础上,提出一种更快捷、更高效的改进方法,以提高模式匹配的效率与质量,确保网络安全。   关键词:模式匹配 入侵检测 改进   中图分类号: TP312 文献标识码:A 文章编号:1007-9416(2011)12-0125-02      随着我国计算机与网络技术的飞速发展,网络应用已涉及到人们生产、生活的各个领域,其重要性日益凸显。随之而来的网络攻击问题也备受关注,给网络安全性带来挑战。传统的网络防御模式,主要采取身份认证、防火墙、数据加密等技术,但是与当前网络发展不适应。在此背景下,入侵检测技术营运而生,并建立在模式匹配基础上,确保检测的快捷性、准确性,应用越来越广泛。   1、模式匹配原理概述   模式匹配是入侵检测领域的重要概念,源自入侵信号的层次性。结合网络入侵检测的底层审计事件,从中提取更高层次的内容。通过高层事件形成的入侵信号,遵循一定的结构关系,将入侵信号的抽象层次进行具体划分。入侵领域大师Kumar将这种入侵信号划分为四大层次,并将每一个层次与匹配模式相对应。以下将分别对四大层次进行分析:   (1)存在。只要存在审计事项,就可以证明入侵行为的发生,并深层次挖掘入侵企图。存在主要对应的匹配模式就是“存在模式”。可以说,存在模式就是在固定的时间内,检查系统中的特定状态,同时判断系统状态。   (2)序列。一些入侵的发生,是遵循一定的顺序,而组成的各种行为。具体表现在一组事件的秩序上。序列对应的是“序列模式”,在应用序列模式检测入侵时,主要关注间隔的时间与持续的时间。   (3)规则。规则表示的是一种可以扩展的表达方式,主要通过AND逻辑表达来连接一系列的描述事件规则。一般适用于这种模式的攻击信号由相关活动组成,这些活动之间往往不存在事件的顺序关系。   (4)其他。其他模式是不包含前面几种方法的攻击,在具体应用过程中,难以与其他入侵信号进行模式匹配,大多为部分实现方式。   2、几种常用的模式匹配??法   2.1 AC算法   AC算法(Aho-Corasick)是一种可以同时搜索若干个模式的匹配算法,最早时期在图书馆书目查询系统中应用,效果良好。通过使用AC算法,实现了利用有限状态自动机结构对所有字符串的接收过程。自动机具有结构性特征,且每一个前缀都利用唯一状态显示,甚至可同时应用于多个模式的前缀中。如果文本中的某一个字符不属于模式中预期的下一个字符范围内,或者可能出现错误链接的指向状态等,那么最长模式的前缀同时也可作为当前状态相对应的后缀。AC算法的复杂性在于o(n),预处理阶段的复杂性则在于o(m)。在采取AC算法的有限状态自动机中,应该在每一个字符的模式串中分别建立节点,提高该算法的使用效率与质量。目前,应用有限自动计算法是一种较为典型与常用的方法,如果模式集比较大,可能引发空间膨胀问题。在使用AC算法时,搜索输入串过程中没有跳跃,直接根据顺序输入,因此在规则较少的情况下,AC算法的搜索性能并不理想。   2.2 KMP算法   KMPS算法与简单的算法有所不同,如果某一次的匹配失败,那么模式串不一定是向右移动一格,即使向右移动,也未必从模式的起点位置开始匹配。KMP的具体计算方法为:   当某次试匹配成功之后,如果Tx≠Px,那么即使在模式之前j-1个字符全部匹配,而实现已经获知子模式P1P2……Px-1,且最常的首子串与尾子串同等,即:P1P2……PK-1=Px-k+1Pjxk+2……Pj-k,那么在下一次的匹配过程中,就可以将模式串向右移动,表示为next[x],代表当模式串中的第x个字符和主串中的相应字符出现“失配”现象,那么模式中就需要重新与主串中的字符位置进行比较,在预处理时就可以完成next[x]的计算工作。   为了能完整体现完全匹配的各种情况,以上各首子串必须保证为最长。因此,对于任何一个子模式来说(P1P2……Px,其中1≤x≤n),“自匹配”中的首子串都是唯一的,仅能与模式的自身结构相关。通过应用KMP算法,采取一次将模式向右移动若干位置的方式,确保匹配过程中不需要任何回溯。在相对较好的情况下,使用KMP算法的时间复杂度是0(m+n),next[x]的计算时间复杂度是0(m)。   2.3 BM算法   BM算法是单模式匹配算法的其中一种,属于精确的字符串匹配算法,采取从右向左的比较方式,应用了“坏字符”与“好后缀”两种启发原则。BM算法与KMP算法具有一定区别,主要是对模式串的扫描方式相反,即由从左向右改为从右向左。采用BM算法采用这种扫描方式的优势在于:如果在正文中出现了个别模式没有的字符,那么

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档